🟢Blogger

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

Enumeración

Enumeración de puertos abiertos

Comenzamos realizando un escaneo rápido de los servicios abiertos.

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

Puertos 22 y 80 abiertos. Vamos a escanear de manera profunda estos dos servicios.

nmap -p22,80 -sVC -vvv 192.168.85.217

Enumeración Web

Existe un puerto 80 abierto. Vamos a ver el contenido en el navegador.

Enumeramos directorios con dirsearch.

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

Solo encontramos un dato interesante. Parece un sitio WordPress.

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

Existe una vulnerabilidad de carga de archivos no autenticada en un plugin.

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

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.

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

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.

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.

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.

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

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".

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.

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

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

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

Y ya estaría acabada la máquina.

Last updated