Framework d'attaque modulaire en Python3 pour automatiser l'exploitation des plateformes SIEM (Splunk, Graylog, OSSIM, QRadar, McAfee) via le vol d'identifiants, le déploiement de charges utiles et des modules de post-exploitation.
MultiSIEM Modular Python3 Attack Framework
Par ElevenPaths https://www.elevenpaths.com/
Utilisation : python3 ./siemsframework.py
Les SIEM sont des outils défensifs de plus en plus utilisés dans le domaine de la cybersécurité, notamment par les grandes entreprises et les sociétés qui surveillent des systèmes et réseaux hautement critiques. Cependant, du point de vue d'un attaquant, les autorisations accordées aux SIEM sur les systèmes et comptes des réseaux d'entreprise sont élevées. De plus, l'accès administratif aux SIEM peut être utilisé pour obtenir une exécution de code sur le serveur où ce SIEM est installé, et parfois aussi sur les machines clientes, étant donné qu'un SIEM collecte des événements provenant de serveurs tels que les serveurs Active Directory, les serveurs AWS, les bases de données et les équipements réseau (par exemple, pare-feu et routeurs).
Au cours de notre investigation, nous avons détecté un grand nombre de vecteurs d'attaque qui pourraient être utilisés contre les différents SIEM pour les compromettre, par exemple :
• Obtenir les comptes utilisateurs et mots de passe stockés dans le SIEM provenant de systèmes critiques (serveurs LDAP/AD, bases de données, équipements réseau, serveurs AWS).
• Développer et installer des applications malveillantes telles que des reverse shells Windows/Linux, des bind shells Windows/Linux ou des scripts malveillants dans le but de compromettre le serveur où le SIEM est installé.
• Développer et installer des applications malveillantes telles que des reverse shells Windows/Linux, des bind shells Windows/Linux ou des scripts malveillants dans le but de compromettre les machines à partir desquelles le SIEM collecte les événements.
• Créer et appliquer des actions ou notifications malveillantes qui permettent d'exécuter des commandes lorsqu'un événement donné se produit, par exemple dans le but d'obtenir un reverse shell sur le serveur où le SIEM est installé.
• Tirer parti des mots de passe par défaut et des faiblesses des SIEM dans la configuration des images OVA pour obtenir les identifiants administrateur du serveur, de la base de données ou même de l'interface web du SIEM lui-même.
• Effectuer des attaques par dictionnaire ou par force brute contre l'interface web ou d'administration, ou contre le logiciel client du SIEM, pour obtenir les identifiants administrateur.
• Lire des fichiers arbitraires depuis le serveur où le SIEM est installé.
• Obtenir des informations de configuration du SIEM et d'autres paramètres pertinents pour mener d'autres attaques.
Sur la base des résultats de l'investigation, l'outil Open Source SIEMs Framework a été développé. Il s'agit d'un outil modulaire développé en Python3 par l'équipe Innovation & Laboratoire d'ElevenPaths. Il permet d'automatiser les attaques potentielles contre divers SIEM existants sur le marché (à la fois commerciaux et open source).
SIEMs Framework prend en charge plusieurs charges utiles d'attaque qui peuvent être sélectionnées en fonction du SIEM à attaquer et de son système d'exploitation. Il existe des charges utiles disponibles en PowerShell, Python, Bash, Exe, et d'autres formats. Une fois l'attaque sélectionnée exécutée, l'outil affiche les résultats à l'écran et il est possible de revenir et d'exécuter toute autre attaque sur le même SIEM ou de sélectionner un autre SIEM à compromettre. Il possède une interface simple, facile à utiliser et intuitive. Actuellement, il peut être utilisé avec les SIEM suivants : Splunk, Graylog et OSSIM.
SIEMs Framework peut être téléchargé depuis notre Github en téléchargeant le fichier .zip ou en clonant le dépôt, et présente les prérequis suivants qui peuvent être installés via pip3 install -r requirements.txt :
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
Une fois les prérequis installés, l'outil peut être utilisé comme suit : python3 ./siemsframework.py
Lorsque l'outil est exécuté, le menu principal s'affiche et vous devez alors sélectionner si vous souhaitez scanner une adresse IP spécifique où se trouverait un SIEM ou un réseau pour détecter les SIEM qui s'y trouvent. Pour scanner et détecter le SIEM dans une adresse IP spécifique, vous devez utiliser l'option 1, et pour scanner le réseau, l'option 2.
En sélectionnant l'option 1 « Scan and Detect SIEM », l'outil demande l'adresse IP afin de pouvoir scanner les ports spécifiques des SIEM pris en charge et se connecter à l'interface web ou d'administration pour vérifier qu'il s'agit bien d'un SIEM.
Une fois le SIEM détecté en suivant les méthodes ci-dessus, l'outil affiche le SIEM détecté en rouge et vous donne la possibilité de lancer le module d'attaque de ce SIEM.
En sélectionnant l'option 2 « Find SIEMs on the network », l'outil demande le réseau à scanner en notation CIDR, par exemple : 192.168.137.0/24. Une fois les informations saisies, SIEMs Framework effectue d'abord une découverte pour détecter les systèmes actifs ; ensuite, les ports par défaut des SIEM pris en charge sont scannés, et enfin il se connecte à l'interface web ou d'administration de chacun de ces systèmes pour vérifier qu'il s'agit bien d'un SIEM.
Une fois les SIEM détectés en suivant les méthodes ci-dessus, l'outil affiche les SIEM détectés en rouge et demande l'adresse IP du SIEM à attaquer.
En entrant « y » et en sélectionnant le lancement des modules d'attaque Splunk, l'outil affiche toutes les attaques possibles à effectuer contre ce SIEM. Pour les deux premières attaques, aucun identifiant n'est requis, mais pour la cinquième, des privilèges d'administrateur Splunk sont nécessaires.