Skip to main content
HackTheBox machines – Corporate WriteUp

HackTheBox machines – Corporate WriteUp

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

Corporate 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 Corporate 10.129.249.217 a /etc/hosts como corporate.htb y comenzamos con el escaneo de puertos nmap.

Descubiertos los puertos abiertos lanzamos un escaneo más detallado sobre los mismos

 

Enumeración

Sólo tenemos abierto el puerto 80 así que accedemos a través del navegador viendo la siguiente página web.

HackTheBox machines – Corporate WriteUp

 

Si revisamos las cabeceras vemos que tiene activado el CSP

 

No parece que haya gran cosa por aquí así que enumeramos a fondo y vemos dos ficheros javascript ofuscados

Nos centramos en el fichero analytics.min.js el cual luce así

Así que vamos a utilizar la web de deobfuscate para desofuscar el mismo quedando el siguiente código

Vemos que las peticiones contra analytics van con el cors desactivado, lo que puede venir bien más adelante, aunque por el momento no podemos hacer mucho más por aquí.

 

Enumeramos entonces subdominios y descubrimos varios

 

Tenemos 4 subdominios que pasamos a explicar a continuación:

  • support – Tenemos un chat en el cual podemos hablar con soporte
  • git – devuelve un 403
  • sso – se trata de un formulario de login SSO
  • people – como no tenemos una sesión establecida nos lleva al panel de login de SSO

 

Procedemos entonces con el portal de support donde vemos la siguiente página web

HackTheBox machines – Corporate WriteUp

Podemos indicar nuestro nombre y hablar con un agente, el cual cerrará el chat a los 5-6 segundos aproximadamente.

Enumeramos el portal, sobre todo los ficheros js, y vemos un fichero javascript interesante

Se trata de otro fichero ofuscado, así que siguiendo el mismo procedimiento de antes obtenemos el código en claro quedando así

 

Analizando el código podemos deducir que el bot hará click en cualquier elemento cuyo id sea send-message, por lo que puede ser nuestro punto de entrada.

 

Explotación de XSS

Viendo esta puerta de entrada del panel de soporte y la sección de analytics sin el cors activado vemos que podemos utilizarlo para conseguir ejecutar un XSS y robar la cookie del usuario, así que para ello vamos a enviar al usuario el siguiente payload a través del chat

Y nuestro html incluirá una cabecera refresh encargada de enviar la petición a la web principal en el dominio de corporate.htb

Enviamos el mensaje a través del chat

HackTheBox machines – Corporate WriteUp

 

Y tendremos la cookie del bot

Para los siguientes pasos vamos a necesitar al menos dos usuarios diferentes así que repetimos el proceso para tener la cookie de otro usuario.

 

Acceso al portal de SSO

Una vez que tenemos la cookie de sesión, vamos al portal de sso

Acceso al portal corporativo

 

Necesitamos crear la cookie CorporateSSO con el valor obtenido en el XSS modificando el dominio de la misma por .corporate.htb y el path por /, una vez hecho recargamos para poder entrar al panel de sso

Visualización del acceso al SSO

 

Explotando el portal de people

En esta parte tenemos un enlace al portal de people y un enlace a un formulario de reseteo de passwords, así que vamos al portal de people donde vemos la siguiente ventana

dashboard del portal people

 

En el mismo vemos varias páginas sin gran cosa y una sección para compartir ficheros donde vemos los ficheros a los cuales tiene acceso el usuario

Obteniendo los ficheros compartidos

Vemos un fichero ovpn que necesitaremos para acceder a la red interna, pero lo haremos más adelante, por lo que continuamos con el portal web.

Aquí no parece que podamos hacer gran cosa así que revisamos los ficheros en javascript y obtenemos el código utilizado

Viendo el código no hay ningún tipo de comprobación por lo que cualquier usuario puede compartir cualquier archivo con otro, así que vamos a ver que podemos hacer, para esta parte necesitaremos tener las dos credenciales que mencionamos anteriormente así que utiliando el intruder de burp vamos a realizar la petición de compartir archivos con los números 1 a 200 hacia el otro usuario que obtuvimos con el ataque XSS y con un simple script sacamos los ficheros

 

Y obtenemos el listado de ficheros existentes en la plataforma

 

Entre todos los ficheros vemos uno interesante

Así que descargamos y abrimos el mismo y vemos la siguiente parte

Documento pdf de acceso a la compañia

 

En el documento nos indica, que por defecto, cuando se crea un usuario la password es CorporateStarter seguida de la fecha de nacimiento del usuario así que vamos a crear otro script que nos ayude con esta parte, bueno más bien serán dos scripts.

Creamos un primer script para enumerar todos los usuarios y generar un diccionario con el usuario y la password del mismo

 

Y un segundo script para testear cuales son válidos y tienen la password por defecto

 

Hecha esta parte lanzamos el primero para obtener el listado de usuarios

Y después comprobamos cuales de los usuarios obtenidos son válidos

 

Acceso a la red interna

Ya tenemos las credenciales válidas de 4 usuarios pero ahora necesitamos conocer a donde podemos acceder con las mismas, así que recordamos el fichero de vpn que vimos antes y nos conectamos.

Enumeramos los hosts existentes en las redes existentes

Y la red 10.9

Revisamos los hosts descubiertos y conseguimos acceder con las credenciales del usuario brody a la máquina con ip 10.9.0.4

 

Obteniendo la flag de user

Una vez dentro revisamos la home del usuario y vemos la flag

 

Escalado de privilegios en la máquina virtual

Viendo la IP de la máquina a la cual nos conectamos podemos deducir de forma rápida que no es la máquina principal, así que vamos a ver posibles formas de elevar privilegios dentro de la máquina actual.

Revisamos a fondo la máquina y encontramos el dominio del ldap en el fichero hosts

 

Así que lanzamos una primera consulta contra el servidor ldap

 

Tratamos de llevar a cabo una enumeración completa de usuarios

Y entre los mismos vemos dos que pertenecen al grupo sysadmin

 

Por lo que vamos a necesitar una forma de poder acceder a ese grupo o suplantar a uno de esos usuarios.

Revisando el ldap vemos que hay un fallo en la configuración del servicio y es que podemos añadir un usuario a un grupo existente en el sistema, por lo que vamos a añadir al usuario al grupo sudo local de la máquina.

Revisamos en primer lugar el id del grupo sudo

Creamos un fichero ldif con la configuración necesaria

Y ejecutamos

Parece que ha salido correctamente, pero para verificarlo, accedemos con el usuario y revisamos los permisos y efectivamente estamos dentro del grupo sudo

Así que escalamos a root

 

Obteniendo credenciales como sysadmin

Una vez somos root en la workstation podmeos acceder con uno de los usuarios sysadmin

Y al revisar las claves ssh

Vemos que tiene las claves del usuario sysadmin en el host

Por lo que las utilizamos para acceder

 

Escalado a root

Ya estamos dentro de la máquina principal, aunque ahora necesitamos encontrar una forma de escalar a root.

Revisamos los binarios con suid y vemos varios de proxmox en el servidor

Y si revisamos los puntos de montaje vemos una partición dedicada a proxmox

Buscamos en google posibles vulnerabilidades y encontramos una página donde refleja varias de ellas

https://starlabs.sg/blog/2022/12-multiple-vulnerabilites-in-proxmox-ve–proxmox-mail-gateway/

Vemos en la misma también un script para escalar privilegios gracias a la obtención de una clave de autenticación en un backup existente de la plataforma así que buscamos en la máquina y encontramos un backup

Y dentro del mismo la clave de autenticación necesaria para llevar a cabo el ataque

Así que descargamos el backup para extraer la clave y creamos un script con parte del código de explotación que vimos en la anterior web quedandonos lo siguiente

 

Ejecutamos el script y tenemos nuestro ticket

 

Ahora accedemos al portal web en el puerto 8006 y añadiremos el ticket en la cookie PVEAuthCookie, recargamos la página y veremos el siguiente dashboard

Acceso al portal de proxmox

 

Navegamos por las máquinas existentes y vemos que podemos obtener una shell directamente como root en la máquina corporate

Por fin root!

 

Por tener un mejor acceso nos mandamos una revshell ejecutando el comando

Y tenemos una shell como root

 

Obteniendo la flag de root

Siendo ya root en el servidor vamos a por nuestra ansiada flag para dar por completada la máquina

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 *