Skip to main content
HackTheBox machines – Shared WriteUp

HackTheBox machines – Shared WriteUp

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

Shared 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 Shared 10.10.11.172 a /etc/hosts como shared.htb y comenzamos con el escaneo de puertos nmap.

No hay muchos puertos abiertos, así que vamos a revisar el portal web existente en el puerto 80/443.

 

Enumeración

Accedemos al portal web por el puerto 80 y nos redirecciona al puerto 443 donde vemos una página web de una tienda realizada con prestashop

Compra ropa o arte en Shared

 

Revisamos el portal y hacemos varias enumeraciones pero no descubrimos mucha cosa así que vamos a ver como funciona la página, añadimos un artículo al carrito y procedemos a pagar el mismo

Proceso de compra en Shared

 

Cuando vamos a pagar, al darle al botón de checkout nos lleva a un nuevo subdominio que añadiremos al fichero /etc/hosts

Una vez añadido, accedemos al mismo luciendo el siguiente aspecto

HackTheBox machines – Shared WriteUp

 

En esta página muestra el contenido de los artículos que hemos marcado previamente para comprar y donde solicita añadir una tarjeta de crédito, si analizamos detenidamente esta página y nos fijamos en la petición de una a otra, observamos una cookie que nos llama la atención

Revisando las cookies

 

Después de varias pruebas vemos que en la misma se indica el id del artículo seleccionado y la cantidad comprada del mismo, así que hacemos alguna prueba con la misma y detectamos que es vulnerable a sqli.

Verificando vulnerabilidad sqli

 

Hemos cambiado el valor de la cookie, pero sin embargo el portal sigue funcionando correctamente así que vamos a tratar de obtener más información por este método.

Descubrimos en primer lugar sobre qué esquema de base de datos está configurada la aplicación

Y vemos que se trata del esquema checkout

Obteniendo el esquema de base de datos

 

El siguiente paso será obtener las tablas del esquema

Obteniendo las tablas

El último paso será obtener el usuario y la password

Obteniendo usuario y password

 

Ya tenemos la clave, pero está cifrada, así que vamos a utilizar john para descifrar la misma

Y ya tenemos la pass del usuario james_mason, así que el siguiente paso será acceder por ssh con las claves.

El usuario no puede acceder a la flag así que nos tocará escalar a otro usuario para poder continuar.

 

Escalado lateral al usuario dan_smith

Revisamos en la home del usuario y vemos la flag, pero no podemos conseguirla así que tendremos que encontrar la forma de saltar a dicho usuario.

Revisamos en la máquina alguna ruta donde el grupo sea developer y encontramos un directorio en /opt

Aunque extrañamente está vacío y todavía no sabemos por qué.

Seguimos enumerando e investigando la máquina y encontramos un proceso interesante mediante el uso de pspy

Investigando procesos con pspy

 

Vemos un proceso de ipython, para que nos entendamos, es un shell interactivo que añade una serie de extras al modo interactivo incluido por defecto en python.

Vamos a revisar la versión de la librería

Y navegamos un poco buscando alguna vulnerabilidad relacionada y encontramos un cve, CVE-2022-21699, que permite la ejecución de código arbitrario y encontramos también una poc en github para explotar la misma.

Vista la vulnerabilidad, para explotarla, vamos a crear los directorios dentro del que vimos anteriormente y que teníamos permisos de escritura.

Generamos un script en python que copiará la clave ssh de la home del usuario dan_smith a la ruta que escojamos

Ahora tan sólo debemos esperar unos segundos y veremos como se ha copiado la clave del usuario al directorio que indicamos

 

Obteniendo la flag de user

Con la clave ssh del usuario, accedemos y obtenemos la flag de la home del mismo

 

Escalado de privilegios

Para el escalado, seguiremos enumerando y nos fijamos en uno de los grupos a los que pertenece el usuario dan_smith, el grupo se llama sysadmin, así que vamos a buscar algún fichero o directorio donde tengamos permisos

Y encontramos un ejecutable de redis, que si lanzamos, veremos lo siguiente

No tenemos permisos para ver los ficheros de configuración existentes ni para ejecutar el binario de redis-server así que vamos a verificar el puerto en el que corre el servicio

Nos descargamos el ejecutable y lo lanzamos en local

Y si nos fijamos en la escucha que habíamos puesto en el puerto 6379 hemos obtenido lo que parece una password

Hacemos alguna prueba y comprobamos que la clave se utiliza para el acceso a la cli de redis

Así que nos vamos a google a buscar alguna vuln y encontramos en concreto una para obtener un escalado de privilegios, CVE-2022-0543,  y una poc de la misma

https://github.com/vulhub/vulhub/blob/master/redis/CVE-2022-0543/README.md

Vista la explicación y la poc, como en sistemas basados en debian la librería de lua es dinámica, es posible explotar la misma, así que revisaremos en primer lugar la localización de la librería

El siguiente paso será generar un fichero con una revshell

Y por último acceder a la cli de redis y ejecutar el payload

Una vez ejecutado nos vamos a nuestra escucha y observamos como hemos conseguido acceso como root

 

Obteniendo la flag de root

Ya somos root, así que nos queda ir a por nuestra ansiada 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 *