Unvrecover
Introducción
Sección titulada «Introducción»Este documento presenta la resolución completa de la máquina Unvrecover, desarrollada por El Pingüino de Mario
para la plataforma DockerLabs, clasificada con una dificultad Media.
El laboratorio expone múltiples servicios: FTP, SSH, HTTP y MySQL. Durante la fase de reconocimiento, se descubre
ue la página web contiene imágenes con metadatos que revelan un posible par de credenciales (Wilfredor:Wilfredor).
Combinando esto con un usuario extraído del propio índice (capybara), se realiza un ataque de fuerza bruta contra el
servicio MySQL, obteniendo acceso a la base de datos.
Dentro de la base de datos, se encuentra una tabla con un hash MD5 (no crackeable) y un usuario. Se prueba la
reutilización de credenciales contra SSH, logrando acceso como capybara
Una vez dentro, se localiza un archivo PDF (backup.pdf) que contiene la contraseña de root, aunque aparece censurada
visualmente. Simplemente haciendo zoom en el PDF se puede leer la contraseña en claro, obteniendo acceso total al sistema.
Todo el proceso se llevó a cabo dentro de un entorno controlado con fines estrictamente educativos.
Información Técnica
Sección titulada «Información Técnica»| Atributo | Valor |
|---|---|
| Nombre | Unvrecover |
| Autor | El Pingüino de Mario |
| Dificultad | Medio |
| Fecha | 02/02/2025 |
| Plataforma | DockerLabs |
| IP Objetivo | 172.17.0.2 |
Paso 0 — Despliegue y preparación
Sección titulada «Paso 0 — Despliegue y preparación»Se descomprime la máquina y se despliega utilizando el script proporcionado:
unzip Unvrecover.zipsudo bash auto_deploy.sh Unvrecover.tarUna vez iniciado el contenedor, se asigna la dirección IP correspondiente.

Se organiza el entorno de trabajo para mantener una estructura clara durante el análisis:
mkdir -p Unvrecover/{content,exploits,nmap,scripts}cd UnvrecoverPaso 1 — Reconocimiento
Sección titulada «Paso 1 — Reconocimiento»1.1 Escaneo de puertos
Sección titulada «1.1 Escaneo de puertos»Se realiza un escaneo completo de puertos TCP para identificar servicios expuestos:
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.17.0.2 -oG allPortsextractPorts allPortsEl resultado muestra los siguientes servicios accesibles externamente:
- 21/tcp — FTP
- 22/tcp — SSH
- 80/tcp — HTTP
- 3306/tcp — MySQL

1.2 Enumeración de servicios
Sección titulada «1.2 Enumeración de servicios»Dado que tenemos varios servicios abiertos, realizamos un escaneo de posibles vulnerabilidades con nmap:
nmap -sCV -p21,22,80,3306 172.17.0.2En este caso, no encontramos nada resaltante.
1.3 Enumeración web
Sección titulada «1.3 Enumeración web»Se procede a realizar fuzzing de rutas y archivos:
feroxbuster -u http://172.17.0.2 \ -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-big.txt \ -x php,html,txt,js -t 100 -C 404
Aquí solo encontramos el índice y tres imágenes:
- Index.php: contiene una página de un zoo de capybaras.

Lo único resaltante son las imágenes y que en el índice se menciona el usuario capybara.
Paso 2 — Explotación (acceso inicial)
Sección titulada «Paso 2 — Explotación (acceso inicial)»Dado que tenemos imágenes, analizamos sus metadatos con exiftool. Encontramos algo interesante en la imagen imagen1.jpg:

Aquí se nos proporciona un posible par de credenciales: Wilfredor:Wilfredor. Agregamos estas credenciales a un archivo
junto con el usuario capybara y probamos fuerza bruta contra los puertos SSH, FTP y MySQL. El único puerto que arrojó
resultados concluyentes fue MySQL. Usamos el siguiente comando:
hydra -L Users -P /usr/share/wordlists/rockyou.txt mysql://172.17.0.2Resultados:

Accedemos a la base de datos:
mysql -u capybara -h 172.17.0.2 -p --skip-sslListamos las tablas:

Tenemos la base de datos beta, que cuenta con una tabla llamada registraton. Consultamos su contenido:
select * from registraton;
Esto parece ser un hash MD5, pero no fue posible crackearlo. Otra cosa que probamos fue la reutilización de credenciales, que funcionó para conectarnos al servicio SSH:
ssh capybara@172.17.0.2Paso 3 — Escalada de privilegios
Sección titulada «Paso 3 — Escalada de privilegios»3.1 De capybara → root
Sección titulada «3.1 De capybara → root»Primero listamos los directorios con ls -la y nos encontramos con el archivo /server/backup.pdf:

En la máquina víctima no podemos visualizar correctamente su contenido, por lo que levantamos un servidor web con Python:
python3 -m http.serverY lo descargamos en nuestro host:
wget http://172.17.0.2:8000/backup.pdfEl PDF parece no tener metadatos interesantes, por lo que lo abrimos:

Este nos indica la contraseña de root, pero parece estar redactada/censurada visualmente. Sin embargo, simplemente
haciendo zoom se puede visualizar correctamente. Por lo tanto, hacemos su root e ingresamos la contraseña:

Análisis de Vulnerabilidades
Sección titulada «Análisis de Vulnerabilidades»Fallos de Seguridad Identificados
Sección titulada «Fallos de Seguridad Identificados»| Vulnerabilidad | Severidad | Impacto |
|---|---|---|
| Exposición de credenciales en metadatos de imágenes | Alta | Revelación de posibles usuarios y contraseñas |
| Servicio MySQL accesible con contraseña débil | Alta | Acceso no autorizado a la base de datos |
| Almacenamiento de hash MD5 sin salt en base de datos | Media | Posible craqueo de contraseñas (aunque no tuvo éxito) |
| Reutilización de credenciales entre MySQL y SSH | Crítica | Acceso remoto al sistema como usuario capybara |
| Almacenamiento de contraseña de root en PDF dentro del sistema | Crítica | Exposición de la contraseña de superusuario |
| Ofuscación débil de contraseña en PDF (censura visual que se elude con zoom) | Baja | La protección es trivial de evitar |
Recomendaciones de Mitigación
Sección titulada «Recomendaciones de Mitigación»- Limpiar los metadatos de las imágenes antes de publicarlas en entornos web. Herramientas como
exiftoolpueden eliminar esta información. - No almacenar credenciales en texto claro dentro de metadatos, código fuente o archivos del sistema.
- Utilizar contraseñas seguras y únicas para cada servicio, evitando la reutilización entre diferentes plataformas (MySQL, SSH, FTP, etc.).
- Proteger adecuadamente las bases de datos: usar contraseñas robustas, limitar el acceso por IP y no exponer MySQL a redes no confiables.
- Almacenar los hashes de contraseñas con salt (ej. bcrypt, Argon2) en lugar de MD5 plano.
- Nunca almacenar contraseñas en texto claro dentro del sistema, especialmente en archivos accesibles por usuarios no privilegiados.
- Implementar controles de acceso adicionales para archivos sensibles como
backup.pdf, restringiendo permisos de lectura. - Realizar auditorías periódicas de archivos y servicios en busca de información sensible expuesta.