Skip to main content
HackTheBox machines – Bookworm WriteUp

HackTheBox machines – Bookworm WriteUp

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

Bookworm es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Insane.

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 Bookworm 10.129.89.241 a /etc/hosts como bookworm.htb y comenzamos con el escaneo de puertos nmap.

Empezamos con un escaneo simple y rápido para detectar los puertos abiertos

Y continuamos por un escaneo más extenso sobre los puertos descubiertos

 

Enumeración

Accedemos al portal web en el puerto 80 y vemos la siguiente página de venta de libros

HackTheBox machines – Bookworm WriteUp

 

Debido a que no tenemos una cuenta, nos creamos una, accedemos y veremos la siguiente página que muestra el catálogo de libros a la venta

HackTheBox machines – Bookworm WriteUp

 

Observamos también las actualizaciones recientes en el lado derecho de la página, y que si vamos revisando, cambian cada pocos minutos, lo que puede ser de ayuda más adelante.

Si revisamos el código fuente de la página, podemos observar, que estos bots disponen de un id, que cambia con cada actualización:

 

Revisamos el portal y vemos varias cosillas interesantes:

  • Através del avatar es posible subir cualquier fichero, siempre y cuando la extensión sea jpg, jpeg o png, ya que no realiza ningún tipo de comprobación extra.
  • Es posible escribir notas en los pedidos realizados, por lo que puede ser un punto de entrada para la ejecución de un XSS

 

Así que para la prueba subimos un simple fichero con extensión png a nuestro avatar y añadimos a la nota la carga de nuestro avatar

Verificando vulnerabilidad de XSS

Y vemos que funciona, por lo que es vulnerable. Además, si revisamos la nota que aparece, nos da a entender que es posible descargar los libros, por lo que es posible que se encuentren en alguna ruta.

Visto esto, y después de algunas vueltas y pruebas nos realizamos un script en js que recoja los pedidos de los usuarios, obtenga las rutas de descarga de los ficheros pdf y nos lo envíe a nuestra máquina, además, y siguiendo con todo esto descubrimos que el parámetro de descarga de los pdfs es vulnerable a LFI por lo que nos ayudará a obtener los ficheros existentes en el servidor.

 

Explotando la vulnerabilidad de LFI

Bueno, siguiendo con lo dicho necesitaremos varias partes para nuestro script:

  • Obtener los pedidos de los usuarios para tratar de obtener los enlaces de descarga de los mismos
  • Editar el enlace de descarga para poder explotar el LFI
  • Una vez obtenidos los datos, enviar los enlaces y el contenido de los mismos a nuestra escucha por POST, con el fin de poder exfiltrar información del servidor

Vistos los puntos necesarios, nuestro script quedaría así:

 

Si nos fijamos en la siguiente línea, necesitamos indicar el parámetro bookIds 2 veces para que el LFI funcione

 

Ahora que ya tenemos claro nuestro script lo subiremos al avatar de nuestro usuario, simplemente debemos cambiar la extensión por una de las permitidas.

Levantaremos nuestro servidor en python, que en mi caso, he utilizado el siguiente script:

 

El siguiente paso será añadir la nota con la carga de nuestro avatar a las notas de los bots que vimos anteriormente, para ello, y en mi caso, he utilizado burp para enviar la petición al id de la compra del bot

Interceptando peticiones con burp

 

Completados estos pasos, esperamos unos segundos a que el bot complete la compra y tendremos el resultado en nuestra escucha

Explotando un LFI

 

Para la conversión lo cargamos en un simple script en python:

Y ya tendremos generado el fichero zip

Así que revisaremos su contenido

Extraemos los datos

Y si revisamos el pdf generado vemos que tenemos el contenido del fichero passwd

 

Hemos visto que funciona correctamente, así que el siguiente paso será descargar el fichero raíz de la aplicación, situado en la ruta

Si revisamos el contenido del mismo, obtenemos dos líneas interesantes

El fichero index carga dos archivos más, database y utils así que puede ir por ahí la cosa.

Descargamos el fichero de database y dentro del mismo encontramos una password

Revisando los usuarios existentes en el sistema, probamos y conseguimos entrar con el usuario frank

 

Obteniendo la flag de user

Una vez dentro, simplemente cogemos la flag

 

Escalado de privilegios (Forma no intencionada)

Revisamos los procesos que están corriendo en el sistema con pspy y encontramos uno muy interesante

Revisión de procesos del sistema

 

Se trata del navegador google-chrome corriendo en la máquina, y que además utiliza un puerto para hacer el debug, por lo que puede ser nuestra puerta hacia root.

Buscamos en google y encontramos un módulo para metasploit que es capaz de explotar un LFI a través del debugger de chrome, así que lanzamos nuestro metasploit y cargamos el módulo

Establecemos el path, que en este caso será la clave ssh de root

Debido a que el puerto está corriendo localmente en la máquina tendremos que usar chisel para acceder al mismo desde nuestro kali, así que buscamos el puerto en cuestión

Y tunelizamos el mismo con chisel, así que abrimos el servidor en nuestro kali

Y nos enviamos el puerto

Una vez hecho, configuramos las variables restantes en metasploit

Y ejecutamos

Y si revisamos el contenido del fichero que ha generado, tendremos la clave ssh de root.

 

Obteniendo la flag de root

Ahora que ya tenemos la clave, accedemos por ssh y cogemos la 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 *