Skip to main content
HackTheBox machines – Previse WriteUp

HackTheBox machines – Previse WriteUp

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

Previse es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Fácil.

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 Previse 10.10.11.104 a /etc/hosts como previse.htb y comenzamos con el escaneo de puertos nmap. 

En este caso, y después de varias pruebas, estaban bastante filtrados los puertos, por lo que mostramos aquí sólo un escaneo que muestra aquellos puertos concretos que se descubrieron

 

Enumeracion

Observamos un posible portal web en el puerto 80, que tiene el siguiente aspecto

HackTheBox machines – Previse WriteUp

Revisamos la página, código fuente, hacemos alguna pruebeta pero nada así que vamos a enumerar directorios a ver que sacamos

 

Viendo las posibilidades vamos a tratar de obtener más información, accedemos a nav.php y vemos que hay un fichero más que no ha salido en el anterior escaneo en la ruta file_logs.php

HackTheBox machines – Previse WriteUp

Y bajo el nombre de LOG DATA en el menú, que puede ser interesante para después.

Después de revisar un poco el portal con los ficheros descubiertos, parece que vamos a necesitar obtener unas credenciales o, tratar de saltarnos ese login, para poder continuar así que usaremos la magia de Burp.

Para ello el objetivo será interceptar la petición al acceder al fichero de /accounts.php y modificar el código de respuesta 302 por un 200 para conseguir saltar la restricción y acceder a la página de creación de cuentas sin tener los permisos apropiados.

Lo primero de todo, si no lo teníamos ya creado, será crear una regla en burp que permita realizar esta acción, para ello desde el panel de burp necesitaremos hacer varias cosas.

En primer lugar marcar la siguiente casilla

  • Proxy -> Options -> Intercept Server Responses -> Check box (Intercept responses based on the following rules)

Una vez marcado el checkbox, bajamos a la sección “Match and Replace” y añadimos una regla con los datos que vemos en la imagen

Editing Burp Suite rules

 

Ahora que ya lo tenemos podemos interceptar la petición en burp para poder acceder a la página de accounts y crear una cuenta

Nueva cuenta en previse

 

Una vez creada nuestra cuenta, y para poder realizar todas las acciones necesarias, borramos las cookies de sesión del navegador y accedemos con las credenciales creadas.

Navegamos por el portal y encontramos un fichero de backup en el mismo que descargaremos

Descargando backups

Si revisamos el contenido del mismo observaremos dos cosas interesantes. La primera, unas credenciales de mysql en el fichero config.php

 

Y la segunda una vulnerabilidad en el código del fichero logs.php, concretamente en la siguiente línea

Donde se observa que ejecuta lo que venga sin realizar ningún filtrado del mismo, por lo que puede ayudarnos en el siguiente paso.

Para ello, nos vamos a la sección de management para ver como funciona realmente

Estado del servidor

 

Y en la sección de log_data podemos descargar el log con formato csv viendo el siguiente resultado

En el fichero anteiror observamos el listado de identificadores de ficheros que se han ido subiendo, y el funcionamiento del portal, así que con el fallo descubierto antes en el código vamos a tratar de lanzar un RCE en la máquina aprovechando la función exec con la siguiente url

Y si verificamos nuestra escucha, hemos obtenido la salida del curl en la misma

Así que hemos conseguido verificar que es vulnerable a RCE, el siguiente paso será conseguir acceso a la máquina, lanzamos una reverse shell

Y conseguimos acceso con el usuario www-data en nuestra escucha

No disponemos de una tty así que cargamos una con python

 

Con las credenciales obtenidas antes del mysql, vamos a ver si podemos conseguir algo de la base de datos, y observamos una tabla con las credenciales de los usuarios en la base de datos de previse

En la que vemos que está el usuario m4lwhere, además del nuestro, pero con la clave cifrada. Utilizaremos hashcat, en nuestro caso, para tratar de descifrar la misma

Y, una vez lo hemos conseguido, accederemos por ssh con el usuario

 

Obteniendo la flag de user

Ahora que ya estamos dentro con el usuario sólo nos queda recoger la flag de su home

 

Escalado de privilegios

Una vez obtenida la primera flag, revisamos en primer lugar los permisos del usuario m4lwhere

Y vemos que tiene permisos para ejecutar el script access_backup.sh como root, cuyo contenido es el siguiente

 

Aquí vemos un error, y es que no está indicando las rutas de los binarios que está utilizando como gzip o date por lo que podemos aprovecharlo para cargar binarios nuestros con los que conseguir acceso como root.

Revisamos en primer lugar que rutas carga en la variable PATH

Utilizamos una ruta en la cual tengamos permisos, puede ser cualquiera, pero en nuestro caso lo hemos guardado sobre /dev/shm y generamos nuestro binario

Le damos permisos y actualizamos la variable PATH

Y ejecutamos el script

 

Obteniendo la flag de root

Y, una vez ejecutado con nuestro binario, conseguimos acceso como root en nuestra escucha y la flag del mismo

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.