
Modulares Python3-Angriffsframework zur Automatisierung der Exploitation von SIEM-Plattformen (Splunk, Graylog, OSSIM, QRadar, McAfee) mittels Credential-Diebstahl, Payload-Bereitstellung und Post-Exploitation-Modulen.
MultiSIEM-Modulares Python3-Angriffs-Framework
Von ElevenPaths https://www.elevenpaths.com/
Verwendung: python3 ./siemsframework.py
SIEMs sind defensive Werkzeuge, die zunehmend im Bereich der Cybersicherheit eingesetzt werden, insbesondere von großen Unternehmen und Firmen, die hochkritische Systeme und Netzwerke überwachen sollen. Aus Sicht eines Angreifers sind jedoch die Berechtigungen, die SIEMs für Systeme und Konten von Unternehmensnetzwerken eingeräumt werden, hoch. Darüber hinaus kann der administrative Zugriff auf SIEMs genutzt werden, um Codeausführung auf dem Server zu erlangen, auf dem das SIEM installiert ist, und manchmal auch auf Client-Rechnern, da ein SIEM Ereignisse von Geräten wie Active Directory-Servern, AWS-Servern, Datenbanken und Netzwerkgeräten (z. B. Firewalls und Router) sammelt.
Während unserer Untersuchung haben wir eine Vielzahl von Angriffsvektoren entdeckt, die gegen verschiedene SIEMs eingesetzt werden könnten, um diese zu kompromittieren, zum Beispiel:
• Erlangen von Benutzerkonten und Passwörtern, die im SIEM von kritischen Systemen (LDAP/AD-Server, Datenbanken, Netzwerkgeräte, AWS-Server) gespeichert sind.
• Entwickeln und Installieren von bösartigen Anwendungen wie Windows/Linux-Reverse-Shells, Windows/Linux-Bind-Shells oder bösartigen Skripten mit dem Ziel, den Server zu kompromittieren, auf dem das SIEM installiert ist.
• Entwickeln und Installieren von bösartigen Anwendungen wie Windows/Linux-Reverse-Shells, Windows/Linux-Bind-Shells oder bösartigen Skripten mit dem Ziel, die Maschinen zu kompromittieren, von denen das SIEM Ereignisse sammelt.
• Erstellen und Anwenden von bösartigen Aktionen oder Benachrichtigungen, die die Ausführung von Befehlen ermöglichen, wenn ein bestimmtes Ereignis eintritt, beispielsweise mit dem Ziel, eine Reverse-Shell auf dem Server zu erlangen, auf dem das SIEM installiert ist.
• Ausnutzen von Standardpasswörtern und SIEM-Schwachstellen in der Konfiguration der OVA-Images, um Admin-Anmeldedaten des Servers, der Datenbank oder sogar der SIEM-Weboberfläche selbst zu erlangen.
• Durchführen von Wörterbuchangriffen oder Brute-Force-Angriffen gegen die Web- oder Admin-Oberfläche oder gegen die SIEM-Client-Software, um Admin-Anmeldedaten zu erlangen.
• Lesen beliebiger Dateien vom Server, auf dem das SIEM installiert ist.
• Erlangen von SIEM-Konfigurationsinformationen und anderen relevanten Parametern, um weitere Angriffe durchzuführen.
Basierend auf den Ergebnissen der Untersuchung wurde das Open-Source-Tool SIEMs Framework entwickelt. Es ist ein modulares, in Python3 entwickeltes Tool des Innovation and Laboratory-Teams von ElevenPaths. Es ermöglicht die Automatisierung potenzieller Angriffe auf verschiedene auf dem Markt befindliche SIEMs (sowohl kommerzielle als auch Open-Source).
SIEMs Framework unterstützt mehrere Angriffs-Payloads, die je nach anzugreifendem SIEM und dessen Betriebssystem ausgewählt werden können. Es gibt Payloads in PowerShell, Python, Bash, Exe und weiteren Formaten. Nach Ausführung des ausgewählten Angriffs zeigt das Tool die Ergebnisse auf dem Bildschirm an, und es ist möglich, zurückzukehren und einen anderen Angriff auf demselben SIEM auszuführen oder ein anderes SIEM zur Kompromittierung auszuwählen. Es verfügt über eine einfache, benutzerfreundliche und intuitive Oberfläche. Derzeit kann es mit den folgenden SIEMs verwendet werden: Splunk, Graylog und OSSIM.
SIEMs Framework kann von unserem Github heruntergeladen werden, indem die .zip-Datei heruntergeladen oder das Repository geklont wird, und hat die folgenden Anforderungen, die mit pip3 install -r requirements.txt installiert werden können:
• splunk-sdk
• requests
• python-nmap
• colorama
• pandas
• paramiko
• pymongo
• qradar4py
• requests_mock
• urllib3
Sobald die Anforderungen installiert sind, kann das Tool wie folgt verwendet werden: python3 ./siemsframework.py
Wenn das Tool ausgeführt wird, wird das Hauptmenü angezeigt. Dort müssen Sie auswählen, ob Sie eine bestimmte IP scannen möchten, auf der sich ein SIEM befindet, oder ein Netzwerk, um SIEMs darin zu erkennen. Zum Scannen und Erkennen des SIEMs innerhalb einer bestimmten IP-Adresse verwenden Sie Option 1, zum Scannen des Netzwerks Option 2.
Durch Auswahl von Option 1 „Scan and Detect SIEM“ fordert das Tool die IP-Adresse an, um die spezifischen Ports der unterstützten SIEMs scannen und eine Verbindung zur Web- oder Verwaltungsoberfläche herstellen zu können, um zu überprüfen, ob es sich tatsächlich um ein SIEM handelt.
Sobald das SIEM mit den oben genannten Methoden erkannt wurde, zeigt das Tool das erkannte SIEM in Rot an und bietet Ihnen die Möglichkeit, das Angriffsmodul dieses SIEMs zu starten.
Durch Auswahl von Option 2 „Find SIEMs on the network“ fordert das Tool das zu scannende Netzwerk in CIDR-Notation an, z. B.: 192.168.137.0/24. Sobald die Information eingegeben wurde, führt SIEMs Framework zunächst eine Erkennung durch, um aktive Systeme zu ermitteln; dann werden Standard-Ports der unterstützten SIEMs gescannt, und schließlich stellt es eine Verbindung zur Web- oder Verwaltungsoberfläche jedes dieser Systeme her, um zu überprüfen, ob es sich tatsächlich um ein SIEM handelt.
Sobald die SIEMs mit den oben genannten Methoden erkannt wurden, zeigt das Tool die erkannten SIEMs in Rot an und fordert die IP-Adresse des anzugreifenden SIEMs an.
Durch Eingabe von „y“ und Auswahl des Starts der Splunk-Angriffsmodule zeigt das Tool alle möglichen Angriffe an, die gegen dieses SIEM durchgeführt werden können. Für die ersten beiden Angriffe sind keine Anmeldedaten erforderlich, für den fünften werden jedoch Splunk-Admin-Rechte benötigt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für Splunk namens dict.txt, das aus den 100 am häufigsten verwendeten Passwörtern des Jahres 2018 und verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /splunk/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird. Die Splunk-Passwortrichtlinie gilt nicht für Benutzer mit Admin-Rolle, daher gelten keine Einschränkungen bezüglich Passwörter oder Kontosperrung aufgrund fehlgeschlagener Zugriffsversuche. Vor Beginn des Wörterbuchangriffs überprüft das Tool, ob das zu analysierende Splunk die Free-Version hat, die keine Authentifizierung verwendet, oder ob es noch das Standardpasswort „changeme“ der ältesten Versionen dieser Software beibehält:
Falls der zu analysierende Splunk-Server über eine aktive Weboberfläche verfügt, ermöglicht dieses Modul das Erlangen von Server- und Sitzungsinformationen von der Weboberfläche selbst, ohne sich zu authentifizieren. 8000 ist der Standard-Port der Splunk-Weboberfläche; zur Verwendung dieses Moduls müssen Sie den Port kennen und eingeben, auf dem die Weboberfläche veröffentlicht ist.
Dieses Modul kann auf Splunk-Servern oder Universal Forwardern verwendet werden. Zur Verwendung werden Splunk-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die Informationen der aktuellen Splunk-Installation: Version, Betriebssystem, Splunk-Konfigurationen und mehr.
Dieses Modul wird nur auf Splunk-Servern verwendet. Zur Verwendung werden Splunk-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Ergebnis des Moduls sind alle Anmeldedaten, die von den auf Splunk verwendeten Apps gespeichert werden, um eine Verbindung zu den Geräten herzustellen, von denen Ereignisse bezogen werden.
Dieses Modul kann auf Linux-Splunk-Servern verwendet werden. Zur Verwendung werden Splunk-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Modul verwendet einen Index, um die betreffende Datei zu laden, und das Ergebnis ist der Inhalt der Datei /etc/shadow vom Server, auf dem Splunk installiert ist.
Dieses Angriffsmodul wird in der nächsten Version von SIEMs Framework verfügbar sein. Um Universal Forwarder zu kompromittieren, können bisher Angriff 1 zur Erlangung von Anmeldedaten und dann Angriff 7 zur Installation bösartiger Anwendungen je nach Plattform durchgeführt werden.
Dieses Angriffsmodul ermöglicht die Entwicklung und Installation einer bösartigen Anwendung auf Splunk, die darauf ausgelegt ist, das betreffende System zu kompromittieren. Zunächst muss die Art des zu verwendenden Payloads entsprechend dem Betriebssystem und der Art des anzugreifenden Splunk (Splunk Server oder Universal Forwarder) ausgewählt werden. Sie können Linux Python Reverse oder Bind Shell für Splunk Server oder UF; Windows Python Reverse oder Bind Shell für Splunk Server (wo Python standardmäßig installiert ist); und Executable Bind Shell oder ein Skript zum Hinzufügen eines Admin-Benutzers auf Windows Universal Forwardern (wo Python nicht standardmäßig installiert ist) verwenden. Dann müssen Benutzername, Splunk-Admin-Passwort und die IP-Adresse des Angreifers eingegeben werden.
Durch Eingabe von „y“ und Auswahl des Starts der Graylog-Angriffsmodule zeigt das Tool alle möglichen Angriffe an, die gegen dieses SIEM durchgeführt werden können. Für die ersten drei Angriffe sind keine Anmeldedaten erforderlich, für den vierten werden jedoch Graylog-Admin-Rechte benötigt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für Graylog namens dict.txt, das aus den 100 am häufigsten verwendeten Passwörtern des Jahres 2018 und verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /graylog/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird.
Dieses Angriffsmodul überprüft, ob das zu analysierende Graylog Standard-Anmeldedaten auf der Graylog-Weboberfläche (admin/admin) sowie Standard-Anmeldedaten für die Verbindung zum System über Konsole oder SSH (ubuntu/ubuntu) verwendet. Diese beiden Anmeldedaten sind standardmäßig auf Graylog-Virtual-Machine-Appliances sowohl für OVA als auch AMI konfiguriert.
Dieses Angriffsmodul überprüft, ob das zu analysierende Graylog eine Mongo-DB-Datenbank ohne Authentifizierung konfiguriert hat. In diesem Fall stellt es eine Verbindung zu MongoDB her und erhält Konfigurationsinformationen, LDAP-Anmeldedaten (je nach aktueller Graylog-Version können sie im Klartext oder verschlüsselt sein) sowie Zugriffs- und Secret-Keys, die im AWS-Plugin konfiguriert sind. Falls verschlüsselt, wird der LDAP-Benutzerschlüssel mit AES CBC verschlüsselt. Der Schlüssel sind die ersten 16 Bits des Feldes password_secret in der Konfigurationsdatei server.conf oder graylog.conf bei Standardinstallationen; oder des Feldes secret_token in der Datei graylog-secrets.json bei OVA-Installationen. Der IV ist das auf dem Bildschirm angezeigte Salt.
Dieses Angriffsmodul erhält Informationen über Konfiguration und Anmeldedaten für LDAP und AWS im Klartext von der Graylog-REST-API. Zur Verwendung dieses Moduls werden Graylog-Admin-Anmeldedaten benötigt.
Durch Eingabe von „y“ und Auswahl des Starts der OSSIM-Angriffsmodule zeigt das Tool alle möglichen Angriffe an, die gegen dieses SIEM durchgeführt werden können. Für den ersten Angriff sind keine Anmeldedaten erforderlich, für die folgenden werden jedoch OSSIM-Admin-Anmeldedaten benötigt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für OSSIM namens dict.txt, das aus den 100 am häufigsten verwendeten Passwörtern des Jahres 2018 und verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /ossim/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird.
Dieses Angriffsmodul ermöglicht das Erlangen von Konfigurationsinformationen vom OSSIM-Server. Zur Verwendung werden OSSIM-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der aktuellen Installation: definierte Benutzer, Anmeldeparameter einschließlich LDAP-Konfigurationen und Passwortrichtlinien.
Dieses Angriffsmodul ermöglicht das Erhalten einer Reverse-Shell vom OSSIM-Server zum System des Angreifers. Zur Verwendung werden OSSIM-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Modul entwickelt eine bösartige Aktion, die über netcat mit dem System des Angreifers verbunden wird. Dann löst es eine neue Richtlinie aus, die diese Aktion verwendet, um bei Auftreten eines Sicherheitsereignisses zu warnen, und dieses Ereignis wird durch einen fehlgeschlagenen SSH-Anmeldeversuch auf dem OSSIM-Server ausgelöst. Folglich wird eine Reverse-Shell vom OSSIM-Server zum System des Angreifers auf Port 12345 mit Root-Rechten erlangt.
Durch Eingabe von „y“ und Auswahl des Starts der QRadar-Angriffsmodule zeigt das Tool alle möglichen Angriffe an, die gegen dieses SIEM durchgeführt werden können. Für die ersten beiden Angriffe sind keine Anmeldedaten erforderlich, für die folgenden werden jedoch QRadar-Admin-Anmeldedaten oder ein API-Key benötigt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für QRadar namens dict.txt, das aus den 100 am häufigsten verwendeten Passwörtern des Jahres 2018 und verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /qradar/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird. Dieser Angriff ist sehr langsam, da QRadar einen Schutz hat, der nur 5 Versuche alle 30 Minuten zulässt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für QRadar namens apikeys.txt, das aus 1000 verschiedenen Optionen von API-Keys besteht, die die für dieses SIEM erforderliche Struktur beibehalten. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /qradar/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird. Das Programm bietet die Möglichkeit, die Datei mit zufälligen API-Keys zu erstellen.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung eines API-Keys zu erlangen. Zur Verwendung wird ein QRadar-Admin-API-Key benötigt, der beispielsweise durch einen Wörterbuchangriff (2. Angriff) erlangt werden kann. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der aktuellen Installation: definierte Benutzer, Netzwerkhierarchie und Bereitstellungshosts.
Dieses Angriffsmodul ermöglicht es uns, die Liste der Benutzer zu erlangen, die in der Ariel-Datenbank gespeichert sind. Zur Verwendung wird ein QRadar-Admin-API-Key benötigt, der beispielsweise durch einen Wörterbuchangriff (2. Angriff) erlangt werden kann. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der Benutzer, die Kontakt mit der Ariel-Datenbank hatten.
Durch Eingabe von „y“ und Auswahl des Starts der McAfee-Angriffsmodule zeigt das Tool alle möglichen Angriffe an, die gegen dieses SIEM durchgeführt werden können. Für den ersten Angriff sind keine Anmeldedaten erforderlich, für die folgenden werden jedoch McAfee-Admin-Anmeldedaten benötigt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für McAfee namens dict.txt, das aus 7000 zufällig erstellten Passwörtern mit verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /mcafee/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird. Dieser Angriff ist sehr langsam, da McAfee einen Schutz hat, der nur 3 Versuche alle 10 Minuten zulässt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für McAfee namens dict.txt, das aus 7000 zufällig erstellten Passwörtern mit verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /mcafee/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung von Admin-Anmeldedaten zu erlangen. Zur Verwendung werden SSH-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (2. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der aktuellen Installation: Nameserver im Netzwerk, aktive Dienste, Netzwerkkonfiguration und Firewall-Konfiguration.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung von Admin-Anmeldedaten zu erlangen. Zur Verwendung werden SSH-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (2. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der aktuellen Installation: Releasenummer des SIEMs, Festplatten-Daten, RAM-Daten, Prozessordaten, Betriebszeit, Status des nächsten Prüfdatums, Status der Regeln-Prüfdatum und Datum des nächsten Backups.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung von Admin-Anmeldedaten zu erlangen. Zur Verwendung werden SSH-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (2. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Informationen über Systembenutzer.
Durch Eingabe von „y“ und Auswahl des Starts der SIEMonster-Angriffsmodule zeigt das Tool alle möglichen Angriffe an, die gegen dieses SIEM durchgeführt werden können. Für den ersten Angriff sind keine Anmeldedaten erforderlich, für die folgenden werden jedoch SIEMonster-Admin-Anmeldedaten benötigt.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für SIEMonster namens dict.txt, das aus 7000 zufällig erstellten Passwörtern mit verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers in Groß- und Kleinschreibung sowie dem Ersetzen von Vokalen durch Zahlen besteht. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /siemonster/dict.txt durch eine beliebige andere Wortliste ersetzt werden, sofern der Dateiname beibehalten wird.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung von Admin-Anmeldedaten zu erlangen. Zur Verwendung werden SSH-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der aktuellen Installation: Nameserver im Netzwerk, aktive Docker-Container, Liste der aktiven Dienste, Netzwerkkonfiguration und Firewall-Konfiguration.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung von Admin-Anmeldedaten zu erlangen. Zur Verwendung werden SSH-Admin-Anmeldedaten benötigt, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Informationen über Systembenutzer.### ElasticSIEM-Angriffsmodule Durch Eingabe von „y“ und Auswahl des Starts von ElasticSIEM-Angriffsmodulen zeigt das Tool alle möglichen Angriffe, die gegen dieses SIEM durchgeführt werden können. Für den ersten Angriff sind keine Anmeldeinformationen erforderlich, für die folgenden jedoch Administrator-Anmeldeinformationen für ElasticSIEM.
Dieses Angriffsmodul enthält ein spezifisches Wörterbuch für ElasticSIEM namens dict.txt, das aus den 7000 am häufigsten verwendeten Passwörtern des Jahres 2018 und verschiedenen Permutationen des SIEM-Handelsnamens und seines Admin-Benutzers besteht, in Groß- und Kleinschreibung und mit Ersetzung von Vokalen durch Zahlen. Falls Sie eine andere Liste als die oben genannte verwenden möchten, kann /elasticsiem/dict.txt durch jede andere Wortliste ersetzt werden, vorausgesetzt, der Dateiname bleibt erhalten.
Dieses Angriffsmodul ermöglicht es uns, die Serverkonfiguration durch die Verwendung von Administrator-Anmeldeinformationen abzurufen. Zur Nutzung sind SSH-Administrator-Anmeldeinformationen erforderlich, die beispielsweise durch einen Wörterbuchangriff (1. Angriff) erlangt werden können. Das Ergebnis des Moduls sind die relevanten Konfigurationsinformationen der aktuellen Installation: Namensserver im Netzwerk, aktive Docker-Container, Liste der aktiven Dienste und Netzwerkkonfiguration.
Bitte melden Sie jeden Fehler, indem Sie ein Issue auf GitHub eröffnen. Ihre Zusammenarbeit wird sehr geschätzt!