> 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

Write-up de la máquina Blogger de Proving Grounds #writeup #walkthrough

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FVxJh5wf6Q64OGqOJmWPM%2Fimage.png?alt=media&amp;token=155b2474-9bf1-4662-8d4b-283e40de43fa" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FyNgJcurK8FV9fsmkiCDp%2Fimage.png?alt=media&amp;token=e9b3b1bd-968d-4319-91f0-ca809dd39a5f" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FFGEJ7whD5OSDpAMewW8g%2Fimage.png?alt=media&amp;token=c8a9d9d9-b42b-4d3a-bf1d-3d1256737c59" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsXN6WXge1jnJenXvTOPY%2Fimage.png?alt=media&amp;token=31907012-7c22-4f21-9ea9-370938835f84" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FhLg2MkEguTbh8uh4hRIm%2Fimage.png?alt=media&amp;token=8fb40b98-f755-4407-b9df-5f82bf46129c" alt=""><figcaption></figcaption></figure>

Enumeramos directorios con dirsearch.&#x20;

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FwmD4TmkZPMwxS4eoam9J%2Fimage.png?alt=media&amp;token=e293afec-7006-4e27-b7c3-f68fc6e5d16b" alt=""><figcaption></figcaption></figure>

Solo encontramos un dato interesante. Parece un sitio WordPress.

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FJhSOR9MsyryW2NSUNuFE%2Fimage.png?alt=media&amp;token=66f99173-0b9a-41f9-a731-c3f943204f29" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F0kcBQphaziFshnWnDbcA%2Fimage.png?alt=media&amp;token=6f8c6093-4eab-47df-bb51-f115e957cd37" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FkiizEuhN0Theu2nMbMpz%2Fimage.png?alt=media&amp;token=acfd8290-8794-4b6a-9e7b-a1854cf23965" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FXglDg3Ts1gN6LVtz7p7G%2Fimage.png?alt=media&amp;token=9b028362-b9a0-4fe8-ac4c-562c18ac330a" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F6cNC99Lq63NJwVIkgLTJ%2Fimage.png?alt=media&amp;token=1584d54e-f4a6-4c3e-afe5-872259f20fe1" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FRH8hpanGVVE95nzq0i2k%2Fimage.png?alt=media&amp;token=7d0d112c-2cf4-4d8b-8b80-f519886c9e42" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2Fwn2UlW1uCKj4k41gJGEG%2Fimage.png?alt=media&amp;token=35b49b7b-8dbd-498f-8475-e76433e58cc2" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FIbr5WOXWNzzpO2Oo7fML%2Fimage.png?alt=media&amp;token=dea17a9b-1e61-40a3-a96e-c9868fcb05d5" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FTUUTgJ2iIeAULjgCw08H%2Fimage.png?alt=media&amp;token=445a43f3-9944-4095-9adc-32c24c5aaa18" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FsKcU0dkHxfyxBDPktxaF%2Fimage.png?alt=media&amp;token=404a10d3-d6d8-4498-8fc6-f722c64f72f3" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FTgxSmkFHHa1p7H24iy4C%2Fimage.png?alt=media&amp;token=908acc43-fb10-498f-8601-df27a55d2d4f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FoUkGjWvuALwBXBs0GDuo%2Fimage.png?alt=media&amp;token=7a7f990b-2b94-450a-9e04-552a6bacc57e" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F3aiP3JdFsfdd8srUc1Iz%2Fimage.png?alt=media&amp;token=e53dcb0d-2b80-4f75-849d-5333433c5d5a" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2F7PPJvuWkzwryKTtP7wP4%2Fimage.png?alt=media&amp;token=2f173650-9ee9-4483-ac02-2cf388862fb5" 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="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FzBhNBRwfxJAzBksFRMNz%2Fimage.png?alt=media&amp;token=ac929ed3-8340-473e-a0c0-76dc32957892" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FoI27D9YyJdKWPPVTigh1%2Fimage.png?alt=media&amp;token=bfc5349f-3af0-46d4-a00a-7dbb50547e36" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FMcOnsZC7RqgzoIP1Q0KB%2Fimage.png?alt=media&amp;token=73350e8c-9a91-454b-bfbf-cc3ae91af34a" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://264470966-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeX9VhvbkT8Ff8eDftQXl%2Fuploads%2FQ7tqseRvHYrwDciTXCWv%2Fimage.png?alt=media&amp;token=251fde1a-17ec-4c1d-81e2-69b7dcf73563" 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 %}
