SFIO CRACHO - stock.adobe.com
10 Open-Source-Tools für Security- und Pentests
Mit Open-Source-Tools kann man Penetrationstests in Eigenregie in der eigenen Umgebung durchführen. Die Palette reicht von Kali Linux, über Mimikatz bis zum Metasploit Framework.
In seinem Werk Philosophie des Abendlandes: Ihr Zusammenhang mit der politischen und sozialen Entwicklung schreibt der Autor Bertrand Russell: „Fakten müssen durch Beobachtung entdeckt werden und nicht nur durch Schlussfolgerungen.“ Damit will er sagen, dass eine bestimmte „Wahrheit“ nur durch eine empirische Untersuchung als Tatsache bestätigt werden kann. Direkte Beobachtung bestimmter Geschehnisse ist der beste und zweckmäßigste Weg, um herauszufinden, was wirklich geschieht oder geschehen ist.
Das gilt auch für den weiten Bereich der IT-Security. Wenn Sie wissen wollen, bis zu welchem Grad Ihre Netzwerke, Anwendungen, Server und Mitarbeiter tatsächlich geschützt sind, sind empirische Tests ebenfalls unverzichtbar. Dazu gehört auch das Durchführen von Penetrationstests, welche die Tools, Techniken und Prozeduren echter Hacker simulieren.
Auch wenn viele Unternehmen die Durchführung von Pen-Tests an externe Dienstleister auslagern, ist es empfehlenswert, die dafür verwendeten Werkzeuge und Prozesse selbst ebenfalls zu kennen. So können Sie zum Beispiel weit fundierter mit Pen-Test-Anbietern verhandeln. Sie wissen ja prinzipiell selbst, was gemacht werden soll. Auch wenn Sie in der Regel natürlich kein Experte sind, können selbst durchgeführte Tests eine große Hilfe dabei sein, einfache Fragestellungen zu klären.
Aber bevor wir weitermachen, noch eine Anmerkung: Die im Folgenden vorgestellten Open-Source-Tools lassen sich sowohl legal als auch illegal einsetzen. Sorgen Sie daher dafür, dass Sie auf der richtigen Seite des Gesetzes bleiben.
Wenn Sie sich nicht sicher sein sollten, ob eine Maßnahme legal oder nicht legal ist, dann kontaktieren Sie einen Fachanwalt. Wenn Sie sich danach immer noch nicht sicher sind, dann verzichten Sie auf die Tests. Erschwerend kommt hinzu, dass ein falscher Einsatz solcher Tools dazu führen kann, dass eine wichtige Ressource nicht mehr erreichbar ist und großer Schaden entsteht.
Nicht zuletzt erfordert das sorgfältige Durchführen von Pen-Tests viel Training und Praxiserfahrung. Gehen Sie daher nicht davon aus, dass intern gemachte Tests vergleichbare Ergebnisse wie die eines externen Experten bringen.
Nachdem dieser Aspekt geklärt wurde, lassen Sie uns einen Blick auf zehn Security-Tools werfen, die routinemäßig von erfahrenen Pentestern eingesetzt werden. Weil es nicht möglich ist, alle der mehr als tausend verfügbaren Werkzeuge vorzustellen, fokussieren wir uns auf Anwendungen, die die folgenden Punkte erfüllen:
- Sie sind Open-Source und können deshalb von Jedermann jederzeit eingesetzt werden.
- Sie sind allgemein gut bekannt, so dass es für sie jeweils zahlreiche Quellen gibt, bei denen sich weitere Informationen finden.
- Sie decken ein weites Feld an Bereichen, Nischen und mit ihnen durchführbaren Tests ab.
In Deutschland ist allerdings noch der sogenannte Hackerparagraf zu beachten. Er wurde 2007 erlassen und hat seither für viel Verunsicherung bei Sicherheitsexperten und White Hats gesorgt. Auf dem 36C3-Kongress des Chaos Computer Clubs (CCC) hat der Rechtsanwalt Ulrich Kerner in einem Reality Check Tipps zum richtigen Umgang mit dem Paragrafen vorgestellt.
1. Kali, Parrot und BlackArch
Kali ist eine vollständige Linux-Distribution, die Hunderte von Hacking-Tools enthält. Andere auf das Pentesting ausgelegte Distributionen, auf die Sie einen Blick werfen sollten, sind Parrot und BlackArch. Kali hat aufgrund seiner Popularität aber den Vorteil sehr weit verbreitet zu sein und über eine große Nutzerbasis zu verfügen. Aus diesem Grund gibt es zahlreiche Erklärvideos, Gebrauchsanweisungen, Anwendergruppen und andere Informationsquellen, die Neulingen beim Einstieg in Kali behilflich sind.
Ein großer Teil der im Folgenden beschriebenen Tools sind in Kali und den anderen beiden genannten Distributionen bereits enthalten. Deswegen werden sie hier auch zuerst genannt. Wenn Sie eines der Programme ausprobieren wollen, sind Kali & Co. meist behilflich dabei, sie zu konfigurieren und für eigene Pentests zu nutzen.
2. Metasploit Framework
Wenn es um den Umgang mit Exploits geht, gibt es wahrscheinlich kein besser bekanntes und zugänglicheres Werkzeug als das Metasploit Framework. Es bietet eine in sich stimmige Methode, um Exploits zu nutzen, zu verpacken und sogar zu schreiben und weiter zu verteilen. Anwender, die testen wollen, wie anfällig ihre Umgebung gegen Exploits ist, kommen nicht an Metasploit vorbei.
Das Framework bietet ihnen einen leichten und zudem schnell zugänglichen Weg, um ihre Sicherheit zu testen. Die Anwendung enthält eine ganze Zahl von Exploits und Payloads, die sich auch miteinander kombinieren lassen, um spezifische Situationen und Umgebungen zu testen. Dazu kommen noch weitere Module, die zusätzliche Funktionen ohne dedizierten Schadcode enthalten.
3. Zed Attack Proxy
Das Testen einer Anwendung unterscheidet sich erheblich vom Testen auf der Host- und Netzwerkebene. Ein essenzielles Werkzeug für Tests von Anwendungen ist ein Proxy, mit dem Sie Web Application Requests via HTTP und HTTPS abfangen, betrachten, verändern, wiederholen und automatisieren können. Zed Attack Proxy (ZAP) vom Open Web Application Security Project (OWASP) erfüllt genau diese Anforderungen.
Bereits in seiner einfachsten Konfiguration fungiert ZAP als ein HTTP Forward Proxy, der sich zwischen Ihrem Browser und der Webseite einklinkt, die Sie testen wollen. Der wichtigste Unterschied zu anderen HTTP Forward Proxies wie Squid im Explicit Mode ist, dass dabei TLS-Verbindungen (Transport Layer Security) terminiert und deshalb über den Proxy und nicht durch den Browser-Tunnel geleitet werden können. So lassen sie sich auswerten.
Weitere fortgeschrittene Funktionen sind das automatische Sammeln von Daten (Spidering), WebSocket-Monitoring und -Controlling, automatisierte Erkennung von Problemen sowie die Übermittlung ungültiger oder unerwarteter Daten an ein Ziel, auch Fuzzing genannt.
4. Browser Exploitation Framework
Je nach Art der gewünschten Tests kann es sein, dass ein „Hereinlegen“ der Anwender nicht dazu gehören darf. Wenn die Anwender aber im Fokus der Tests stehen, benötigen Sie eine Methode, mit der Sie Ihren Traffic von außerhalb des Netzwerks nach innen leiten.
Eine Möglichkeit dafür ist die Nutzung des Browser Exploitation Frameworks (BeFF), mit dem Sie einen fremden Browser als Startrampe für eigene Angriffstests verwenden. Mit BeFF können Sie sich in den Browser des Anwenders „einklinken“, indem Sie die Person zum Beispiel dazu bringen, auf einen Link zu klicken, den Sie kontrollieren. Dadurch erhalten Sie unter anderem die Kontrolle über die Tabs im Browser oder Sie können Daten durch den Browser tunneln und mehr. Wenn Sie noch keinen Zugriff auf das interne Netzwerk haben, können Sie dieses Ziel mit BeFF oft ebenfalls erreichen.
5. Hydra, John the Ripper und Hashcat
Manchmal muss man einfach ein Passwort knacken. Es gibt so viele: Windows-Passwörter, Linux- und Unix-Passwörter, SSH-Passwörter (Secure Shell), Passwörter für Anwendungen und so weiter. Gleich mehrere Tools eignen sich zum Knacken von Passwörtern. Zu den besonders bewährten Werkzeugen gehören die Folgenden:
- Hydra eignet sich, um parallelisierte Brute-Force-Attacken auf online genutzte Passwörter durchzuführen.
- John the Ripper glänzt dagegen beim Offline-Cracking von Passwörtern.
- Hashcat bietet sich seinerseits für ein hoch performantes lokales Knacken von Passwörtern an. Das Tool unterstützt zudem eine große Zahl unterschiedlicher Formate.
6. Mimikatz
Mimikatz wurde eigens entwickelt, um geheime Daten aus dem Windows-Speicher auszulesen. Das ist etwa dann nützlich, wenn Sie vertrauliche Daten von einem Windows-Rechner extrahieren wollen, auf den Sie bereits Zugriff haben. Ein paar Beispiele für die Nutzung von Mimikatz:
- Um sich dauerhaft auf diesem oder anderen Geräten einzunisten, indem Sie mit Mimikatz Passwort-Hashes auslesen, die Sie dann später in Ruhe mit etwa John the Ripper offline knacken.
- Um sich weiter lateral im Netzwerk auszubreiten, indem Sie zum Beispiel ein Kerberos-Ticket ergattern.
- Um den Windows-Host heimlich zu missbrauchen, um sich zusätzliche oder verlängerte Zugriffe auf interne Ressourcen zu verschaffen.
7. Wireshark und TShark
Der Wireshark Network Protocol Analyzer ist eine hervorragende Möglichkeit, um zu verstehen, was im Netzwerk zwischen Ihrem Gerät und einem entfernten Host wirklich vor sich geht. Wenn Sie jedoch Netzwerkdaten an einem entfernten Ort sammeln wollen, nachdem Ihnen zum Beispiel ein erster Einbruch in ein fremdes System gelungen ist, dann greifen Sie zu TShark oder tcpdump. Mit beiden Tools lassen sich entfernte Pakete über die Kommandozeile einfangen.
8. Sqlmap
Eine weitere Angriffsmöglichkeit sind spezialisierte Tools, mit denen Sie Attacken via SQL Injection durchführen. Sqlmap ist ein Kommandozeilen-Tool, das automatisierte SQL-Injection-Angriffe möglich macht. Mit Sqlmap finden Sie zum Beispiel heraus, welche Parameter, Header oder anderen Datenfelder anfällig für SQL Injection sind. Außerdem zeigt das Tool sogar, welche Exploits möglich sind.
9. SoapUI
Die meisten Webseiten werden heute auf Basis von APIs (Application Programming Interfaces) erstellt, die zustandslos sind und asynchron arbeiten. Für ein flexibles Website-Design und die Einbindung von Modulen ist das ein großer Vorteil. Es bedeutet aber auch, dass die Sicherheit der zugrundeliegenden APIs einen ganz wesentlichen Einfluss auf den Schutz der gesamten Seite hat. Aber wie testen Sie die Sicherheit von APIs? Tools für die Tests von Anwendungen können bei dieser Aufgabe behilflich sein. Besser ist jedoch der Einsatz eines auf APIs ausgerichteten Tools wie SoapUI.
SoapUI stellt ein Interface für das Testen von APIs bereit. Mit ihm fangen Sie zum Beispiel gerade aktive Anfragen ab und manipulieren sie. Außerdem unterstützt es Techniken wie das Verändern von Parametern via Fuzzing und kann mit zahlreichen wichtigen Datenformaten wie JSON und GraphQL umgehen.
10. Apktool und MobSF
Das Testen einer mobilen Anwendung hängt meist direkt vom Testen ihrer Online-Dienste wie eingebundenen Webseiten und APIs ab. Mehr Informationen über die mobile Anwendung selbst herauszufinden, ist dagegen eine weit anspruchsvollere Aufgabe. Im Folgenden finden Sie ein paar Beispiele, wie Sie eine mobile App untersuchen können:
- Suche nach verborgenen Secrets wie Keys und Passwörtern in der Anwendung.
- Kennen und Verstehen der API-Schnittstellen der mobilen Anwendung.
- Analysieren ihres grundsätzlichen Aufbaus und ihrer Funktionen.
Mit dem Apktool packen Sie Android-Apps aus und zerlegen sie in ihre Bestandteile. Nützlich ist auch das Mobile Security Framework (MobSF), mit dem Sie sowohl Android- als auch iOS-Apps testen können.