Writeup de la máquina Brains en TryHackMe.
Resumen
En la máquina Brains, exploramos una vulnerabilidad en TeamCity (CVE-2024-27198), asumiendo roles tanto del Red Team como del Blue Team. Como parte del Red Team, explotamos la vulnerabilidad para lograr ejecución remota de código (RCE) y capturar la bandera. Luego, cambiamos al enfoque del Blue Team, utilizando Splunk para analizar logs e investigar las acciones del atacante que había explotado la misma vulnerabilidad para comprometer la máquina. Este enfoque dual nos brinda experiencia práctica en técnicas de seguridad ofensiva y defensiva.
Reconocimiento
Empecé con un escaneo de red con nmap para identificar puertos y servicios abiertos:
1nmap -A -T4 -p- 10.10.63.31
Resultados del Reconocimiento
Sistema Operativo | Dirección IP | Puertos Abiertos |
---|---|---|
Ubuntu | 10.10.63.31 | 22 (SSH), 80 (HTTP), 50000 (TeamCity) |
Al visitar el servidor web, la página de inicio muestra que está en mantenimiento:
En el puerto 50000, se encuentra la página de login de TeamCity, e inmediatamente al ver la versión 2023.11.4 recuerdo que esta es vulnerable al exploit CVE-2024-27198.
Explotación
Para nuestra facilidad, hay un script listo en metasploit que automatiza el exploit:
Una vez dentro, agarramos la bandera:
Análisis de Logs
Ahora nos movemos al Blue Team, en esta segunda parte, nos metemos en Splunk para analizar logs y descubrir que alguien ya había comprometido esta máquina y podemos investigar el caso.
Identificando al Usuario Creado
Primero nos solicitan identificar el nombre de usuario creado en el servidor tras la explotación. Para encontrar esta información, podemos revisar los registros relacionados con la actividad de usuarios en el archivo /var/log/auth.log
.
Una vez conseguido el lapso de tiempo en el que el atacante entró a la máquina se nos hará más fácil responder las siguientes preguntas.
Encontrando el Paquete Malicioso
El siguiente paso es determinar si el atacante instaló algún paquete malicioso en el servidor. Para ello, aprovechamos el sourcetype packages
en Splunk, el cual clasifica y estructura los registros de la gestión de paquetes en el sistema. Este sourcetype incluye información detallada sobre paquetes instalados, actualizados o eliminados, permitiéndonos rastrear cualquier actividad sospechosa.
Identificando el Plugin Instalado
Para esto, utilizamos un sencillo query en Splunk con el término clave *plugin*
combinado con el lapso de tiempo previamente definido. Esta consulta nos permitió encontrar rápidamente el plugin malicioso instalado en el sistema.
Herramientas Utilizadas
Herramienta | Descripción |
---|---|
nmap | Herramienta de escaneo de red utilizada para identificar puertos y servicios abiertos. |
Metasploit | Utilizado para automatizar la explotación de la vulnerabilidad CVE-2024-27198. |
Splunk | Plataforma utilizada para analizar logs del sistema y rastrear actividades sospechosas. |
Recomendaciones
Para mitigar riesgos similares a los explorados en esta máquina, se recomienda aplicar actualizaciones de seguridad tan pronto como estén disponibles, especialmente en plataformas críticas como TeamCity. Implementar controles de acceso estrictos y limitar los servicios expuestos al Internet. Además, se deben monitorear constantemente los logs del sistema mediante herramientas como Splunk para detectar actividades sospechosas, como creación de usuarios o instalación de paquetes maliciosos. Finalmente, realizar pruebas periódicas de penetración ayuda a identificar vulnerabilidades antes de que puedan ser explotadas por un atacante.