In der Welt der Cybersicherheit sind Penetrationstests von entscheidender Bedeutung, um Schwachstellen zu identifizieren, bevor böswillige Akteure sie ausnutzen können. Ein wesentlicher Bestandteil dieser Tests ist die Passwortsicherheit, insbesondere die Fähigkeit, gehashte Passwörter zu knacken.
Red Teams, die damit beauftragt sind, realistische Angriffe zu simulieren, verlassen sich häufig auf bestimmte Werkzeuge und Strategien, um solche Hashes zu brechen. Eine Go-To-Tool ist Hashcat, des führende Tool zum Hash-Knacken. Bei uns gerne in Verbindung mit Hashtopolis, einer verteilten Cracking-Plattform, die die Leistung von GPUs im gesamten Team nutzt.
Was sind Hashes und warum will man die "brechen"?
Wenn ein Benutzer ein Passwort erstellt, wird es nicht im Klartext gespeichert. Stattdessen wird eine Hashfunktion verwendet, um eine eindeutige Zeichenfolge (den Hash) zu erzeugen, die sicher gespeichert wird. Hashfunktionen sind so konzipiert, dass sie nur in eine Richtung funktionieren, das bedeutet, dass man den ursprünglichen Eingabewert aus dem Hash nicht rückgängig machen kann.
Die Herausforderung für Angreifer – und Red Teams – besteht darin, das ursprüngliche Passwort zu ermitteln, das einen bestimmten Hash erzeugt hat. Dies geschieht durch das Generieren potenzieller Hashes aus einer Liste möglicher Passwörter und das Vergleichen dieser Hashes mit dem Zielhash. Die Komplexität dieser Aufgabe hängt sowohl von der Stärke des Passworts als auch von der verfügbaren Rechenleistung, sowie der Art des Hashes ab. Einfache Passwörter können relativ schnell geknackt werden, während komplexere Passwörter immense Rechenleistung erfordern können.
Hashcat: Das bevorzugte Tool zum Hash-Knacken
Hashcat ist ein vielseitiges und weit verbreitetes Tool im Bereich der Penetrationstests. Es unterstützt über 350 Hash-Algorithmen und kann in verschiedenen Angriffsmodi konfiguriert werden, wie z.B. Wörterbuchangriffe, Brute-Force- und Kombinator-Angriffe. Eine der mächtigsten Funktionen von Hashcat ist seine Fähigkeit, GPUs (Graphics Processing Units) zum Hash-Knacken zu nutzen.
GPUs sind besonders gut für diese Aufgabe geeignet, da sie über Tausende von Kernen verfügen, die mehrere Hash-Berechnungen parallel durchführen können. Dies macht sie für bestimmte Arten von Berechnungen, wie sie beim Knacken von Passwörtern erforderlich sind, um ein Vielfaches schneller als CPUs.
Skalierung mit Hashtopolis
Während eine einzelne GPU den Hash-Cracking-Prozess erheblich beschleunigen kann, erfordern groß angelegte Penetrationstests oft noch mehr Leistung. Hier kommt Hashtopolis ins Spiel. Hashtopolis ist eine Wrapper-Software für Hashcat, die verteiltes Hash-Cracking über mehrere Maschinen und GPUs ermöglicht. Durch das Zusammenführen der Ressourcen eines Red Teams ermöglicht Hashtopolis eine viel größere und schnellere Angriffsfläche.
Wie funktioniert Hashtopolis?
Hashtopolis arbeitet mit einer Client-Server-Architektur. Der Server ist für das Management der gesamten Aufgabe des Hash-Knackens verantwortlich, einschließlich der Verteilung der Arbeitslasten, der Überwachung des Fortschritts und der Sammlung der Ergebnisse. Die Agents (Clients) sind die Maschinen, die das eigentliche Knacken durchführen, jede ausgestattet mit ihren eigenen GPUs.
Server-Setup: Der Hashtopolis-Server kann leicht mit Docker bereitgestellt werden. Er ist das zentrale Steuerungssystem, das die verteilte Cracking-Aufgabe koordiniert, Hash-Listen und Wortlisten speichert und Aufgaben verwaltet.
Client-Bereitstellung: Agents sind Python-Anwendungen, die auf fast jedem Computer installiert werden können. Diese Agents kommunizieren über eine API mit dem Server, melden ihre verfügbaren Ressourcen und fordern Aufgaben an.
Aufgabenverteilung: Wenn ein Agent eine Aufgabe zugewiesen bekommt, lädt er die notwendigen Hash-Listen, Wortlisten und Hashcat-Binaries vom Server herunter. Anschließend nutzt er seine GPUs, um die Hashes zu knacken, und meldet seinen Fortschritt und die Ergebnisse in Echtzeit zurück.
Überwachung und Verwaltung: Die Hashtopolis-Weboberfläche bietet eine Echtzeit-Überwachung der Leistung jedes Agents, sodass Red-Team-Operatoren die Ressourcen effektiv verwalten und potenzielle Engpässe identifizieren können.
Die Kraft der Zusammenarbeit in Red-Team-Engagements
Durch die Verteilung der Arbeitslast auf mehrere Maschinen ermöglicht Hashtopolis einem Red Team, Hashes viel schneller zu knacken, als es ein einzelnes System könnte. Dies ist besonders wertvoll bei zeitkritischen Penetrationstests, bei denen die Fähigkeit, schnell in ein System einzudringen, entscheidend für die Identifizierung von Schwachstellen sein kann.
Darüber hinaus ermöglicht dieser kollaborative Ansatz den Teams, alle verfügbaren Hardware-Ressourcen zu nutzen und die Effizienz der Operation zu maximieren. Es hilft auch, umfangreichere Hash-Listen oder komplexere Passwörter zu bewältigen, die mit begrenzten Ressourcen fast unmöglich zu knacken wären.
Warum ist das wichtig?
Während Penetrationstests, insbesondere solche, die von Exploit Labs durchgeführt werden, ist das Knacken von Hashes eine praktische Möglichkeit, die Sicherheit der Passwortrichtlinien eines Kunden zu demonstrieren. Wenn ein Red Team ein Passwort innerhalb weniger Stunden knacken kann, wird damit eine kritische Schwachstelle aufgezeigt, die behoben werden muss.
Durch den Einsatz von Tools wie Hashcat und Hashtopolis können Red Teams ihre Fähigkeit zum Hash-Knacken erheblich verbessern und so umfassendere Sicherheitsbewertungen für ihre Kunden durchführen. Durch die Nutzung der kombinierten Leistung mehrerer GPUs auf verschiedenen Maschinen können Teams selbst die komplexesten Passwort-Hashes knacken und sicherstellen, dass bei der Suche nach Sicherheitslücken kein Stein auf dem anderen bleibt.
In dem sich ständig weiterentwickelnden Bereich der Cybersicherheit bedeutet das, der potenziellen Bedrohung einen Schritt voraus zu sein, die neuesten Tools und Techniken zu übernehmen und zu optimieren. Für Red Teams bietet Hashtopolis eine leistungsstarke Lösung für verteiltes Hash-Knacken, die eine herausfordernde Aufgabe in einen besser handhabbaren und effizienteren Prozess verwandelt.
Schließlich ist es eine großartige Motivation, das Team gelegentlich mit leistungsstarken GPUs auszustatten und im Gegenzug zusammenzuarbeiten, wenn jemand Hilfe benötigt. Es ist viel besser, die gebündelte Leistung des Teams und deren GPUs aus der Ferne zu nutzen, als allein in einem Hotelzimmer auf die eingebaute GPU des Laptops angewiesen zu sein, die den Raum aufheizt, während man schläft.