WriteupFácilLinux15 de noviembre de 202512 min de lectura

DockerLabs: Writeup de la máquina Backend

Resolución completa de la máquina Backend de DockerLabs: SQLi con sqlmap, extracción de credenciales, fuerza bruta SSH con Hydra y escalada de privilegios abusando de binarios SUID.


Backend es una máquina Linux de dificultad fácil de DockerLabs. La vía de explotación combina la detección de una inyección SQL en el panel de login, extracción de credenciales con sqlmap, fuerza bruta SSH con Hydra y escalada de privilegios mediante binarios con bit SUID.


1. Puesta en marcha de la máquina

Lo primero que haremos será descargar la máquina y ejecutarla para que se despliegue correctamente. Una vez levantada, podemos observar la IP asignada. En este caso usaremos 172.17.0.2 durante todo el proceso.


2. Enumeración de puertos y servicios (Nmap)

Lo primero será enumerar los puertos y servicios que tiene levantados. Para ello usamos nmap:

sudo nmap -p- -sS -sCV --min-rate 5000 -n -Pn -vvv 172.17.0.2 -oN scan

Como podemos observar, están abiertos los puertos 22/tcp (SSH) y 80/tcp (HTTP), por lo que vamos a abrir el navegador para ver qué hay en la web.


3. Panel de login y prueba inicial de SQL Injection

Una vez dentro, podemos observar un panel de login. Vamos a probar si es vulnerable a SQL Injection con el payload:

' or 1=1 --

Tras probarlo, se genera un error que nos indica que hay interacción con la base de datos y que puede ser un buen candidato para usar sqlmap.


4. Explotación de la inyección SQL con sqlmap

Vamos a usar sqlmap directamente sobre el formulario para listar las bases de datos:

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

Una vez terminado, podemos observar que se listan 5 bases de datos. Nos interesa especialmente la base de datos users, así que vamos a enumerar sus tablas:

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

sqlmap encuentra la tabla usuarios. Ahora enumeramos sus columnas:

sqlmap --url 'http://172.17.0.2/login.html' --forms -D users -T usuarios --columns --batch

Vemos las columnas id, username y password. Dumpeamos los usuarios y contraseñas:

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

5. Fuerza bruta sobre SSH con Hydra

Con la información obtenida, creamos dos wordlists: una con los username y otra con las password. Después lanzamos un ataque de fuerza bruta con Hydra contra el servicio SSH (puerto 22):

hydra -L users -P passwords ssh://172.17.0.2

Ya tenemos acceso mediante SSH con el usuario pepe. Comprobamos si hay más usuarios en el sistema — solo encontramos a pepe.


6. Enumeración interna: procesos y binarios SUID

Listamos los procesos sin encontrar nada especialmente útil. Buscamos binarios con el bit SUID activado, que podrían permitirnos escalar privilegios:

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

Observamos que tanto ls como grep tienen el bit SUID activado, lo que significa que se ejecutan con los privilegios del propietario del archivo (root). Esto puede ser aprovechado para leer archivos que normalmente solo root podría leer.


7. Lectura del hash de root y cracking con John

Para extraer el hash de la máquina, aprovechamos grep con SUID para leer un archivo protegido. En este caso, el archivo es /root/pass.hash:

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

Con el hash en nuestro archivo hash, usamos John the Ripper para crackearlo, indicando el formato y usando la wordlist rockyou.txt:

john --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt hash

John consigue crackear el hash y obtenemos la contraseña de root. Con esto, ya habríamos completado la máquina Backend.


Resumen de técnicas utilizadas

En esta máquina hemos puesto en práctica:

  • Enumeración de servicios con Nmap
  • Detección y explotación de SQL Injection con sqlmap
  • Creación de wordlists y fuerza bruta sobre SSH con Hydra
  • Búsqueda de binarios con SUID y abuso de grep para leer archivos protegidos
  • Cracking de hashes con John the Ripper

Un laboratorio muy completo para practicar desde la enumeración inicial hasta la escalada de privilegios.

Tiempo en página 0:00Lectura estimada: 12 min

Posts relacionados

WriteupFácilLinux

TryHackMe: Writeup de Vulnversity

Resolución de la room Vulnversity de TryHackMe: enumeración con Nmap y Gobuster, bypass de filtro de extensiones con Burp Intruder, reverse shell en PHP y escalada via systemctl SUID.

25 de febrero de 202612 min