Es wäre hilfreich, wenn du dir zuvor den Artikel Wie Hacker Passwörter knacken durchliest.
1. Einführung
In der Szene, um die es geht, sieht man, wie Elliot versucht, in einen fremden Facebook-Account einzudringen. Dazu telefoniert er mit dem Inhaber dieses Accounts, dessen Handynummer er zuvor per Social-Engineering herausgefunden hat. Elliot gibt vor, von der Sicherheitsabteilung zu sein und dass er zur Verifizierung der Identität seines Opfers einige Daten abfragen müsse. Du hast sicherlich gemerkt, dass er sich nicht als Facebook-Sicherheitstechniker ausgegeben hat, sondern als einen von der Bank des Opfers. Viele sind beim eigenen Bankkonto nämlich kooperativer als bei Social Media Accounts. Dieses Vorgehen ist eine gängige Methode, um an Informationen zu kommen. Mit seiner Wortwahl und Stimme strahlt er Professionalität und Autorität aus. Ziel ist es mehr über das Target herauszufinden und daraus eine personalisierte Wordlist bzw. ein Dictionary zu erstellen. Wenn das Opfer clever wäre, würde er sofort nach diesem Telefonat sein Passwort ändern bzw. die Sicherheit seines Passworts hinterfragen. Solche verdächtigen Anrufe (oder auch E-Mails) solltest du nicht einfach ignorieren. Mit den gesammelten Informationen zu dem Baseball-Team, der Appartement-Nummer und dem Namen des Haustiers füttert Elliot nun ein Programm, das in der Lage ist, das Passwort des Targets herauszufinden.
Du musst als Zuschauer übrigens davon ausgehen, dass Elliot im Vorfeld irgendwie an den Passwort-Hash seines Opfers gekommen ist. Wie er das geschafft hat, wird in der Serie leider nicht gezeigt. Aber mit dem Passwort-Hash kann er ohne Risiko das Unhashen des Hashes anstoßen. Alle Kombinationen direkt auf Facebook auszuprobieren wäre übrigens eine denkbar schlechte Idee, da genau aus diesem Grund nach einer bestimmten Anzahl an Fehlversuchen die automatische Account-Sperre greift. Sonst wäre es ein Leichtes in fremde Accounts einzudringen, da man nur lange genug automatisiert Passwörter ausprobieren müsste, was bei vielen aufgrund schwach gewählter Passwörter sehr schnell zum Ziel führen würde.
2. Hashcat
Elliot hat sich wahrscheinlich einen eigenen Cracker geschrieben, um den gestohlenen Passwort-Hash in das Klartextpasswort zu übersetzen. Zumindest erkennt man in der Serie nicht, welches Tool er nutzt und er spricht von "seinem" Programm. Die Eigenentwicklung ist eine durchaus probate Methode, doch es gibt auch gute Open Source Programme, die diese Arbeit erledigen können. Hierzu zählt das offiziell als Passwort-Recovery-Tool geführte Programm Hashcat. Der Source Code kann hier frei eingesehen werden und ist in der Videobeschreibung verlinkt. Mit Hashcat kannst du Passwort-Hashes entschlüsseln.
Warum ist gerade Hashcat eine gute Wahl? Ein Passwort-Cracker sollte möglichst effizient arbeiten und die höchstmögliche Anzahl an Passwörtern pro Sekunde durchgehen. Dazu ist, neben der entsprechenden Hardware deines Rechners, auch ein Tool nötig, das möglichst hardwarenah programmiert ist, um Latenzen durch Programmier-Overhead zu vermeiden und effizient arbeiten zu können. Das ist sowohl mit der CPU- als auch GPU-Version (OCL Hashcat) gegeben. Außerdem kann man mit Hashcat den Vorteil der hohen Rechenleistung einer GPU ausspielen und so schnell ans Ziel kommen.
Noch ein kurzer Disclaimer: Du kannst dir dieses Tool kostenlos herunterladen und installieren. Beachte aber, dass du damit nur eigene Passwort-Hashes unhashen und generell keine Daten ausspähen darfst! Sonst trifft dich womöglich die juristische Faust in Form des Hacker-Paragraphen §202c StGB.
3. Wie funktioniert der Angriff?
Angenommen, der Passwort-Hash von Elliots Opfer, den Facebook in seiner Datenbank gespeichert hat, lautet
c672bfa5bcfad51d8d33d1101005fd61
Nimm außerdem an, dass es sich um einen MD5-Hash handelt und das Passwort nicht zuvor gesalzen wurde. Elliot hat erwähnt, dass er eine Wörterbuch-Brute-Force-Attacke durchgeführt hat, um an das Passwort zu kommen. Für diese Angriffstechnik bietet Hashcat entsprechende Optionen an.
Speichere zuerst einmal den Passwort-Hash in einem Textfile, das du z. B. "hash.txt" nennst.
Navigiere über die Konsole zu dem Ort, an dem du Hashcat installiert hast. Dort führst du dann den Befehl hashcat64 aus und gibst einige Konsolenargumente ein.
- Mit -m 0 legst du fest, dass du einen MD5-Hash unhashen willst.
- Mit -a 0 teilst du Hashcat mit, dass du für den Angriff eine Wordlist verwenden willst und später definierst, wie die Wörter aus der Liste kombiniert werden sollen.
- hash.txt ist das File, das den Hash zuvor gespeicherten Passwort-Hash enthält.
- rockyou.txt ist die Wordlist bzw. das Dictionary, verwendet werden soll. Hier kannst du auch dein eigenes verwenden. In rockyou.txt sind allerdings alle ermittelten Zeichenkombinationen, die Elliots Opfer ihm zuvor verraten hat, bereits enthalten. Du kannst jedoch auch eine Wordlist mit weniger Worten verwenden oder vorrangig die drei Strings "2C", "Yankees" und "Flipper" nutzen.
- - r rules/rockyou-30000.rule bedeutet, dass für das Kombinieren der Wörter aus der Wordlist die in dem Rule-File rockyou-30000 gespeicherten Regeln verwendet werden sollen.
Nachdem du nun die Parameter des Angriffs spezifiziert hast, drückst du auf ENTER und lässt Hashcat für dich arbeiten:
hashcat64 -m 0 -a 0 hash.txt rockyou.txt -r rules/rockyou-30000.rule
Nach einiger Zeit (je nach Komplexität des Passworts) terminiert das Programm. In diesem Fall lautete das Passwort also "Yankees2C". Das ging doch recht schnell, oder? Die Hardware, die ich verwendet habe, ist ebenfalls nicht die beste. Da geht also noch mehr!
Daran siehst du auch mal wieder, wie wichtig Mathe ist. Wenn du nämlich im Vorfeld kombinatorisch ermitteln kannst, wie viele Passwörter theoretisch durchprobiert werden müssen, kannst du eine Aufwandsschätzung machen und entsprechende Rechenressourcen einplanen. Es würde z. B. keinen Sinn ergeben ein 20-stelliges Passwort ohne Anhaltspunkte zu brute-forcen. Außerdem kann man mit der Mathematik als Werkzeug Metriken entwerfen, die angeben, wie gut oder schlecht ein bestimmtes Passwort sicherheitstechnisch performt.
4. Challenge
Und jetzt bist du an der Reihe! Schaffst du es den Passwort-Hash von Elliots Facebook-Account in ein Klartextpasswort zu überführen? Das Passwort wurde ebenfalls mit dem MD5-Algorithmus gehasht.
a2ba9e438529654ef8fee240173ab8ea
Poste deine Antwort gerne unten als Kommentar und auch, wie lange der eigentliche Crack-Prozess bei dir gedauert hat. Interessant wäre in diesem Zusammenhang, auf welcher Hardware du Hashcat hast laufen lassen.
Autor: Florian André Dalwigk
Dieser Artikel hat 50 Bonuspunkte erhalten. Schreib auch du einen Artikel.