Marco de ataque modular en Python3 para automatizar la explotación de plataformas SIEM (Splunk, Graylog, OSSIM, QRadar, McAfee) mediante robo de credenciales, despliegue de cargas útiles y módulos de post-explotación.
Framework de ataque modular MultiSIEM en Python3
Por ElevenPaths https://www.elevenpaths.com/
Uso: python3 ./siemsframework.py
Los SIEM son herramientas defensivas cada vez más utilizadas en el ámbito de la ciberseguridad, especialmente por grandes empresas y compañías destinadas a monitorizar sistemas y redes altamente críticos. Sin embargo, desde el punto de vista de un atacante, los permisos otorgados a los SIEM sobre sistemas y cuentas de redes corporativas son elevados. Además, el acceso administrativo a los SIEM puede utilizarse para obtener ejecución de código en el servidor donde está instalado dicho SIEM, y a veces también en las máquinas cliente, considerando que un SIEM recolecta eventos de servidores como Active Directory, servidores AWS, bases de datos y dispositivos de red (por ejemplo, firewalls y routers).
Durante nuestra investigación, detectamos una gran cantidad de vectores de ataque que podrían utilizarse sobre los distintos SIEM para comprometerlos, por ejemplo:
• Obtener cuentas de usuario y contraseñas almacenadas en el SIEM de sistemas críticos (servidores LDAP/AD, bases de datos, dispositivos de red, servidores AWS).
• Desarrollar e instalar aplicaciones maliciosas como reverse shells de Windows/Linux, bind shells de Windows/Linux o scripts maliciosos con el objetivo de comprometer el servidor donde está instalado el SIEM.
• Desarrollar e instalar aplicaciones maliciosas como reverse shells de Windows/Linux, bind shells de Windows/Linux o scripts maliciosos con el objetivo de comprometer las máquinas desde las cuales el SIEM recolecta eventos.
• Crear y aplicar acciones o notificaciones maliciosas que permitan ejecutar comandos cuando ocurra un evento determinado, por ejemplo con el propósito de obtener una reverse shell en el servidor donde está instalado el SIEM.
• Aprovechar contraseñas por defecto y debilidades del SIEM en la configuración de las imágenes OVA para obtener credenciales de administrador del servidor, la base de datos o incluso la propia interfaz web del SIEM.
• Realizar ataques de diccionario o ataques de fuerza bruta contra la interfaz web o de administración, o contra el software cliente del SIEM, para obtener credenciales de administrador.
• Leer archivos arbitrarios del servidor donde está instalado el SIEM.
• Obtener información de configuración del SIEM y otros parámetros relevantes para realizar más ataques.
Sobre la base de los resultados de la investigación, se desarrolló la herramienta Open Source SIEMs Framework. Es una herramienta modular desarrollada en Python3 por el equipo de Innovación y Laboratorio de ElevenPaths. Permite automatizar ataques potenciales a varios SIEM existentes en el mercado (tanto comerciales como de código abierto).
SIEMs Framework soporta múltiples payloads de ataque que pueden seleccionarse según el SIEM a atacar y su sistema operativo. Hay payloads disponibles en PowerShell, Python, Bash, Exe y más formatos. Una vez ejecutado el ataque seleccionado, la herramienta muestra los resultados en pantalla y es posible regresar y ejecutar cualquier otro ataque sobre el mismo SIEM o seleccionar otro SIEM para comprometer. Tiene una interfaz simple, fácil de usar e intuitiva. Actualmente puede utilizarse con los siguientes SIEM: Splunk, Graylog y OSSIM.
SIEMs Framework puede descargarse desde nuestro Github descargando el archivo .zip o clonando el repositorio, y presenta los siguientes requisitos que pueden instalarse mediante pip3 install -r requirements.txt:
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
Una vez instalados los requisitos, la herramienta puede usarse de la siguiente manera: python3 ./siemsframework.py
Cuando se ejecuta la herramienta, se muestra el menú principal, y allí debe seleccionar si desea escanear una IP específica donde haya un SIEM o una red para detectar los SIEM dentro de ella. Para escanear y detectar el SIEM dentro de una dirección IP específica debe usar la opción 1, y para escanear la red la opción 2.
Al seleccionar la opción 1 "Escanear y detectar SIEM", la herramienta solicita la dirección IP para poder escanear los puertos específicos de los SIEM soportados y conectarse a la interfaz web o de gestión para verificar que realmente es un SIEM.
Una vez detectado el SIEM siguiendo los métodos anteriores, la herramienta muestra el SIEM detectado en rojo y le da la opción de lanzar el módulo de ataque de ese SIEM.
Al seleccionar la opción 2 "Encontrar SIEM en la red", la herramienta solicita la red a escanear en notación CIDR, por ejemplo: 192.168.137.0/24. Una vez ingresada la información, SIEMs Framework realiza primero un descubrimiento para detectar los sistemas activos; luego, escanea los puertos por defecto de los SIEM soportados, y finalmente se conecta a la interfaz web o de gestión de cada uno de esos sistemas para verificar que realmente es un SIEM.
Una vez detectados los SIEM siguiendo los métodos anteriores, la herramienta muestra los SIEM detectados en rojo y solicita la dirección IP del SIEM a atacar.
Al ingresar "y" y seleccionar el lanzamiento de los módulos de ataque de Splunk, la herramienta muestra todos los posibles ataques a realizar contra este SIEM. Para los primeros dos ataques no se requieren credenciales, pero para el quinto se necesitan privilegios de administrador de Splunk.