Einleitung
Beim Knacken von WPA/WPA2-Handshakes mit aircrack-ng besteht die Standardmethode darin, jedes Passwort aus einer Wortliste zu testen. Für jedes Passwort muss aircrack-ng einen Pairwise Master Key (PMK) berechnen und ihn mit dem erfassten Handshake abgleichen. Diese On-the-fly-Berechnung kann zeitaufwendig sein, insbesondere bei großen Wortlisten.
Das Tool airolib-ng bietet eine leistungsstarke Optimierung. Es ermöglicht Ihnen, alle PMKs für ein bestimmtes Netzwerk (ESSID) und eine gegebene Wortliste vorab zu berechnen und in einer Datenbank zu speichern. Wenn Sie den Angriff ausführen, kann aircrack-ng diese Datenbank verwenden, um PMKs einfach nachzuschlagen, anstatt sie zu berechnen, was zu einer dramatischen Steigerung der Knackgeschwindigkeit führt.
In diesem Lab lernen Sie, wie Sie eine vorgefertigte airolib-ng-Datenbank verwenden, um einen WPA-Handshake zu knacken, und vergleichen deren Leistung mit einem Standardangriff auf Basis einer Wortliste.
Erfassen eines WPA-Handshakes für eine ESSID in Ihrer Datenbank
In diesem Schritt werden wir die bereitgestellte Capture-Datei untersuchen, um zu bestätigen, dass sie einen gültigen WPA-Handshake enthält. Für dieses Lab wurde eine Capture-Datei namens wpa.cap in Ihr Verzeichnis ~/project gelegt. Diese Datei enthält einen erfassten Vier-Wege-Handshake für das Netzwerk, das wir anvisieren werden.
Verwenden wir aircrack-ng, um den Inhalt dieser Datei anzuzeigen. Dieser Befehl startet keinen Angriff; er analysiert lediglich die Datei und zeigt eine Zusammenfassung der darin enthaltenen Netzwerke an.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
aircrack-ng wpa.cap
Sie sollten eine Ausgabe sehen, die die in der Capture-Datei gefundenen drahtlosen Netzwerke auflistet. Beachten Sie die ESSID (den Netzwerknamen) und die Bestätigung, dass ein Handshake erfasst wurde.
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
(press CTRL+C to abort)
Sie können CTRL+C drücken, um die aircrack-ng-Eingabeaufforderung zu beenden. Die wichtige Information ist, dass wir einen Handshake für die ESSID teddy haben. Dies ist das Netzwerk, das wir anvisieren werden.
Konstruieren des aircrack-ng-Befehls für den Angriff
In diesem Schritt beginnen wir mit der Konstruktion des aircrack-ng-Befehls für unseren Angriff. Die grundlegende Syntax für einen WPA-Angriff lautet aircrack-ng [options] <capture file>.
Um den Angriff effizienter zu gestalten, insbesondere wenn eine Capture-Datei mehrere Netzwerke enthält, können wir unser Ziel mit dem Parameter -e gefolgt von der ESSID angeben. Basierend auf dem vorherigen Schritt ist unsere Ziel-ESSID teddy.
Fügen wir dies unserem Befehl hinzu:
aircrack-ng -e teddy
Dieser Befehl ist noch nicht vollständig. aircrack-ng muss noch wissen, woher die zu testenden Passwörter oder PMKs bezogen werden sollen. Bei einem Standardangriff würden wir das Flag -w verwenden, um eine Wortliste bereitzustellen. Für dieses Lab werden wir jedoch unsere vorab berechnete airolib-ng-Datenbank verwenden. Den Parameter für die Datenbank fügen wir im nächsten Schritt hinzu.
Angeben der Datenbank mit dem Parameter -r
In diesem Schritt vervollständigen wir unseren Befehl, indem wir aircrack-ng anweisen, die airolib-ng-Datenbank zu verwenden. Der Parameter dafür ist -r (was für "read database" steht).
Während des Einrichtungsprozesses für dieses Lab wurde eine Datenbank namens mydb in Ihrem Verzeichnis ~/project erstellt. Diese Datenbank enthält die vorab berechneten PMKs für die ESSID teddy und die Passwörter aus wordlist.txt.
Nun fügen wir alle Teile zusammen: den aircrack-ng-Befehl, die Ziel-ESSID (-e teddy), die Datenbank (-r mydb) und die Capture-Datei (wpa.cap).
Der endgültige Befehl lautet:
aircrack-ng -e teddy -r mydb wpa.cap
Dieser Befehl weist aircrack-ng an:
- Das Netzwerk mit der ESSID
teddyanzuvisieren. - Die vorab berechneten PMKs aus der Datenbank
mydbzu verwenden. - Diese PMKs gegen den in
wpa.capgefundenen Handshake zu testen.
Im nächsten Schritt werden wir diesen Befehl ausführen und die Ergebnisse beobachten.
Ausführen des Angriffs und Beobachten der Knackgeschwindigkeit
In diesem Schritt ist es an der Zeit, den Angriff mit unserem vollständig konstruierten Befehl auszuführen. Durch die Verwendung der vorab berechneten Datenbank erwarten wir, dass der Knackprozess extrem schnell verläuft.
Führen Sie den folgenden Befehl in Ihrem Terminal aus:
aircrack-ng -e teddy -r mydb wpa.cap
Das Programm startet, öffnet die Datenbank und die Capture-Datei und findet fast sofort den richtigen Schlüssel.
Ihre Ausgabe sollte in etwa so aussehen:
Opening mydb
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening mydb
Attack will be restarted every 5000 PMKs.
Starting attack on ESSID teddy...
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Beachten Sie, wie schnell die Meldung KEY FOUND! erschien. Das Passwort lautet biscotte. Da die PMKs bereits berechnet und in der mydb-Datenbank gespeichert wurden, musste aircrack-ng nur eine schnelle Suche und einen Vergleich durchführen, nicht die intensiven kryptografischen Berechnungen.
Vergleich der Leistung mit einem Standard-Wörterbuch-Angriff
In diesem Schritt, um die Geschwindigkeit der airolib-ng-Datenbankmethode vollständig zu erfassen, führen wir denselben Angriff mit der traditionellen Wörterbuchmethode durch. Dies ermöglicht es uns, den Leistungsunterschied aus erster Hand zu sehen.
Bei einem Standardangriff verwenden wir den Parameter -w, um eine Wörterbuchdatei anzugeben. aircrack-ng liest dann jedes Passwort aus der Datei, berechnet dessen PMK und testet es.
Der Einrichtungsprozess hat zu diesem Zweck eine Datei namens wordlist.txt erstellt. Führen wir den Angriff mit dieser Datei durch.
Führen Sie den folgenden Befehl aus:
aircrack-ng -e teddy -w wordlist.txt wpa.cap
Sie werden sehen, wie aircrack-ng startet und mit dem Testen von Schlüsseln beginnt. Achten Sie auf die Statusanzeige, die die Anzahl der getesteten Schlüssel und die aktuelle Geschwindigkeit in Schlüsseln pro Sekunde (k/s) anzeigt.
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening wpa.cap
Opening wordlist.txt
Reading passwords from wordlist.txt
[0:00:00] 2 keys tested (XXXX.XX k/s)
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Obwohl der Schlüssel aufgrund unserer sehr kleinen Wörterbuchdatei immer noch schnell gefunden wird, beachten Sie, dass ein messbarer Prozess des Testens von Schlüsseln stattgefunden hat. Mit einem großen Wörterbuch, das Millionen von Passwörtern enthält, würde dieser Prozess erheblich mehr Zeit in Anspruch nehmen. Der Datenbankangriff war im Gegensatz dazu fast augenblicklich, da der rechenintensive Teil bereits erledigt war.
Zusammenfassung
In diesem Lab haben Sie erfolgreich einen WPA-Handshake mit einer vorab berechneten airolib-ng-Datenbank geknackt. Sie haben gelernt, wie Sie den aircrack-ng-Befehl mit dem Parameter -r zur Angabe der Datenbank erstellen und seine nahezu augenblickliche Leistung beobachtet.
Durch den Vergleich mit einem Standard-Wörterbuch-Angriff unter Verwendung des Parameters -w haben Sie den erheblichen Geschwindigkeitsvorteil der Vorberechnung von PMKs erlebt. Diese Technik ist für Sicherheitsexperten von unschätzbarem Wert, wenn sie ein bestimmtes Netzwerk mit einem großen Wörterbuch potenzieller Passwörter anvisieren, da sie die zeitaufwändige Berechnungsphase von der endgültigen Knackphase trennt.
