> For the complete documentation index, see [llms.txt](https://shinki-organization.gitbook.io/dw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://shinki-organization.gitbook.io/dw/write-ups/quickstart/maquinas-faciles/balufood-write-up.md).

# BaluFood write-up

## **Verificamos conexión con la máquina víctima**

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

## **Escaneo de puertos abiertos y explotación de vulnerabilidades**

Utilizamos **Nmap** para escanear los puertos abiertos de la máquina víctima con el siguiente comando:

```bash
sudo nmap -p- -sCVS --min-rate=5000 -vvv -Pn -n -O 172.17.0.2
```

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

El escaneo indica que los puertos 22 (SSH) y 5000 (HTTP) están abiertos. Además, en el puerto 5000 se observa una aplicación web que probablemente esté desarrollada con Flask, utilizando Python 3.11.2 y el servidor Werkzeug (HTTP/2.2.2). Así que ingresamos la IP de la máquina víctima junto al puerto 5000 en el navegador y vemos lo siguiente:

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

Buscando por la página nos encontramos con un login en la ruta `http://172.17.0.2:5000/login`, así que vamos a hacer un ataque de fuerza bruta con la herramienta **Hydra** ejecutando el siguiente comando:

```bash
hydra -l admin -P ../rockyou.txt "172.17.0.2" http-post-form "/login:username=^USER^&password=^PASS^:F=Credenciales inválidas." -F -s 5000 -V -I -t 64
```

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

Esto nos indica que podemos iniciar sesión con las credenciales `admin:admin`. Una vez iniciado sesión, si leemos el código fuente encontramos lo siguiente:

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

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

Así que vamos a usar las credenciales `sysadmin:backup123` para iniciar sesión por el servicio SSH.

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

## **Escalada de privilegios**

Una vez dentro de la máquina víctima con el usuario `sysadmin`, al inspeccionar el archivo `/home/sysadmin/app.py` y encontramos lo siguiente:

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

Lo que haremos será usar el valor de la variable `app.secret_key`, la cual es `cuidaditocuidadin`, para iniciar sesión como el usuario `balulero`.

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

Ahora si inspeccionamos el archivo `/home/balulero/.bashrc`, encontramos lo siguiente:

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

Esto nos indica que la contraseña del usuario root es `chocolate2`, así que iniciamos sesión.

<figure><img src="/files/42X2iB4dj3apP4ZyQimv" alt=""><figcaption></figcaption></figure>
