Shoppy - HackTheBox

Featured image

🤖En esta máquina Linux de nivel Easy tendremos un login que debemos bypassear con una inyección sql, una vez dentro buscaremos usuarios válidos para conseguir su hash y poder loguearnos en otro panel web dentro de un vhost que debemos descubrir para conseguir credenciales ssh. Finalmente escalaremos privilegios a través de docker.

🎥Canal Writeups Youtube🎬 –> https://www.youtube.com/channel/UCllewdxU0OQudNp9-1IVJYQ

HTBadge

Un pequeño INDICE

  1. Reconocimiento.
  2. Enumeración.
  3. Explotación.
  4. SSH
  5. Escalada de Privilegios.

Reconocimiento #

Reconocimiento de Puertos 🔍

Como siempre comenzamos con un reconocimiento de puertos a través de la herramienta nmap.

Como vemos tenemos los puertos 22 y 80.

Puerto Servicio Versión
22 SSH OpenSSH 8.4p1
80 HTTP nginx 1.23.1

Una vez tenemos estos datos, procedo a comprobar que tenemos en el servidor web (Puerto 80).

Enumeración #

Enumeración Web 🔍

Añado el dominio al archivo hosts y accedo al mismo a través del navegador.

Buscando a simple vista no veo nada que me pueda servir, tampoco veo nada en el código fuente, por lo que procedo a fuzzear rutas en el servidor web con la herramienta feroxbuster.

El fuzzeo me reporta la ruta login, por lo que voy a ver que puedo hacer.

Explotación #

Burpsuite 🔍

Intento loguearme con credenciales aleatorias y capturar la petición con Burpsuite para probar diferentes cosas.

La envío al repeater y pruebo a editar el campo del usuario metiendo una comilla, al darle a enviar se queda cargando sin recibir respuesta, lo que me hace pensar que es vulnerable a sqli.

Asique pruebo a meter diferentes inyecciones hasta que doy con la adecuada y puedo saltarme el login.

Y conseguimos bypassear el login sin conocer la contraseña.

Una vez estamos dentro vemos que solo podemos buscar por usuarios…, por lo que podría fuzzear en busca de usuarios válidos, pero esta vez lo haré a través de burpsuite usando el intruder y una lista de usuarios.

Capturamos la petición al insertar algo en el campo de búsqueda.

Lo enviamos al intruder, seleccionamos como tipo de ataque Sniper y en el aprtado de payloads añadimos una lista de usuarios y lanzamos el ataque.

Una vez terminal el ataque debemos fijarnos en la longitud de la respuesta, en este caso si el usaurio no existe tendremos una longitud de 2763 y si es exitoso tendremos 2922.

Una vez veo que existe el usuario josh existe lo busco desde el panel de búsqueda de la web y descargo el archivo export.

Lo abro y tenemos lo siguiente:

Hash Cracking 🔍

Parece el hash del usuario josh… asique vamos a intentar crackearlo.

VHOST Mattermost 🔍

Ya tengo el hash de josh crackeado, por lo que podría intentar loguearme a través de ssh.

Pero no ha habido suerte, por lo que pienso que he de haber algo más en algún vhost… asique procedo a fuzzear en busca de un vhost.

vhost mattermost.shoppy.htb.

Lo añado al archivo hosts y accedo al mismo para ver que hay.

Al acceder veo que hay un login donde podría probar con las credenciales de josh…

Y consigo acceder a un panel que parece que sirve para crear canales de comunicación… asique investigo un poco… y encuentro esto.

SSH #

ssh jaeger 🔍

Con estas credenciales consigo loguearme a través de ssh como el usuario jaeger.

Una vez me he logueado intento leer la flag de usuario.

A continuación lo último que toca es escalar priviegios para poder leer la flag root.

Pero antes de migrarme al usuario root he de migrarme al usaurio deploy.

Podemos ejecutar como root el script password-manager…

Pruebo a ejecutarlo y me pide una contraseña.

Lanzo un cat al script para intentar buscar la contraseña.

La contraseña parece ser Sample asique voy a probar.

ssh deploy 🔍

Y ya tenemos credenciales del usuario deploy, por lo que a través de ssh puedo conectarme.

Ahora ya si que si toca migrar al usuario root.

Escalada de Privilegios #

Si nos fijamos bien podemos ver que existe el grupo docker y estamos dentro del mismo…

Podría intentar escalar privilegios con docker.

Buscando encuentro la forma de escalar privielgios abusando de docker.

https://gtfobins.github.io/gtfobins/docker/

Lanzamos el comando…

Y ya nos hemos convertido en el usuario root :)