BountyHunter - HackTheBox Easy

Tenemos ante nosotros la maquina BountyHunter de la plataforma HackTheBox, sabemos que tiene sistema operativo linux y que es catalogada como Easy por los usuarios. 

Lo primero que pruebo es hace ping para comprobar que ya tengo conexión con la maquina victima. 


Luego ocupo Nmap para hacer un primer escaneo de puertos. 

sudo nmap -p- -sS --open -v -n -Pn 10.10.11.100


Descubrimos que tiene abiertos el puerto 22 y el puerto 80. 22 de ssh y

puerto 80 para acceder a una pagina web...


Arriba a la derecha vemos un enlace a portal.php, asumimos que puede haber mas archivos php servidos.

Usamos fuzzing con un diccionario de palabras comunes usadas en archivos y directorios.


se ven algunas cosas interesantes, pero también a través del enlace Portal, vemos un formulario que puede servir, aparentemente no permite inyección de código sql, pero hace un envío y procesamiento de lo que se ingresa allí. 

Abrimos el Burpsuite para investigar mas sobre eso que se ve en el campo data. 


Al decodificarse se ve que es XML, por lo que investigando encuentro que se puede hacer XML injection, poniendo en el xml una línea que nos acceda a un archivo que sepamos está servido en la maquina victima. 

Vamos a intentar acceder al archivo db.php que no muestra nada pero que por el nombre es el que mas llama la atención.


Mirando por internet que tipos de inyecciones de xml puedo aplicar y encuentro en esta web https://github.com/payloadbox/xxe-injection-payload-list varias opciones. Aplicamos una modificando data y enviando...


Lo que me devuelve la petición hecha es el archivo db.php, pero se observa en base64, lo decodifiqué con el mismo Burpsuite



Tenemos ahora una password del usuario admin de la base de datos bounty, pero no tenemos acceso al gestor de bases de datos. :(

Probemos si es la misma password del usuario root! (cruzando los dedos xD)

No es :(

Probamos si es la de algún usuario admin o test que hubiera en la maquina y tampoco.




Recuerdo que puedo traerme mas archivos de la misma manera que traje db.php, entonces que tal mirar qué usuarios tiene la maquina para probar la password que tenemos?


Vemos que además de root (que ya probamos la password y no era), tenemos el usuario development, que tambien tiene bash y por lo tanto puedo conectarme por ssh (quiero suponer)

Efectivamente la password conseguida es la del user development.

Puedo ver la Flag de usuario.

También veo que hay un documento junto con la flag, este archivo hable de una "internal tool" a la que tengo acceso y que hace referencia a unos tickets, ya veremos si esa info es útil.

Parece que no soy sudoer, busco como mirar que puedo hacer con este user. Cómo era el comanto?

con sudo -l me doy cuenta que puedo acceder como root a un script hecho en python que se llama ticketValidator.py, esta debe ser la "internal tool" de la que hablaba el archivo de antes. 

vamos a ejecutar para ver que hace.

Miremos el código

Según se entiende, nos pide la ruta de un archivo .md y filtra que el archivo cumpla con una características, así que buscaremos crear un archivo que cumpla con ellas para después concatenar un bash con privilegios de root.

Ejecutamos el script...


Y listo ya tenemos la flag de root.

Aprendí mucho con esta maquina y por eso la quise compartir.


Saludos,

Comentarios

Entradas más populares de este blog

Conociendo la shell de MongoDB 3.2

Mas allá de twitter

Películas vistas en 2017