PMKID-Hash mit Hashcat knacken

Beginner
Jetzt üben

Einleitung

In diesem Labor lernen Sie die Grundlagen des Knackens eines WPA/WPA2 PMKID (Pairwise Master Key Identifier) Hash mit Hashcat, einem leistungsstarken und vielseitigen Werkzeug zur Passwortwiederherstellung. Ein PMKID ist Teil des WPA/WPA2-Authentifizierungsprozesses und kann manchmal von einem Access Point erfasst werden, ohne dass ein Client anwesend sein muss. Das Knacken eines PMKID ist oft effizienter als das Knacken eines vollständigen 4-Wege-Handshakes.

Sie werden den gesamten Prozess durchlaufen, von der Vorbereitung einer Hash-Datei bis zur Ausführung eines Wörterbuchangriffs mit Hashcat. Diese praktische Erfahrung vermittelt Ihnen ein fundiertes Verständnis dafür, wie Passwortknacken in einer kontrollierten, lehrreichen Umgebung funktioniert. Alle Aktivitäten in diesem Labor dienen ausschließlich Bildungszwecken.

Konvertieren der PMKID-Erfassung in ein Hashcat-kompatibles Format

In diesem Schritt lernen Sie das Format kennen, das Hashcat zum Knacken von PMKID-Hashes benötigt. Typischerweise werden PMKIDs aus rohen Netzwerk-Erfassungsdateien (z. B. .pcapng-Dateien) extrahiert. Ein Werkzeug wie hcxpcapngtool wird verwendet, um die Erfassung in ein Klartext-Hash-Format zu konvertieren, das Hashcat verarbeiten kann.

Der Befehl hierfür würde wie folgt aussehen: hcxpcapngtool -o <output_hash_file> <input_capture_file.pcapng>

Um einen reibungslosen Ablauf in diesem Labor zu gewährleisten, haben wir diese Konvertierung bereits für Sie durchgeführt. Der resultierende Hash wird in einer Datei namens pmkid.hash in Ihrem aktuellen Verzeichnis (~/project) gespeichert.

Betrachten wir den Inhalt dieser Datei, um ihre Struktur zu verstehen. Verwenden Sie den Befehl cat, um den Inhalt der Datei anzuzeigen.

cat pmkid.hash

Sie sehen die folgende Ausgabe, die eine einzelne Zeile darstellt, die den PMKID-Hash enthält:

d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*f9e8d7c6b5a4*4d795377656574486f6d65

Dieses Format ist PMKID*MAC_AP*MAC_STA*SSID_HEX. Jeder Teil ist durch ein Sternchen getrennt und liefert Hashcat alle notwendigen Informationen, um den Angriff durchzuführen.

Auswahl des korrekten Hashcat-Modus für WPA-PMKID, nämlich -m 16800

In diesem Schritt identifizieren Sie den korrekten Modus zum Knacken von PMKID-Hashes in Hashcat. Hashcat unterstützt Hunderte verschiedener Hash-Algorithmen, und jedem wird eine eindeutige Modusnummer zugewiesen. Die Angabe des korrekten Modus ist unerlässlich, damit Hashcat korrekt funktioniert.

Sie können die Liste aller unterstützten Hash-Typen und ihrer entsprechenden Modi mit der Option --help des Befehls hashcat abrufen. Um die Liste einzugrenzen, können Sie die Ausgabe an grep weiterleiten und nach einem bestimmten Schlüsselwort wie "PMKID" suchen.

Führen Sie den folgenden Befehl aus, um den Modus für WPA-PMKID zu finden:

hashcat --help | grep "WPA-PMKID"

Die Ausgabe zeigt den relevanten Hash-Modus an:

16800 | WPA-PMKID-PBKDF2                                     | Network Protocols

Wie Sie aus der Ausgabe ersehen können, ist die Modusnummer für WPA-PMKID-PBKDF2 16800. Sie werden diese Modusnummer mit der Option -m in Ihrem Hashcat-Befehl verwenden.

Erstellen des Hashcat-Befehls mit der Hash-Datei

In diesem Schritt beginnen Sie mit der Erstellung des hashcat-Befehls. Die grundlegende Syntax für einen Wörterbuchangriff lautet hashcat [options] <hash_file> <wordlist_file>.

Bisher haben Sie zwei Schlüsselkomponenten identifiziert:

  1. Der Hash-Modus: -m 16800
  2. Die Hash-Datei: pmkid.hash

Fügen wir diese zusammen. Wir müssen auch einen Angriffsmodus mit der Option -a angeben. Ein Wörterbuchangriff ist Modus 0, daher verwenden wir -a 0. Dies ist der Standard-Angriffsmodus, aber es ist gute Praxis, ihn explizit anzugeben.

Versuchen wir, den Befehl nur mit dem Hash-Modus und der Hash-Datei auszuführen. Dies wird fehlschlagen, ist aber eine gute Möglichkeit, unsere Syntax zu bestätigen und zu sehen, was Hashcat als Nächstes erwartet.

hashcat -m 16800 pmkid.hash

Hashcat startet und beendet sich dann mit einer Nutzungsnachricht, da ein erforderliches Argument für diesen Angriffstyp fehlt.

hashcat (v6.2.6) starting...

* Device #1: WARNING! Kernel exec timeout is not disabled.
...
Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...

Try --help for more help.

Der Fehler zeigt an, dass für den Standard-Angriffsmodus (Wörterbuch) eine Wortliste oder ein Verzeichnis erforderlich ist. Dies bestätigt, dass unsere Befehlsstruktur bisher korrekt ist und führt uns direkt zum nächsten Schritt: Bereitstellung einer Wortliste.

Angabe einer Wortliste für den Wörterbuchangriff

In diesem Schritt vervollständigen Sie den Hashcat-Befehl durch Hinzufügen einer Wortliste. Ein Wörterbuchangriff funktioniert, indem jedes Wort aus einer gegebenen Datei (der "Wortliste" oder dem "Wörterbuch") genommen und als potenzielles Passwort gegen den Hash getestet wird.

Für dieses Labor wurde eine kleine Wortlistendatei namens wordlist.txt für Sie im Verzeichnis ~/project erstellt. Lassen Sie uns deren Inhalt untersuchen.

cat wordlist.txt

Sie sehen eine kurze Liste potenzieller Passwörter:

secret
123456
password123
qwertyuiop
labex

Eines dieser Wörter ist das richtige Passwort für unseren Hash. Nun können Sie den vollständigen Befehl erstellen, indem Sie den Namen der Wortlistendatei an den Befehl aus dem vorherigen Schritt anhängen.

Der vollständige Befehl lautet: hashcat -m 16800 -a 0 pmkid.hash wordlist.txt

  • -m 16800: Gibt den WPA-PMKID-Hash-Typ an.
  • -a 0: Gibt den Wörterbuchangriffsmodus an.
  • pmkid.hash: Die Datei, die den zu knackenden Hash enthält.
  • wordlist.txt: Die Wörterbuchdatei, die Passwortkandidaten enthält.

Im letzten Schritt führen Sie diesen Befehl aus, um den Hash zu knacken.

Hashcat ausführen und die Ergebnisse der Entschlüsselung analysieren

In diesem Schritt führen Sie den vollständigen Hashcat-Befehl aus und analysieren die Ausgabe, um das entschlüsselte Passwort zu finden. Es ist an der Zeit, alles zusammenzufügen und den Entschlüsselungsprozess zu starten.

Führen Sie den vollständigen Befehl in Ihrem Terminal aus:

hashcat -m 16800 -a 0 pmkid.hash wordlist.txt

Hashcat wird initialisiert, Sitzungsinformationen anzeigen und mit dem Testen der Passwörter aus wordlist.txt beginnen. Da die Wortliste sehr klein ist, wird der Prozess fast augenblicklich erfolgen. Sobald das richtige Passwort gefunden wurde, wird Hashcat es anzeigen und den Status als "Cracked" (Entschlüsselt) melden.

Die Ausgabe wird in etwa wie folgt aussehen:

...
Session..........: hashcat
Status...........: Cracked
Hash.Name........: WPA-PMKID-PBKDF2
Hash.Target......: d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*...
Time.Started.....: ...
Time.Estimated...: 0 secs
Guess.Base.......: File (wordlist.txt)
...
Recovered........: 1/1 (100.00%) Digests
...

d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*f9e8d7c6b5a4*4d795377656574486f6d65:password123

All hashes have been recovered.
...

Die wichtigste Zeile ist d5b6c18645897310626525389ebb3461*...:password123, die den ursprünglichen Hash gefolgt von einem Doppelpunkt und dem wiederhergestellten Passwort: password123 anzeigt.

Hashcat speichert entschlüsselte Passwörter automatisch. Um zuvor entschlüsselte Hashes anzuzeigen, ohne den Angriff erneut auszuführen, können Sie die Option --show verwenden.

hashcat -m 16800 pmkid.hash --show

Dieser Befehl zeigt sofort das entschlüsselte Hash- und Passwortpaar an:

d5b6c18645897310626525389ebb3461*a0b1c2d3e4f5*f9e8d7c6b5a4*4d795377656574486f6d65:password123

Zusammenfassung

Herzlichen Glückwunsch zum erfolgreichen Knacken eines PMKID-Hashes! In diesem Labor haben Sie praktische Erfahrungen mit Hashcat gesammelt und die wesentlichen Schritte eines Wörterbuchangriffs kennengelernt.

Sie haben gelernt, wie Sie:

  • Das Hashcat-kompatible Format für PMKID-Hashes erkennen.
  • Den richtigen Hashcat-Modus für einen bestimmten Hash-Typ identifizieren (-m 16800 für WPA-PMKID).
  • Einen vollständigen Hashcat-Befehl für einen Wörterbuchangriff (-a 0) erstellen.
  • Den Angriff mit einer Hash-Datei und einer Wortliste ausführen.
  • Die Ausgabe analysieren und geknackte Passwörter mit der Option --show anzeigen.

Während dieses Labors ein kleines, einfaches Beispiel verwendet wurde, gelten dieselben Prinzipien auch für reale Szenarien, die wesentlich größere Wortlisten und leistungsfähigere Hardware beinhalten würden. Die erlernten Fähigkeiten bieten eine solide Grundlage für das Verständnis von Passwortsicherheit und ethischen Hacking-Praktiken.