DeepBlueCLI: Una herramienta para hacer “hunting” de amenazas a través del log de Windows
En el mundo del pentesting, del Ethical Hacking y de los ejercicios de Red Team siempre hay controles que pueden monitorizar lo que se hace en un sistema. Es buena práctica conocer lo que uno tiene enfrente para entender a lo que se enfrenta en un pentesting o en un ejercicio de Red Team. Por ello, hoy quiero hablar de DeepBlueCLI una herramienta que permite evaluar logs de Windows con el objetivo de “dar caza” a las amenazas que pueden estar alrededor nuestra.
La herramienta está escrita en Powershell y tiene una versión en Python. La herramienta ha sido escrita por el investigador Eric Conrad y está disponible en su Github en el repositorio de sans-blue-team. La herramienta dispone de una serie de expresiones regulares preparadas para detectar ciertas amenazas. La verdad es que el catálogo de amenazas es amplio y bastante común, tiene una fácil relación, por ejemplo, con ataques que se pueden estudiar y encontrar en MITRE ATT&CK.
Como se puede ver en el repositorio de Github, se puede utilizar la herramienta sobre ficheros EVTx que le pasemos, es decir, si los recopilamos de un sistema que ha tenido, o sospechamos que ha tenido alguna incidencia, y se pasan a la herramienta para la evaluación en busca de algunas amenazas.
Figura 1: DeepBlueCLI: Una herramienta para hacer “hunting” de amenazas a través del log de Windows |
La herramienta está escrita en Powershell y tiene una versión en Python. La herramienta ha sido escrita por el investigador Eric Conrad y está disponible en su Github en el repositorio de sans-blue-team. La herramienta dispone de una serie de expresiones regulares preparadas para detectar ciertas amenazas. La verdad es que el catálogo de amenazas es amplio y bastante común, tiene una fácil relación, por ejemplo, con ataques que se pueden estudiar y encontrar en MITRE ATT&CK.
Figura 2: Pentesting con PowerShell 2ª Edición
Como se puede ver en el repositorio de Github, se puede utilizar la herramienta sobre ficheros EVTx que le pasemos, es decir, si los recopilamos de un sistema que ha tenido, o sospechamos que ha tenido alguna incidencia, y se pasan a la herramienta para la evaluación en busca de algunas amenazas.
Figura 3: DeepBlueCli en GitHub |
Por otro lado, se puede hacer uso de la herramienta directamente sobre los eventos del propio sistema. La sintaxis en cada caso sería: ./deepblue.ps1 “” [nombre del logname] en el caso de querer analizar eventos del sistema propia o ./deepblue.ps1 [ruta a fichero EVTx que se haya exportado].
Jugando con DeepBlueCLI
Al ver la documentación de la herramienta, uno se da cuenta de todo lo que puede aportar la herramienta. Una de las primeras pruebas cuando conocí la herramienta fue probar los EVTx que proporcionan y con los que uno puede hacerse una idea de lo que puede lograr. De eso hablaremos más tarde.
Una de las primeras pruebas que hice, fue probar un “getsystem” de Meterpreter y ver cómo DeepBlueCLI reaccionaba. Tras ejecutar el clásico getsystem en un proceso con nivel de integridad alto, es decir, ya estábamos elevados obtenemos el resultado esperado y, ¿Qué ocurre en el log de Windows con esta situación?
Lo que podemos ver en el log de Windows es que se detecta un evento 7045, el cual indica que un servicio fue instalado en el sistema. DeepBlueCLI ya nos proporciona la información detallada sobre lo “sospechoso” de este evento. Además, DeepBlueCLI nos muestra un mensaje cercano para que entendamos rápidamente qué es sospechoso y, también, un resultado indicándonos el detalle sobre quién lo puede utilizar o quién, generalmente, utiliza este tipo comando. Se ve claramente el mensaje que indica que es posible que Meterpreter haya utilizado un ‘getsystem’.
Si nos vamos al visor de eventos de Windows y revisamos el evento en sí, podemos observar varias cosas interesantes. La primera es que DeepBlueCLI se encarga de detectar y analizar el evento, evitando que un evento ‘legítimo’ nos impida ver el árbol (dentro del bosque). A continuación, se puede ver el evento 7045 y lo que el usuario del sistema puede ver. DeepBlueCLI ha hecho ese trabajo de detección y “caza” para indicarnos quién suele utilizar este tipo de sentencias.
Si vemos los diferentes ficheros de eventos que trae la herramienta, permite ir probando diferentes entornos, aunque mi recomendación sería generar dichos entornos, generar tú los eventos con la simulación del ataque y probar. Pero si por falta de tiempo no puedes, puedes jugar con los EVTx que DeepBlueCLI proporciona.
Por ejemplo, ejecutamos DeepBlue.ps1 con password-spray.evtx y con new-user-security.evtx. No son situaciones extremas, pero interesantes. En el caso del nuevo usuario, no se puede ver como una alarma, por sí sola, aunque si lo acompaña un evento como el de Getsystem podemos empezar a sospechar.
Por último, mostramos la salida cuando le pasamos el evento de password spraying. Se puede agrupar el ataque y la herramienta DeepBlueCLI nos proporciona toda la información analizada y procesada de manera sencilla y agrupada.
Sin duda, una herramienta interesante para montar laboratorios y poner a prueba lo que es capaz de detectar de nuestra forma de atacar en un ejercicio de Red Team o en un pentesting. Otra herramienta que llevar en la mochila, pero en este caso para practicar y conocer qué cosas el Blue Team utilizará para detectar la amenaza.
Jugando con DeepBlueCLI
Al ver la documentación de la herramienta, uno se da cuenta de todo lo que puede aportar la herramienta. Una de las primeras pruebas cuando conocí la herramienta fue probar los EVTx que proporcionan y con los que uno puede hacerse una idea de lo que puede lograr. De eso hablaremos más tarde.
Una de las primeras pruebas que hice, fue probar un “getsystem” de Meterpreter y ver cómo DeepBlueCLI reaccionaba. Tras ejecutar el clásico getsystem en un proceso con nivel de integridad alto, es decir, ya estábamos elevados obtenemos el resultado esperado y, ¿Qué ocurre en el log de Windows con esta situación?
Figura 5: Función getsystem en Meterpreter |
Lo que podemos ver en el log de Windows es que se detecta un evento 7045, el cual indica que un servicio fue instalado en el sistema. DeepBlueCLI ya nos proporciona la información detallada sobre lo “sospechoso” de este evento. Además, DeepBlueCLI nos muestra un mensaje cercano para que entendamos rápidamente qué es sospechoso y, también, un resultado indicándonos el detalle sobre quién lo puede utilizar o quién, generalmente, utiliza este tipo comando. Se ve claramente el mensaje que indica que es posible que Meterpreter haya utilizado un ‘getsystem’.
Figura 6: Ejecución de DeepBlueCli
Si nos vamos al visor de eventos de Windows y revisamos el evento en sí, podemos observar varias cosas interesantes. La primera es que DeepBlueCLI se encarga de detectar y analizar el evento, evitando que un evento ‘legítimo’ nos impida ver el árbol (dentro del bosque). A continuación, se puede ver el evento 7045 y lo que el usuario del sistema puede ver. DeepBlueCLI ha hecho ese trabajo de detección y “caza” para indicarnos quién suele utilizar este tipo de sentencias.
Figura 7: Entrada en el log de Windows
Si vemos los diferentes ficheros de eventos que trae la herramienta, permite ir probando diferentes entornos, aunque mi recomendación sería generar dichos entornos, generar tú los eventos con la simulación del ataque y probar. Pero si por falta de tiempo no puedes, puedes jugar con los EVTx que DeepBlueCLI proporciona.
Figura 8: Ficheros de eventos .evtx
Por ejemplo, ejecutamos DeepBlue.ps1 con password-spray.evtx y con new-user-security.evtx. No son situaciones extremas, pero interesantes. En el caso del nuevo usuario, no se puede ver como una alarma, por sí sola, aunque si lo acompaña un evento como el de Getsystem podemos empezar a sospechar.
Figura 9: Análisis de un fichero .evtx con DeepBlueCLI
Por último, mostramos la salida cuando le pasamos el evento de password spraying. Se puede agrupar el ataque y la herramienta DeepBlueCLI nos proporciona toda la información analizada y procesada de manera sencilla y agrupada.
Figura 10: Resultado del análisis con DeepBlueCLI
Sin duda, una herramienta interesante para montar laboratorios y poner a prueba lo que es capaz de detectar de nuestra forma de atacar en un ejercicio de Red Team o en un pentesting. Otra herramienta que llevar en la mochila, pero en este caso para practicar y conocer qué cosas el Blue Team utilizará para detectar la amenaza.
Saludos,
Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root", “Pentesting con Powershell”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica. Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox
Figura 11: Contactar con Pablo González |
No hay comentarios:
Publicar un comentario