Skip to main content
HackTheBox machines – Time WriteUp

HackTheBox machines – Time WriteUp

Time es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en linux

Time 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 Time 10.10.10.214 a /etc/hosts como time.htb y comenzamos con el escaneo de puertos nmap.

Encontramos simplemente el puerto 80 por lo que procederemos a revisar el portal web existente en el mismo.

 

Enumeración

Accedemos a través del navegador y encontramos el siguiente portal:

HackTheBox machines – Time WriteUp

 

Es un formulario simple, probamos a introducir cualquier caracter y nos da la respuesta null

HackTheBox machines – Time WriteUp

 

Vemos que el desplegable incluye un segundo valor, Beta, así que lanzamos loquesea a través del mismo y obtenemos el siguiente error:

Parece que es un fallo en la validación de la librería jackson por lo que buscamos información en google y encontramos el siguiente post donde trata el tema:

https://medium.com/@swapneildash/understanding-insecure-implementation-of-jackson-deserialization-7b3d409d2038

Así que siguiendo con la explicación y el ejemplo realizado en el anterior post lanzaremos de nuevo la petición introduciendo el siguiente valor en json:

El cual nos devolverá el siguiente error:

Volvemos a googlear y encontramos varios post donde trata el tema, mencionando que el error aparece por utilizar los caracteres {} en lugar de [] por lo que lanzaremos de nuevo la petición sustituyendo estos caracteres:

Y nos da otro error más, pero diferente a los anteriores:

Volvemos a buscar en google y en este caso encontramos algo más interesante, una vulnerabilidad conocida cuyo código es CVE-2019-12384 y que además hay una poc explicando la misma que podemos ver en el siguiente enlace:

https://blog.doyensec.com/2019/07/22/jackson-gadgets.html

Por lo que siguiendo con la explicación, en primer lugar crearemos un fichero sql con el código mencionado y alguna modificación para abrir una shell inversa:

Y para el testeo lanzaremos en el formulario el siguiente payload:

Ahora necesitaremos varias cosas, primero levantar con python un servidor en local para que el servidor destino pueda obtener el fichero sql, levantar una escucha con netcat y por último ejecutar el payload en el formulario.

Así que realizamos todos los pasos y obtendremos una shell en nuestra escucha con el usuario pericles:

 

Obteniendo la flag de user

Ahora que ya estamos dentro de la máquina con el usuario pericles, vamos a la home de este y obtenemos la flag de user:

 

Escalado de privilegios

Completada la primera parte, ahora necesitaremos enumerar el sistema con el objetivo de encontrar algún fallo en el mismo y obtener acceso a root.

Utilizamos LinPEAS para enumerar el sistema y obtener datos importantes dle mismo y encontramos un fichero y un proceso muy interesante:

Y un proceso de este mismo fichero ejecutado por root cada pocos segundos:

Así que como tenemos permisos para escribir en el fichero vamos a añadir un comando al mismo para añadir nuestra clave ssh al fichero authorized_keys de root:

Tan sólo nos queda esperar que se ejecute de nuevo y loguearnos con nuestra clave ssh como root:

 

Obteniendo la flag de root

Siendo root, como último paso, accedemos a la home de este para 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. Los campos obligatorios están marcados con *