PMK-Datenbank mit airolib-ng erstellen

MySQLBeginner
Jetzt üben

Einleitung

airolib-ng ist ein leistungsstarkes Werkzeug innerhalb der Aircrack-ng-Suite, das für die Verwaltung und Nutzung von Pre-computed Master Key (PMK)-Datenbanken entwickelt wurde. Beim Versuch, einen WPA/WPA2-Handshake zu knacken, ist der zeitaufwendigste Teil die Berechnung des PMK aus einer potenziellen Passphrase und dem Netzwerknamen (ESSID).

Durch die Vorab-Berechnung dieser PMKs für eine Liste gängiger Passphrasen und Netzwerknamen und deren Speicherung in einer Datenbank können Sie den Knackprozess dramatisch beschleunigen. Anstatt die rechenintensive Berechnung für jedes Passwort während des Angriffs durchzuführen, kann aircrack-ng den PMK einfach in der Datenbank nachschlagen.

In diesem Lab lernen Sie die grundlegenden Operationen von airolib-ng kennen, um eine PMK-Datenbank zu erstellen und zu befüllen.

Das Konzept einer Pre-computed Master Key (PMK)-Datenbank verstehen

In diesem Schritt behandeln wir die Theorie hinter PMK-Datenbanken, bevor wir mit der Verwendung von airolib-ng beginnen. In diesem Schritt sind keine Befehle auszuführen.

Die Sicherheit von WPA/WPA2-Netzwerken beruht auf einem Vier-Wege-Handshake, der einen Pairwise Master Key (PMK) zur Verschlüsselung des Datenverkehrs verwendet. Dieser PMK wird aus dem Passwort (Passphrase) des Netzwerks und seinem Namen (ESSID) abgeleitet. Die Formel lautet:

PMK = PBKDF2(passphrase, SSID, 4096 Iterationen, 256-Bit-Ausgabe)

Wenn Sie versuchen, einen erfassten WPA/WPA2-Handshake mit einem Werkzeug wie aircrack-ng und einer Wortliste zu knacken, führt das Werkzeug diese Berechnung für jedes einzelne Passwort in Ihrer Liste durch. Die 4096 Iterationen machen diesen Prozess rechenintensiv und langsam.

Hier kommt airolib-ng ins Spiel. Es ermöglicht Ihnen, diese aufwendige Arbeit im Voraus zu erledigen. Sie können eine Liste gängiger ESSIDs und eine große Wortliste von Passphrasen verwenden, um alle daraus resultierenden PMKs vorab zu berechnen. Diese PMKs werden dann in einer effizienten SQLite-Datenbank gespeichert.

Wenn es an der Zeit ist, einen Handshake zu knacken, kann aircrack-ng diese Datenbank verwenden. Anstatt den PMK für jedes Passwort zu berechnen, berechnet es ihn einmal aus der ESSID des erfassten Handshakes und dem Passwort aus der Wortliste und schlägt das Ergebnis dann in Ihrer vorab berechneten Datenbank nach. Dieser Nachschlagevorgang ist tausendmal schneller als die vollständige Berechnung und reduziert die Knackzeit drastisch.

In den folgenden Schritten erstellen Sie eine solche Datenbank, füllen sie mit einer ESSID und Passwörtern und überprüfen deren Integrität.

Eine neue SQLite-Datenbank mit airolib-ng --new erstellen

In diesem Schritt erstellen wir eine neue, leere SQLite-Datenbank, die unsere PMKs speichern wird. Alle unsere Arbeiten werden im Verzeichnis ~/project durchgeführt.

Wir verwenden den Befehl airolib-ng, gefolgt vom gewünschten Datenbanknamen und dem Flag --new. Dieses Flag weist airolib-ng an, eine neue Datenbankdatei zu initialisieren.

Erstellen wir eine Datenbank namens pmk_db. Führen Sie den folgenden Befehl in Ihrem Terminal aus:

airolib-ng pmk_db --new

Das Werkzeug erstellt die Datei pmk_db in Ihrem aktuellen Verzeichnis (~/project) und richtet darin die notwendigen Tabellen ein. Sie sollten eine Ausgabe sehen, die die Erstellung und Initialisierung der Datenbank bestätigt.

Erwartete Ausgabe:

Database 'pmk_db' created.
Wrote 1 ESSIDs and 0 PMKs.

Sie können mit dem Befehl ls überprüfen, ob die Datei erstellt wurde:

ls -l pmk_db

Erwartete Ausgabe:

-rw-r--r-- 1 labex labex 8192 May 20 10:30 pmk_db

Eine einzelne ESSID mit --import essid in die Datenbank importieren

In diesem Schritt fügen wir Ihrer neu erstellten Datenbank einen Netzwerknamen (ESSID) hinzu. Die Datenbank muss wissen, für welche ESSIDs Sie PMKs vorab berechnen möchten.

Wir verwenden die Option --import essid. Diese Option kann eine einzelne ESSID als Argument von der Kommandozeile oder eine Liste von ESSIDs aus einer Datei entgegennehmen. Für dieses Labor werden wir eine einzelne ESSID namens MyHomeWiFi importieren.

Führen Sie den folgenden Befehl aus, um die ESSID in Ihre pmk_db-Datenbank zu importieren:

airolib-ng pmk_db --import essid MyHomeWiFi

Sie sehen eine Ausgabe, die darauf hinweist, dass die Datenbank gelesen wird und dass eine ESSID geschrieben wurde.

Erwartete Ausgabe:

Reading file...
Wrote 1 ESSIDs and 0 PMKs.
Done.

Nun ist Ihre Datenbank über das Netzwerk MyHomeWiFi informiert und bereit, zugehörige PMKs zu speichern.

Eine Wortliste importieren, um PMKs für diese ESSID zu berechnen

In diesem Schritt importieren Sie eine Liste von Passwörtern (eine Wortliste) und lassen airolib-ng die PMKs für die ESSID berechnen, die wir im vorherigen Schritt importiert haben.

Das Setup-Skript für dieses Labor hat bereits eine kleine Wortlistendatei für Sie namens wordlist.txt im Verzeichnis ~/project erstellt. Wir werden die Option --import pwd verwenden, um diese Datei zu lesen. Für jedes Passwort in wordlist.txt berechnet airolib-ng die PMK für die ESSID MyHomeWiFi und speichert das Ergebnis in der Datenbank.

Führen Sie den folgenden Befehl aus:

airolib-ng pmk_db --import pwd wordlist.txt

Das Werkzeug liest die Passwörter aus der Datei und berechnet die PMKs. Unsere wordlist.txt enthält 4 Passwörter, und wir haben 1 ESSID in der Datenbank, daher werden 4 PMKs berechnet und gespeichert.

Erwartete Ausgabe:

Reading file...
Wrote 0 ESSIDs and 4 PMKs.
Done.

Ihre Datenbank enthält nun die vorab berechneten Schlüssel für das Netzwerk MyHomeWiFi für jedes Passwort in wordlist.txt.

Einen Batch-Vorgang ausführen, um die Datenbankintegrität zu überprüfen

In diesem Schritt lernen Sie, wie Sie den Inhalt Ihrer Datenbank überprüfen und fehlende PMK-Paare berechnen. Dies ist ein wichtiger Wartungsschritt, insbesondere für große Datenbanken.

Die Option --batch führt einen umfassenden Vorgang durch. Sie findet alle paarweisen Kombinationen von ESSIDs und Passwörtern in der Datenbank und berechnet die PMK für jedes Paar, das noch keine hat. Sie dient auch als Möglichkeit, die Integrität bestehender PMKs zu überprüfen, indem diese neu berechnet und verglichen werden.

Führen Sie den Batch-Befehl für Ihre pmk_db-Datenbank aus:

airolib-ng pmk_db --batch

Da wir im vorherigen Schritt gerade alle möglichen Paare berechnet haben (1 ESSID x 4 Passwörter), wird der Befehl feststellen, dass keine neuen PMKs berechnet werden müssen. Er wird lediglich die vorhandenen überprüfen.

Erwartete Ausgabe:

All PMKs have been computed for all ESSIDs.
Nothing to do.

Wenn Sie eine neue ESSID oder eine neue Wortliste hinzufügen würden, wäre die Ausführung des --batch-Befehls der effizienteste Weg, die Datenbank mit allen neuen PMK-Kombinationen zu aktualisieren.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben erfolgreich eine Datenbank für Pre-computed Master Keys (PMKs) mit airolib-ng erstellt und verwaltet.

In diesem Labor haben Sie gelernt, wie Sie:

  • Das Konzept und den Nutzen einer PMK-Datenbank zur Beschleunigung von WPA/WPA2-Cracking verstehen.
  • Eine neue, leere Datenbank mit airolib-ng --new erstellen.
  • Einen Netzwerknamen mit airolib-ng --import essid in die Datenbank importieren.
  • Eine Wortliste importieren und die entsprechenden PMKs mit airolib-ng --import pwd berechnen.
  • Einen Batch-Vorgang ausführen, um die Datenbank mit airolib-ng --batch zu überprüfen und zu aktualisieren.

Mit diesem Wissen können Sie nun größere, umfassendere PMK-Datenbanken erstellen, um Ihre WPA/WPA2-Sicherheitsbewertungen erheblich zu beschleunigen. Die erstellte Datenbank pmk_db könnte mit aircrack-ng wie folgt verwendet werden: aircrack-ng -r pmk_db your_capture_file.cap.