> For the complete documentation index, see [llms.txt](https://wiki.securiters.com/securiters-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/funboxeasyenum.md).

# FunboxEasyEnum

<figure><img src="/files/bt64nEikkzgAJmdNuAI5" alt=""><figcaption></figcaption></figure>

### Enumeración

#### Servicios abiertos

Comenzamos realizando un escaneo rápido de los servicios que tiene abiertos está máquina.

```
nmap -p- --open --min-rate 5000 -Pn -n -vvv 192.168.113.132
```

<figure><img src="/files/TMYFu66a8lnC5MbrEgQw" alt=""><figcaption></figcaption></figure>

Puertos 22 (SSH) y 80 (HTTP) abiertos. Vamos a realizar un escaneo profundo de estos servicios.&#x20;

```
nmap -p22,80 -sVC -vvv 192.168.113.132
```

<figure><img src="/files/SADCeQeJjWu72TKER77C" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yOWEbOznMrfSCx59iSLe" alt=""><figcaption></figcaption></figure>

Servicios abiertos:

* Puerto 22 -> SSH -> OpenSSH 7.6
* Puerto 80 -> HTTP -> Apache httpd 2.4.29

#### Enumeración Web

Comenzamos viendo el contenido del puerto 80 en el navegador Web.&#x20;

<figure><img src="/files/OHtuEHaDWsmwGf9VD09Y" alt=""><figcaption></figcaption></figure>

Vemos la página por defecto de un servidor Apache. Vamos a enumerar si existen directorios interesantes.&#x20;

```
feroxbuster --url http://192.168.113.132 -d 2 -x php -s 200 301
```

<figure><img src="/files/1Ot0gBMiBP4lk7esLp5k" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/yMxGBMNqoIwOpmoJNFlI" alt=""><figcaption></figcaption></figure>

Encontramos <http://192.168.113.132/mini.php>. Vemos su contenido en el navegador.&#x20;

<figure><img src="/files/e3CkOjozG7CcaHEkAnMl" alt=""><figcaption></figcaption></figure>

Tenemos la posibilidad de cargar archivos. Vamos a tratar de aprovechar esto para subir una reverse shell.&#x20;

### Explotación

Utilizaremos la shell php-reverse-shell.php. La configuramos para adaptarla a nuestra IP y puerto.&#x20;

<figure><img src="/files/0ibsgrDK72ydZoWrpHAl" alt=""><figcaption></figcaption></figure>

En una terminar ponemos un oyente nc a la escucha en el puerto 1337.

<figure><img src="/files/2BM6qlCAxXpb8vbfd19g" alt=""><figcaption></figcaption></figure>

Luego navegamos  a <http://192.168.113.132/mini.php> y cargamos el shell.php

<figure><img src="/files/xvhdK5YXuuj8oCjCRdLc" alt=""><figcaption></figcaption></figure>

Ahora damos para ejecutar este archivo, de lo contrario el servidor no ejecutará este archivo. Damos permisos 0777.

<figure><img src="/files/NLSAdFlt2e0rAH39xYuR" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VwOGL5PAviaMsJ3Wu6oG" alt=""><figcaption></figcaption></figure>

Una vez completado este proceso, vaya a <http://192.168.113.132/php-reverse-shell.php> A partir de ese momento, recibiremos el shell en nuestro nc que tenemos a la escucha.&#x20;

<figure><img src="/files/WojeSFwXy8F4yglnIvnv" alt=""><figcaption></figcaption></figure>

El siguiente paso será realizar el tratamiento de la tty para tener una shell interactiva.&#x20;

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

<figure><img src="/files/jOl02cCFFbayF980biyx" alt=""><figcaption></figcaption></figure>

Buscamos la flag local.txt

```
find / -name local.txt
```

<figure><img src="/files/ODrYw8d5RDBi2yAJGHT2" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/cQRiKHHfg1tL4FAabHVy" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xtP3VDpWFPOWozkNfHfH" alt=""><figcaption></figcaption></figure>

### Pivotando de www-data a usuario "goat"

Enumeramos los usuario disponibles en el sistema.&#x20;

<figure><img src="/files/E6dwIT3dcLAvdx2F0SvF" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/z40dnVl6kw5xArdjFdRW" alt=""><figcaption></figcaption></figure>

5 usuarios en el sistema. Con estos 5 usuarios y el diccionario "rockyou.txt", vamos a tratar de iniciar sesión a través del servicio SSH disponible.&#x20;

<figure><img src="/files/popGQqliWR4ScTXXbEik" alt=""><figcaption></figcaption></figure>

Utilizamos hydra para buscar la contraseña con un ataque de fuerza bruta.&#x20;

```
hydra -L users -w 10 -P '/home/elhackeretico/rockyou.txt' -t 10 -v -f 192.168.59.132 ssh 
```

<figure><img src="/files/kiKUYTZzeMPktUW60dlK" alt=""><figcaption></figcaption></figure>

Tras un momento de ejecución, obtenemos la contraseña para el usuario "goat" es "goat". Ahora vamos a tratar de conectarnos mediante SSH con las credenciales obtenidas.&#x20;

<figure><img src="/files/uBXRHbnbZnHkQFrGRGVn" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/aDuPu7IEUsqVqQoNSTtl" alt=""><figcaption></figcaption></figure>

Ya estamos conectados a la máquina objetivo como usuario "goat"

### Elevación de privilegios

Comenzamos enumerando los servicios que puede ejecutar el usuario "goat" como "root" sin necesidad de contraseña.&#x20;

```
sudo -l
```

<figure><img src="/files/taeiVHFltXOVReYw5EPN" alt=""><figcaption></figcaption></figure>

Buscamos en [GTFOBins](https://gtfobins.github.io/gtfobins/mysql/#sudo) como elevar privilegios aprovechando esto.&#x20;

<figure><img src="/files/5EP1athLR7K05jRykmpI" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/oREdj8wca9lg2amQzJZI" alt=""><figcaption></figcaption></figure>

Ya tenemos privilegios máximos. Vamos a buscar la flag proof.txt

<figure><img src="/files/JRqASMUn1l3Ybp0rpE0O" alt=""><figcaption></figcaption></figure>

{% embed url="<https://www.youtube.com/watch?v=XKIbV4r04to>" %}
