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

# Blogger

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

### Enumeración

#### Enumeración de puertos abiertos

Comenzamos realizando un escaneo rápido de los servicios abiertos.&#x20;

```
nmap -p- --open --min-rate 5000 -Pn -n -vvv 192.168.85.217
```

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

Puertos 22 y 80 abiertos. Vamos a escanear de manera profunda estos dos servicios.&#x20;

```
nmap -p22,80 -sVC -vvv 192.168.85.217
```

<figure><img src="/files/3cWwoRK8bflSspQakcKA" alt=""><figcaption></figcaption></figure>

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

#### Enumeración Web&#x20;

Existe un puerto 80 abierto. Vamos a ver el contenido en el navegador.&#x20;

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

Enumeramos directorios con dirsearch.&#x20;

```
dirsearch -u "http://192.168.85.217/" -i200,301
```

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

Solo encontramos un dato interesante. Parece un sitio WordPress.

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

Sabiendo que estamos antes un WordPress, vamos a utilizar wpscan para realizar una enumeración de este CMS.&#x20;

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

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

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

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

Existe una vulnerabilidad de carga de archivos no autenticada en un plugin.&#x20;

Para acceder a las entradas del blog, deberemos registrar el dominio "blogger.thm" en nuestro archivo /etc/hosts para poder acceder a estas entradas.

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

### Explotación

Si echamos un vistazo a una publicación del blog, hay una sección de comentarios que permite a los usuarios cargar imágenes.&#x20;

<figure><img src="/files/3juOHSakPhn7CilLmyA9" alt=""><figcaption></figcaption></figure>

Trataremos de subir una reverse shell aprovechando la carga de archivos. Primero, modificaremos la IP local y el puerto de escucha.&#x20;

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

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

Pero no funcionó. Debemos probar técnicas de omisión de filtros. Vamos a tratar de modificar los encabezados del archivo. Si una función acepta carga de imágenes, aceptará carga de archivos GIFs. Agregaremos GIF89a; en la primera línea de la shell para engañar al servidor.&#x20;

<figure><img src="/files/3UGkX36E5Bm0xF6JInjt" alt=""><figcaption></figcaption></figure>

Volvemos a cargar el archivo modificado. Al mismo tiempo debemos poner un oyente a la escucha en el puerto que hayamos seleccionado para la shell. En nuestro caso, 1234.&#x20;

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

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

Ya tenemos acceso a la máquina víctima con pero no somos un usuario del sistema. Vamos a actualizar la shell recibida a una shell interactiva.&#x20;

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

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

En el directorio /home, encontramos a tres usuarios: james, ubuntu y vagrant. Después de enumerar cada uno de los directorios, encontramos la flag local.txt dentro del directorio del usuario "james".&#x20;

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

### Elevación de privilegios

Volviendo a la lista de usuarios, recordamos que existía un usuario "vagrant". Si password por defecto del usuario "vagrant" si no es cambiada, también es "vagrant". Vamos a comprobarlo.&#x20;

<figure><img src="/files/9ooyZ0iWhs9Kv6E91aLF" alt=""><figcaption></figcaption></figure>

¡Bingo! Vamos a ver a continuación, que comandos puede ejecutar como root.&#x20;

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

"vagrant" puede ejecutar todos los comandos, por lo que vamos a elevar a usuario "root".&#x20;

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

A continuación, buscamos la flag proof.txt.

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

Y ya estaría acabada la máquina.&#x20;

{% embed url="<https://www.youtube.com/watch?v=_rSWa0l61DY>" %}
Vídeo de la resolución de Blogger
{% endembed %}
