SFIO CRACHO - stock.adobe.com
11 Open-Source-Tools für automatische Pentests
Von Nmap über Wireshark bis zu Jok3r reicht die Palette an Open-Source-Tools, mit denen man Pentests in der eigenen Umgebung durchführen kann. Hier die besten Werkzeuge.
Es ist gar nicht so von entscheidender Bedeutung, wie viele der neuesten Security-Lösungen in der eigenen IT-Umgebung eingesetzt werden. Viel wichtiger ist, zu wissen, dass sie ihre Aufgaben wie gewünscht erfüllen und Cyberangriffe entdecken beziehungsweise auch stoppen.
Letzteres ist einer der wichtigsten Gründe, warum Penetrationstests ein essenzieller Bestandteil jeder IT-Sicherheitsstrategie sein sollten. Pentests ermöglichen dem Security-Team die verwendeten Sicherheitskontrollen zu prüfen und Schwachstellen im Netzwerk, den Anwendungen oder IoT-Devices (Internet of Things) zu identifizieren.
Nachdem ein Test durchgeführt und eine oder mehrere Sicherheitslücken gefunden wurden, kann das Team sofort vorbeugende Maßnahmen ergreifen, bevor Angreifer die Schwachstellen für ihre Zwecke ausnutzen können. Pentests sind darüber hinaus wichtig, da sie in vielen Industriestandards und Regelungen wie der Datenschutz-Grundverordnung (DSGVO), HIPAA oder PCI DSS vorgeschrieben sind.
Das Durchführen von Penetrationstests kann allerdings eine äußerst arbeitsame Aufgabe sein. Viele Sicherheitsteams haben weder die Zeit noch das Personal, um die dafür nötigen Arbeiten noch selbst manuell erledigen zu können. Glücklicherweise gibt es aber eine ganze Reihe von automatisierbaren Pentest-Tools, die diese Lücke schließen. Da aber mit den Pentests meist sehr viele Ziele erfüllt werden müssen und eine Vielzahl unterschiedlichster Werkzeuge dafür zur Verfügung stehen, ist es keine leichte Aufgabe das richtige Tool für jeden Zweck zu finden.
Verschiedene Arten von Pentests
Das mit den Pentests beauftragte Team sollte mindestens die folgenden Attacken auf die zu prüfende IT-Umgebung durchführen:
- Das Scannen nach offenen Ports dient in der Erkundungsphase dazu, Informationen über laufende Dienste zu sammeln und zu erfahren, wie potenzielle Schwachstellen aussehen können. Dabei werden vor allem Pakete an bestimmte Ports geschickt und die Antworten ausgewertet.
- Analysen der Netzwerkprotokolle werden ebenfalls in der Erkundungsphase durchgeführt. Sie dienen dazu, Informationen über im Netzwerk vorhandene Geräte und den vorhandenen Datenverkehr zu gewinnen.
- Durch das gezielte Scannen nach bekannten Schwachstellen wird in der Umgebung nach nicht eingespielten Patches, anfälligen Software-Versionen, Schwachstellen in Anwendungen, Löchern in Firewalls und anderen Fehlern bei den Sicherheitsmaßnahmen gesucht.
- Spezielle Netzwerkpakete werden genutzt, um die Sicherheit der Firewall-Regeln zu überprüfen und um mögliche Eintrittspunkte für Angreifer zu finden.
- Das Knacken von Passwörtern umfasst Versuche, per Brute Force oder mit Hilfe von Wörterlisten vorhandene Kennwörter zu identifizieren. Mit ihnen lässt sich ein Zugang zu Remote-Diensten und Benutzerkonten mit erweiterten Berechtigungen erhalten.
- Anschließend wird versucht, die gefundenen Schwachstellen einzuschätzen, ob sie sich ausnutzen lassen oder ob sie eventuell durch andere Sicherheitsmaßnahmen doch noch geschützt sind.
- In der Berichtsphase wird durch die Pentester ein Report erstellt, der die Informationen über alle gefundenen Schwachstellen und ihre Ausnutzbarkeit durch Angreifer enthält. Auf Basis dieser Daten kann das Sicherheitsteam eines Unternehmens dann fundierte Entscheidungen darüber treffen, wie die allgemeine Sicherheitslage am besten und effektivsten verbessert werden kann.
Kein einziges der für Pentests verfügbaren Tools erfüllt jedoch alle diese Aufgaben oder kann sämtliche Bereiche abdecken. Um einen umfangreichen Pentest durchzuführen und um alle klassischen Schritte einer Attacke durchzuspielen von Angriff, über Erkundung, Exploitation bis zur Erlangung erweiterter Rechte und der Kontrolle aus der Ferne wird meist eine Kombination mehrerer Werkzeuge benötigt.
Open-Source-Tools für automatische Penetrationstests
Unternehmen steht eine große Zahl sowohl einfacher als auch komplexer Tools für Penetrationstests zur Verfügung, mit denen sie die vorher beschriebenen Aufgaben erledigen können. Viele dieser Lösungen sind Open Source, so dass jedes interessierte Sicherheitsteam sie zumindest ausprobieren kann, um die eigene IT-Umgebung zu erkunden, testweise anzugreifen und um Berichte über die Ergebnisse zu verfassen.
Beachten Sie dabei aber, dass manche früher als Open Source verfügbare Tools wie Metasploit und die Burp Suite mittlerweile kommerzielle Produkte geworden sind. Auch wenn es noch kostenlose Versionen dieser Programme gibt, haben sie in der Regel doch nur noch eine eingeschränkte Funktionalität.
Die im Folgenden beschrieben Open-Source-Tools ermöglichen es Sicherheitsteams viele der oben beschriebenen Aufgaben zu automatisieren und selbst gründliche Tests damit durchzuführen. Die meisten lassen sich unter allen wichtigeren Betriebssystemen nutzen. Prüfen Sie aber trotzdem vorher die Kompatibilität mit den Systemen und Datenbanken, die Ihr Unternehmen nutzt. Und wie bei allen Pentesting-Vorhaben gilt es alle rechtlichen und Datenschutzaspekte vorab zu berücksichtigen und mit allen Beteiligten zu klären.
1. Nmap
Für die anfängliche Erkundung eines Netzwerks ist Nmap das Tool der Wahl. Die Software läuft auf allen wichtigen Betriebssystemen und scannt von dort aus auch große Netzwerke schnell und zuverlässig. Mit Nmap finden Sie unter anderem heraus,
- welche Hosts in einem Netzwerk vorhanden sind,
- welche Dienste auf ihnen laufen,
- welches Betriebssystem in welcher Version sie nutzen,
- welche Arten von Firewalls und Paketfiltern im Einsatz sind sowie
- andere nützliche Daten, die vor einem potenziellen Angriff benötigt werden.
Auch wenn Nmap durchaus eine breite Palette fortgeschrittener Funktionen unterstützt, sind die grundlegenden Kommandos schnell erlernbar. Die zur Verfügung stehenden Anleitungen sind sehr umfangreich. Außerdem finden sich im Internet zahlreiche Tutorials, die sowohl die Kommandozeilen- als auch die verfügbaren GUI-Versionen (Graphical User Interface) von Nmap abdecken.
2. Wireshark
Wireshark ist ein beliebtes Tool zum Analysieren von Netzwerkprotokollen, das auf allen wesentlichen Betriebssystemen genutzt werden kann. Es unterstützt Funktionen wie Live Capture, Entschlüsselung und Offline-Analysen für jedes wichtige Netzwerkprotokoll. Dazu kommen ebenfalls umfangreiche Dokumentationen sowie viele Video-Tutorials.
3. Legion
Legion ist ein modular erweiterbares und halbautomatisches Pentesting-Tool. Es gibt nur wenig Dokumentation zu Legion, aber die grafische Oberfläche hat viele Bedienfelder und Kontextmenüs. Das erleichtert es auch noch unerfahrenen Anwendern, die gestellten Aufgaben zu erfüllen. Durch den modularen Aufbau kann Legion gut an die eigenen Bedürfnisse angepasst werden. Außerdem verlinkt das Tool gefundene CVEs (Common Vulnerabilities and Exposures) automatisch mit passenden Exploits in der Exploit Database.
4. Jok3r
Ein weiteres Framework für Penetrationstests im Netzwerk und im Web wird Jok3r genannt. Dahinter verbirgt sich eine Sammlung aus mehr als 50 Open-Source-Tools und -Skripten, die automatisch Erkundungen durchführen, CVEs nachschlagen, nach Schwachstellen scannen und gefundene Sicherheitslücken auszunutzen versuchen. Die Dokumentation befindet sich zwar noch „in Arbeit“, trotzdem macht die Kombination aus verschiedensten Modulen Jok3r zu einem mächtigen Werkzeug für Pentests.
5. Zed Attack Proxy
Das vom Open Web Application Security Project (OWASP) entwickelte Zed Attack Proxy (ZAP) scannt Webanwendungen auf Schwachstellen. Dabei arbeitet die Software wie ein MitM-Proxy (Man in the Middle) zwischen dem Browser des Testers und der zu prüfenden Applikation. ZAP kann Anfragen abfangen, Inhalte verändern und Pakete weiterleiten. Darüber hinaus bietet die Lösung zahlreiche Funktionen und Add-ons, die in der Regel über den ZAP-Marktplatz frei verfügbar sind. ZAP-Versionen sind für jedes größere Betriebssystem verfügbar. Außerdem gibt es fertige Docker-Images, in denen Zed Attack Proxy bereits vorinstalliert wurde.
6. Nikto2
Nikto2 ist ein Scanner, der die am häufigsten anzutreffenden Fehler in Webservern identifiziert. Das Tool wird von der Kommandozeile aus gesteuert. Es ist sehr schnell, verbirgt dabei aber sein Vorgehen nicht wie andere der hier vorgestellten Werkzeuge. Die Dokumentation ist bislang noch nicht sehr umfangreich. Nikto2 ist dafür aber auch nicht schwer zu bedienen.
7. OpenSCAP
Das OpenSCAP-Ökosystem ist eine Sammlung von Open-Source-Werkzeugen, mit denen sich das Security Content Automation Protocol (SCAP) einführen und durchsetzen lässt. SCAP ist ein vom amerikanischen National Institute of Standards and Technology (NIST) entwickelter Standard, der sich auf kontinuierliches Monitoring, Management von Schwachstellen und Compliance mit Sicherheitsrichtlinien fokussiert. Die Tools ermöglichen auch automatisierte Konfigurationen sowie Checks auf Patches und Schwachstellen. Außerdem führen sie auf Wunsch fortlaufende Tests der Infrastruktur durch, um die Einhaltung der gewünschten Regeln zu dokumentieren. Jede der Anwendungen wird begleitet von umfangreichen Anleitungen und Tipps.
8. sqlmap
SQL Injection wird häufig gegen auf Datenbanken basierenden Webanwendungen eingesetzt, die dynamische und von den Nutzern bereitgestellte Werte akzeptieren. Ein Tool wie sqlmap ist zu ihrem Schutz unverzichtbar, da es den Prozess des Aufspürens und Ausnützens von SQL-Injection-Schwachstellen automatisiert.
Es lässt sich sowohl unter Windows als auch Linux und Unix nutzen. In der umfangreichen Dokumentation zu sqlmap finden sich zudem zahlreiche hilfreiche Beispiele zur Anwendung und zur Übung. Darüber hinaus unterstützt das Tool zahlreiche verschiedene Datenbanktypen und enthält spezielle Funktionen, die für Pentesting ausgelegt sind. Zu ihnen zählen das Knacken von Passwörtern, die Ausweitung vorhandener Nutzerrechte sowie die Ausführung beliebiger Befehle.
9. Scapy
Scapy ist ein Programm zum gezielten Erstellen und Bearbeiten von Datenpaketen, das mit einer besonders guten Dokumentation glänzt. Trotzdem sollten Nutzer umfangreiche Kenntnisse über den Aufbau und die Struktur von Paketen haben sowie über die verschiedenen Ebenen in Netzwerken informiert sein, um das Werkzeug optimal zu nutzen. Scapy kann eine große Zahl unterschiedlichster Protokollpakete erstellen und dekodieren. Damit ist es problemlos in der Lage, Aufgaben wie Scanning, Tracerouting, Probing, Unit Tests, Network Discovery sowie auch Angriffe durchzuführen.
10. CrackStation
Es gibt eine große Zahl von Tools, mit denen sich Passwörter knacken lassen. CrackStation ist eines der schnellsten dieser Programme. Diese Aufgabe erreicht das Tool durch die Nutzung vorbereiteter Tabellen, die derzeit bereits mehr als 15 Milliarden Einträge enthalten. Sie wurden aus verschiedenen Online-Quellen zusammengetragen.
11. Aircrack-ng
Aircrack-ng ist ein komplettes Tool Set aus verschiedenen Werkzeugen zum Durchführen von Pentests in WiFi-Umgebungen. Sie können WLAN-Schnittstellen, -Treiber und -Protokolle nicht nur überwachen, sondern auch testen und attackieren.
Die richtigen Tools für automatisch durchgeführte Pentests finden
Um eine Wahl zwischen verschiedenen Tools zu treffen, prüfen Sie, wie jedes sich in den folgenden sechs Punkten schlägt:
- Wie leicht lässt es sich implementieren?
- Wie weit lässt es sich automatisieren?
- Wie sieht es mit den Konfigurationsmöglichkeiten aus, um False Positives zu eliminieren?
- Wie steht es um die Kompatibilität mit bereits eingesetzten Tools?
- Wie klar und ausführlich sind die Ergebnisse und Berichte?
- Wie gut sind der Support und die technische Dokumentation?
Welches Tool oder welche Tools Sie auch immer auswählen, stellen Sie sicher, dass diese noch aktiv durch eine Community und die Entwickler unterstützt werden. Außerdem ist es wichtig, mehr als nur ihre grundlegenden Befehle und Scans zu kennen und durchzuführen.
Das Automatisieren von Pentests sorgt dafür, dass selbst sehr große Netzwerke auf leicht zu findende Probleme geprüft werden können. Trotzdem müssen die Tester auch kreativ vorgehen können, ebenso wie es eben ein Hacker machen würde. Dazu müssen sie verschiedene Möglichkeiten testen können, um auf das Netzwerk zuzugreifen, Malware einzuschleusen und Daten zu stehlen. Am wichtigsten ist allerdings, auf alle gefundenen Schwachstellen einzugehen und sie so schnell wie nur möglich zu beheben.
Für alle Security-Teams, denen es an Kenntnissen im Bereich Pentesting mangelt, bietet sich das Open Source Security Testing Methodology Manual (PDF) als Einstieg an. Es enthält eine vollständige Vorgehensweise, um Pentests durchzuführen und Schwachstellen zu finden. Außerdem hilft es bei Analysen der aktuellen IT-Sicherheitslage und bei der Bewertung der operativen Sicherheit.