Gabriel Tello

Brains (THM)

Fecha de publicación: | 600 palabras | 3 mins

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:

Página en mantenimiento

Página 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.

Login de TeamCity

Login de TeamCity

Explotación

Para nuestra facilidad, hay un script listo en metasploit que automatiza el exploit:

Ejecución de exploit en metasploit

Ejecución de exploit en metasploit

Una vez dentro, agarramos la bandera:

Bandera

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.

Usuario creado

Usuario creado

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.

Paquete malicioso instalado

Paquete malicioso instalado

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.

Plugin malicioso instalado

Plugin malicioso instalado

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.

#Linux   #Pentesting   #Red Team   #Blue Team   #Purple Team   #Tryhackme   #Thm   #Metasploit   #Writeup  

Responder a este post por correo ↪