Skip to content

Unvrecover

This content is not available in your language yet.

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.


AtributoValor
NombreUnvrecover
AutorEl Pingüino de Mario
DificultadMedio
Fecha02/02/2025
PlataformaDockerLabs
IP Objetivo172.17.0.2

Se descomprime la máquina y se despliega utilizando el script proporcionado:

Ventana de terminal
unzip Unvrecover.zip
sudo bash auto_deploy.sh Unvrecover.tar

Una vez iniciado el contenedor, se asigna la dirección IP correspondiente.

IP asignada

Se organiza el entorno de trabajo para mantener una estructura clara durante el análisis:

Ventana de terminal
mkdir -p Unvrecover/{content,exploits,nmap,scripts}
cd Unvrecover

Se realiza un escaneo completo de puertos TCP para identificar servicios expuestos:

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

El resultado muestra los siguientes servicios accesibles externamente:

  • 21/tcp — FTP
  • 22/tcp — SSH
  • 80/tcp — HTTP
  • 3306/tcp — MySQL

Puertos abiertos


Dado que tenemos varios servicios abiertos, realizamos un escaneo de posibles vulnerabilidades con nmap:

Ventana de terminal
nmap -sCV -p21,22,80,3306 172.17.0.2

En este caso, no encontramos nada resaltante.


Se procede a realizar fuzzing de rutas y archivos:

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

ferox result

Aquí solo encontramos el índice y tres imágenes:

  • Index.php: contiene una página de un zoo de capybaras. content of index

Lo único resaltante son las imágenes y que en el índice se menciona el usuario capybara.


Dado que tenemos imágenes, analizamos sus metadatos con exiftool. Encontramos algo interesante en la imagen imagen1.jpg: metadata of imagen1

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:

Ventana de terminal
hydra -L Users -P /usr/share/wordlists/rockyou.txt mysql://172.17.0.2

Resultados: result of hydra

Accedemos a la base de datos:

Ventana de terminal
mysql -u capybara -h 172.17.0.2 -p --skip-ssl

Listamos las tablas: show tables

Tenemos la base de datos beta, que cuenta con una tabla llamada registraton. Consultamos su contenido:

select * from registraton;

content of table

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:

Ventana de terminal
ssh capybara@172.17.0.2

Primero listamos los directorios con ls -la y nos encontramos con el archivo /server/backup.pdf: dir pdf

En la máquina víctima no podemos visualizar correctamente su contenido, por lo que levantamos un servidor web con Python:

Ventana de terminal
python3 -m http.server

Y lo descargamos en nuestro host:

Ventana de terminal
wget http://172.17.0.2:8000/backup.pdf

El PDF parece no tener metadatos interesantes, por lo que lo abrimos: content of pdf

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:

su root


VulnerabilidadSeveridadImpacto
Exposición de credenciales en metadatos de imágenesAltaRevelación de posibles usuarios y contraseñas
Servicio MySQL accesible con contraseña débilAltaAcceso no autorizado a la base de datos
Almacenamiento de hash MD5 sin salt en base de datosMediaPosible craqueo de contraseñas (aunque no tuvo éxito)
Reutilización de credenciales entre MySQL y SSHCríticaAcceso remoto al sistema como usuario capybara
Almacenamiento de contraseña de root en PDF dentro del sistemaCríticaExposición de la contraseña de superusuario
Ofuscación débil de contraseña en PDF (censura visual que se elude con zoom)BajaLa protección es trivial de evitar

  • Limpiar los metadatos de las imágenes antes de publicarlas en entornos web. Herramientas como exiftool pueden 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.