$ cd /home/DockerLabs/vacaciones

Write Up Vacaciones

DockerLabs - Snoody

Primer paso: Descargar la máquina

El primer paso sería descargar la máquina en Dockerlabs.es

DockerLabs

Luego de haberla descargado, hacemos un unzip del archivo comprimido, y nos quedaría lo siguiente:

Desplegando la máquina

Despliegue de la máquina

Para desplegar la máquina:

sudo bash ./auto_deploy.sh vacaciones.tar 

Escaneo con Nmap

Realizamos un escaneo con Nmap y vemos que los puertos 80 y 22 están abiertos.

nmap -sS -sV -sC --min-rate 5000 -p- --open -n -Pn 172.17.0.2 

Whatweb

Hacemos un whatweb para ver si la versión de Apache es vulnerable, en este caso no.

Fuzzing de la página

Realizamos un Fuzzing de la página, pero no encontramos nada interesante. Se podría realizar fuzzing en dominios y extensiones como html, php, etc., pero en este caso no lo utilizamos.

wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://172.17.0.2/FUZZ 

Exploración de la página

Si entramos a la página, vemos que no hay nada en el HTML. Al presionar Ctrl+U, observamos un texto: "De: Juan Para: Camilo".

Esto nos da una pista de dos posibles usuarios (juan, camilo) a los que podríamos intentar crackear la contraseña por SSH con Hydra.

hydra 172.17.0.2 ssh -l camilo -P /usr/share/wordlists/rockyou.txt -vV 

Acceso con SSH

La contraseña de Camilo es "password1". Luego de conectarnos con SSH:

ssh camilo@172.17.0.2 

Si obtenemos errores, eliminamos los known_hosts:

sudo rm ~/.ssh/known_hosts 

Revisión de archivos

Una vez dentro, no encontramos archivos ocultos en el directorio actual. Sin embargo, recordando el código fuente de la página, había un mensaje: “-- De : Juan Para: Camilo, te he dejado un correo es importante... ”. Esto nos da una pista para encontrar más información.

Exploración de directorios

Nos dirigimos a /var/mail/camilo y encontramos nuestra primera flag, que nos proporciona una posible contraseña.

Revisión de usuarios

Si hacemos:

cat /etc/passwd 

Vemos que hay un usuario "juan" y otro "pedro". Juan ya había sido mencionado en el correo, pero Pedro no.

Cambio de usuario a Juan

Nos cambiamos al usuario Juan utilizando la contraseña que encontramos en el correo:

su juan 

Escalada de privilegios

Nos dirigimos al directorio /home y vemos que están los tres usuarios que se habían mencionado antes.

Para ver si hay algún comando que podamos correr sin ser root, como el usuario Juan, ejecutamos el siguiente comando:

sudo -l 

Descubrimos que podemos ejecutar el comando /usr/bin/ruby con permisos de superusuario. Buscamos en GTFOBins si podemos explotarlo:

GTOBINS

En este caso, utilizaremos el siguiente exploit usando sudo, ya que tenemos privilegios para ejecutar Ruby:

sudo ruby -e 'exec "/bin/sh"' 

Root

Al ejecutar el comando anterior, nos convertimos en root:

¡Ya con esto tendríamos la máquina resuelta! Para finalizar, volvemos a donde se desplegó la máquina y la detenemos con Ctrl+C.