WriteUp de la máquina Vacaciones
Este WriteUp documenta la solución para la máquina “Vacaciones” de DockerLabs. A través de varias etapas de reconocimiento, explotación y elevación de privilegios, el objetivo es obtener acceso a la máquina y escalar privilegios para convertirnos en el usuario root.
Resumen:
- Nombre: Vacaciones
- Sistema Operativo: Linux
- Dificultad: Facil
- Autor: Romabri
- Enlace: Dockerlabs
Progreso del WriteUp
- Reconocimiento inicial
- Análisis de servicio
- Fuerza bruta
- Acceso por SSH
- Escalada de privilegios
- Aprendizaje
- Comandos
Reconocimiento inicial
El primer paso consiste en iniciar la máquina. Esto se puede lograr ejecutando el siguiente comando, una vez que se haya descargado la máquina:
sudo bash auto_deploy.sh vacaciones.tar
Una vez iniciada la máquina, el script de despliegue me proporciona la dirección IP de la máquina, por lo que procedo a realizar un escaneo de puertos para identificar los servicios disponibles:
nmap 172.17.0.2
El resultado del escaneo de puertos fue:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-22 11:46 EDT
Nmap scan report for 172.17.0.2
Host is up (0.000010s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 02:42:AC:11:00:02 (Unknown)
Resultado clave: El escaneo de puertos reveló dos servicios importantes:
- Puerto 22: Servicio SSH abierto.
- Puerto 80: Servicio HTTP abierto.
Análisis de servicio
El siguiente paso es explorar el servicio HTTP. Al visitar la página en el puerto 80, encontré una página en blanco, pero al inspeccionar el código fuente encontré el siguiente mensaje:

Este mensaje revela la existencia de dos posibles usuarios, juan y camilo, y sugiere buscar algún directorio relacionado con correos electrónicos, específicamente en la ruta /var/mail/.
Fuerza bruta
Ya que el código fuente me proporciona dos posibles usuarios, procedí a realizar un ataque de fuerza bruta utilizando hydra. Para ello, creé un archivo llamado users.txt que contenía los usuarios juan y camilo.
hydra -L users.txt -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh
Luego de un tiempo, logré encontrar la contraseña del usuario camilo. Con esta información, me conecté al sistema utilizando SSH:
ssh camilo@172.17.0.2
Acceso por SSH
Con acceso al sistema como el usuario camilo, intenté elevar privilegios utilizando el comando sudo -l. Sin embargo, este usuario no tenía permisos para ejecutar sudo. También intenté listar otros usuarios del sistema con compgen -u, pero el comando no estaba disponible. Explorando el directorio /home, encontré los siguientes directorios: camilo, juan y pedro.
Recordé que el código fuente mencionaba que juan le había dejado un correo a camilo, así que revisé el directorio /var/mail y encontré un archivo de texto llamado correo.txt dentro del directorio camilo. Este archivo contenía la clave SSH para el usuario juan.

Escalada de privilegios
Ahora conectado como el usuario juan, ejecuté el comando sudo -l para verificar posibles privilegios elevados. Encontré que el usuario juan podía ejecutar el comando /usr/bin/ruby sin necesidad de contraseña. Consulté GTFOBins y encontré una forma de aprovechar este permiso para obtener acceso como root ejecutando el siguiente comando:
sudo ruby -e 'exec "/bin/sh"'
Con este comando, logré obtener acceso completo como root.

Aprendizaje
La máquina Vacaciones permitió practicar técnicas de reconocimiento y explotación, incluyendo la fuerza bruta de credenciales SSH y la escalada de privilegios utilizando permisos específicos con el comando ruby. Este ejercicio subraya la importancia de configurar adecuadamente los permisos y los servicios para evitar brechas de seguridad.
Comandos
- Despliegue de la máquina:
sudo bash auto_deploy.sh vacaciones.tar - Escaneo de puertos:
nmap 172.17.0.2 - Acceso al servicio SSH:
ssh camilo@172.17.0.2 - Exploración del directorio de correo:
cd /var/mail/camilo - Escalada de privilegios con
ruby:sudo ruby -e 'exec "/bin/sh"'