Skip to main content
HackTheBox machines – Ransom WriteUp

HackTheBox machines – Ransom WriteUp

Ransom es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en Linux

Ransom es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Media.

En este caso se trata de una máquina basada en el Sistema Operativo Linux.

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina Ransom 10.10.11.153 a /etc/hosts como ransom.htb y comenzamos con el escaneo de puertos nmap.

Sólo vemos dos puertos abiertos asi que vamos a enumerar los mismos a ver que encontramos.

 

Enumeración

Nos vamos al portal web en el puerto 80 y vemos la siguiente ventana

HackTheBox machines – Ransom WriteUp

 

Observamos una ventana de login donde nos solicita una password que no tenemos así que vamos a revisar el portal. 

Hacemos, de todas formas, una prueba de enviar una clave y nos muestra un mensaje indicando que la password utilizada no es válida

HackTheBox machines – Ransom WriteUp

 

Observamos, mediante las cabeceras que se trata de una web que utiliza el framework laravel

Y revisando el código fuente de la web observamos el js que se encarga de realizar la validación del formulario

 

Hacemos alguna prueba de sqli pero sin éxito así que nos vamos a burp a ver si podemos bypasear el login.

Interceptamos la petición, la enviamos al repeater, y tratamos de enviar la petición por POST pero nos devuelve un error 405 indicando que el método utilizado no es válido

Comenzando con burp

 

Modificamos y enviamos la petición por GET, pero manteniendo la sintaxis del envío de datos por post, sin incluir el parámetro en la url, y en este caso no detecta nuestro parámetro

Volvemos a probar con GET

 

Así que vamos a tratar de enviar la petición enviando los datos en formato json, y en este caso si nos detecta el parámetro

JSON es la clave

 

Hacemos alguna prueba con eso y modificamos el valor de password a true, y de esta forma sí que conseguimos saltarnos el login

Probando un valor booleano

 

Así que interceptamos otra petición y la enviamos de la forma que descubrimos anteriormente para saltar el login y acceder a una página donde podemos descargar dos ficheros:

Login bypaseado

  • homedirectory.zip -> es un fichero zip cifrado con el contenido de la home del usuario
  • user.txt -> la flag de user

 

Obteniendo la flag de user

La flag de user en este caso ha sido mucho más fácil de lo esperado, simplemente observamos el contenido del fichero para obtener la misma

 

Descifrado del fichero homedirectory.zip

Ahora lo que nos toca para continuar es obtener el contenido del fichero .zip, que si miramos en su interior observamos que hay una clave ssh

 

Tratamos de extraer el mismo, pero obviamente, nos solicita una password

Utilizaremos, en primer lugar, 7zip para intentar obtener el tipo de cifrado utilizado

 

Y observamos que se trata del cifrado ZipCrypto, para el cual hay un ataque conocido, no precisamente nuevo ya que las versiones actuales utilizan cifrados AES256, y que dispone de una vulnerabilidad en la cual, si se dispone de un fichero idéntico al que existe en el fichero zip es posible utilizar el mismo para abusar del fichero zip y conseguir extraer su contenido sin necesidad de conocer su contraseña.

El nombre de la máquina nos da alguna pista de por donde buscar, y si navegamos un poco encontramos un post donde explica como realizar esto mismo

https://medium.com/@whickey000/how-i-cracked-conti-ransomware-groups-leaked-source-code-zip-file-e15d54663a8

 

Así que revisamos los ficheros existentes y vemos uno la mar de interesante

 

El fichero .bash_logout ocupa 220 bytes y si comparamos con el existente en nuestra máquina el tamaño coincide

 

Además de esto, para verificar que el contenido ha sido extraido correctamente se utiliza el código CRC32, de tal forma que sea posible verificar que la extracción es válida, por lo que vamos a comprobar nuestro fichero .bash_logout con python para ver si tiene el mismo valor que el fichero existente en el zip

 

Y observamos, que en efecto, es el mismo. Así que vamos a buscar una herramienta que nos permita llevar a cabo el abuso del fichero y encontramos la tool bkcrack

Descargamos la misma y revisamos la ayuda de la herramienta, y en nuestro caso utilizaremos los siguientes parámetros

 

Así que generamos un fichero zip con nuestro fichero .bash_logout

Y lanzamos el primer ataque para obtener las keys del zip

 

Ya tenemos las keys, ahora nos queda utilizar las mismas para generar un fichero nuevo con la contraseña que deseemos y que nos permita obtener el contenido.

Utilizaremos las siguientes opciones de la herramienta

Y lanzamos para generar nuestro zip

Extraemos el contenido y ya tenemos la clave ssh del usuario htb (lo podemos ver si abrimos el fichero de la clave pública)

 

Así que utilizamos la clave para entrar por ssh a la máquina

 

Escalado de privilegios

Ahora que ya estamos dentro, nos queda escalar a root.

Enumeramos la máquina y encontramos interesante la configuración de apache, sobre todo del vhost 000-default

Nos indica la ruta donde está alojada la web, así que vamos a investigar la misma.

Revisamos que se trata del framework laravel que vimos anteriormente

 

Y recordamos que en el formulario de login nos daba un error de password inválido, y que no hemos conseguido obtener, así que vamos a buscar el fichero donde se encuentra dicho código

Y el código del mismo es el siguiente:

 

Y vemos una contraseña, que vamos a utilizar para escalar a root.

 

Obteniendo la flag de root

Utilizamos la password obtenida para escalar a root y conseguir nuestra flag

Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.

 

Si eres usuario de HackTheBox y te gustó mi writeup, por favor, dame respeto en el siguiente enlace

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.