Inhaltsverzeichnis
Airolib-ng
Beschreibung
Airolib-ng ist ein Tool des Programmpakets Aircrack-ng. Es speichert und verwaltet ESSID's und deren Passwörter. Des weiteren berechnet Airolib-ng die PMK's (Pairwise Master Keys) und benützt diese zum WPA/WPA2 cracken. Als Datenbank wird SQLite3 verwendet, welche für die am häufigsten benutzten Distributionen verfügbar ist.
Das Cracken von WPA/WPA2 beinhaltet die Berechnunng des „Paarweisen Haupt Schlüssels“(PMK), von welchem sich der „Persönliche Übermittlungs Schlüsssel“ (PTK) ableiten lässt. Wenn der PTK genutzt wird, kann der Rahmen des Nachrichten Identifizerungs Codes (MIC) für ein vorhandenes Paket berechnet werden und möglicherweise wird die MIC mit dem Paket übereinstimmen. D.h. der PTK war passend und daher ist der PMK ebenfalls korrekt.
Die Berechnung des PMK nimmt viel Zeit in Anspruch, da Airolib-ng den pbkdf2-Algorithmus benutzt. Jedoch ist der PMK für die vorhandene SSID und die Passwordkombination immer der selbe, was die Vorberechnung für die gegebenen Kombinationen erlaubt und die Geschwindigkeit deutlich erhöht. Tests haben gezeigt, dass bei Nutzung dieses Verfahrens mehr als 30.000 Passwörter pro Sekunde bei der Nutzung von vorberechneten PMK Tabellen erreicht werden.
Die Berechnung des PMK ist zwar noch immer eine Voraussetzung, jedoch kann: * es vorgerechnet werden, um es später zu nutzen oder mit anderen zu teilen. * die Berechnung auf mehrere Computer verteilt und das Ergebnis auf anderen Systemen genutzt werden.
Um mehr über WPA/WPA2 zu lernen: * Siehe [links#wpa_wpa2_information|WPA/WPA2 Information section] auf der Wiki Link Page.
Um mehr über Cowpatty zu lernen: * [http://www.churchofwifi.org/default.asp?PageLink=Project_Display.asp?PID=95|Church of Wifi CoWPAtty] * [http://www.wirelessdefence.org/Contents/coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]
Wie bereits oben erwaehnt, benoetigt dieses Programm eine SQLite 3 Datenbank. Es wird die Version 3.3.17 oder hoeher benoetigt. Hier kann die neueste Version heruntergeladen werden: SQLite download page
Anwendung
airolib <database> <operation> [options]
* database ist der Name des Datenbankfiles. Optional kann auch der ganze Pfad zur Datei angegeben werden. * operation bestimmt die Aktion die du mit deinem Datenbankfile durchführen willst. S.u. für eine ausfühliche Aufzählung. * options werden für manche Operationen benötigt.
Alle möglichen Operationen: * -stats - Zeigt Informationen über die Datenbank an. * -sql {sql} - Führt das eingegebene SQL statement aus. * -clean [all] - Befreit die Datenbank von „altem Müll“. Mit der Option „all“ wird (wenn möglich) die Filegröße reduziert und ein Integritäts-Check durchgeführt.
* -batch - Startet Batch-Prozess für alle Kombinationen von ESSID's und Passwörtern. Dies muss vorher immer durchgeführt werden um die Datenbank in aircrack-ng nutzen zu können oder nach den hinzufügen von neuen ESSID's und Passwörtern.
* -verify [all] - Prüft ein Set von zufällig gewählten PMK's. Mit der Option „all“ werden alle (!) PMK's in der Datenbank überprüft und falsche gelöscht.
* -export cowpatty {essid} {file} - Exportiern in ein Cowpatty-File. * -import cowpatty {file} - Importiert ein Cowpatty-File und erstellt die Datenbank falls nicht vorhanden. * -import {essid|passwd} {file} - Importiert einen reinen Textfile als Liste sowohl aus ESSID's oder Passwörtern und erzeugt die Datenbank falls nicht vorhanden. Dieser Textfile muss aus einer ESSID oder einem Passwort pro Zeile bestehen. Die einzelnen Zeilen sollten durch einen Zeilenvorschub beendet werden. Das heißt „Enter“ drücken am Ende einer Zeile beim Daten hinzufügen.
Praktisches Beispiel
Hier sind ein paar praktische Beispiele
Status Operation
Gib folgendes in die Konsole ein:
airolib-ng testdb --stats
Wobei:
- testdb ist der Name der Datenbank.
- - -stats ist die Operation welche ausgefuehrt werden soll.
Das System Antwortet:
statsThere are 2 ESSIDs and 232 passwords in the database. 464 out of 464 possible combinations have been computed (100%). ESSID Priority Done Harkonen 64 100.0 teddy 64 100.0
SQL Operation
Das nachstehende Beispiel wird der ESSID „VeryImportantESSID“ die hoechste Prioritaet zuweisen
Gib folgendes in die Konsole ein:
airolib-ng testdb --sql 'update essid set prio=(select min(prio)-1 from essid) where essid="VeryImportantESSID";'
Das System Antwortet:
update essid set prio=(select min(prio)-1 from essid) where essid="VeryImportantESSID"; Query done. 1 rows affected.
Das naechste Beispiel sucht nach bestimmten mustern im PMK
Gib folgendes in die Konsole:
airolib-ng testdb --sql 'select hex(pmk) from pmk where hex(pmk) like "%DEADBEEF%"'
Das System Antwortet:
hex(pmk) BF3F122D3CE9ED6C6E7E1D7D13505E0A41EC4C5A3DEADBEEFFEFF597387AFCE3
Saeubere Operation
Die Standard reinigung:
airolib-ng testdb --clean
Das System Antwortet:
cleanDeleting invalid ESSIDs and passwords... Deleting unreferenced PMKs... Analysing index structure... Done.
Fuehre die Standard reinigung durch, reduziere die dateigroese. Wenn moeglich fuehre einen integritaets test durch.
airolib-ng testdb --clean all
Das System Antwortet:
cleanDeleting invalid ESSIDs and passwords... Deleting unreferenced PMKs... Analysing index structure... Vacuum-cleaning the database. This could take a while... Checking database integrity... integrity_check ok Query done. 2 rows affected. Done.
Batch Operation
Gib folgendes in die Konsole:
airolib-ng testdb --batch
Das System Antwortet:
Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer). No free ESSID found. Will try determining new ESSID in 5 minutes...
Verify Operation
Um 10000 zufaellige PMK zu erstellen, gib folgendes in die Konsole ein:
airolib-ng testdb --verify
Das System Antwortet
verifyChecking ~10.000 randomly chosen PMKs... ESSID CHECKED STATUS Harkonen 233 OK teddy 233 OK
Um alle PMK's zu erstellen, gib folgendes in die Konsole ein:
airolib-ng testdb --verify all
Das System Antwortet:
verifyChecking all PMKs. This could take a while... ESSID PASSWORD PMK_DB CORRECT
Cowpatty table Export Operation
Gib in die Konsole ein:
airolib-ng testdb --export cowpatty test cowexportoftest
Das System Antwortet:
exportExporting... Done.
Import Operation
SSID
Um eine ASCII liste von ESSIDs zu importiern, gib folgendes ein:
airolib-ng testdb --import essid ssidlist.txt
Wobei:
- testdb ist der Name der Datenbank welche aktualisert werden soll. Exestiert die Datenbank nicht, so wird sie erstellt
- - -import ist die Operation welche ausgefuehrt werden soll
- essid weist auf eine liste von ESSID
- ssidlist.txt ist die Liste welche ESSID beinhaltet. Es darf nur eine ESSID pro zeile stehen
Das System Antwortet:
importReading... Writing... Done.
Passwoerter
Um eine Liste von ASCII Passwoertern zu Importieren, gib folgendes in die Konsole ein:
airolib-ng testdb --import passwd password.lst
Wobei:
- testdb ist der Name der Datenbank welche aktualisert werden soll. Exestiert die Datenbank nicht, so wird sie erstellt
- - -import ist die Operation welche ausgefuehrt werden soll
- passwd weist auf eine liste von Passwoertern
- password.lst ist die Liste welche Passwoerter beinhaltet. Es darf nur ein Passwort pro zeile stehen
Das System Antwortet:
importReading... Writing... read, 1814 invalid lines ignored. Done.
Cowpatty tables
Importiere eine cowpatty tabelle und erstelle sie, falls sie nicht existiert:
airolib-ng testdb --import cowpatty cowexportoftest
Wobei:
- testdb ist der Name der Datenbank welche aktualisert werden soll. Exestiert die Datenbank nicht, so wird sie erstellt
- - -import ist die Operation welche ausgefuehrt werden soll
- cowpatty weist auf eine cowpatty tabelle
- cowexportoftest ist der Dateiname. Einer pro Zeile.
Das System Antwortet:
importReading header... Reading... Updating references... Writing...
Aircrack-ng Verwendungs Beispiele
Mit der Datenbank kann das WPA/WPA2 cracken unter aircrack-ng enorm beschleunigt werden. Um die Tabellen verwenden zu koennen, muss bei aircrack-ng die -r Option angegeben werden.
Gib dazu folgendes in die Konsoel ein:
aircrack-ng -r testdb wpa2.eapol.cap
Wobei:
- -r spezifiziert die Vorgerechnete PMK Datenbank
- testdb ist der name der Datenbank
- wpa2.eapol.cap ist die Datei mit dem WPA/WPA2 handshake
Hinweis: Alle anderen Standard Optionen zu WPA/WPA2 koennen auch benuetzt werden.
Nuetzliche Tips
Teste das Tool selber:
- Installiere eine SQlite 3 Datenbanke (neueste Version wird stark empfohlen)
- Installiere die neueste Version der Aircrack-ng Suite
- import an essid, e.g. „echo Harkonen | airolib-ng testdb –import essid -“
Database <testdb> does not already exist, creating it... Database <testdb> sucessfully created Reading file... Writing... Done.
- importiere ein Passwort z.B. „echo 12345678 | airolib-ng testdb –import passwd -“
Reading file... Writing... Done.
- starte den batch prozess („airolib-ng testdb –batch“), warte, bis der Prozess keine Aufgaben mehr hat, oder KIlle Ihn.
Computed 1 PMK in 0 seconds (1 PMK/s, 0 in buffer). All ESSID processed.
- Ueberpruefe die Datenbank ob auch alles generiert wurde
There are 1 ESSIDs and 1 passwords in the database. 1 out of 1 possible combinations have been computed (100%). ESSID Priority Done Harkonen 64 100.0
- cracke deinen WPA/WPA2 handshake z.B. „aircrack-ng -r testdb -e Harkonen wpa2.eapol.cap“
KEY FOUND! [ 12345678 ]
Fehlerbekempfung
Airolib-ng Aktivieren
Airolib-ng wird nicht standardmaesig compiliert. Um airolib-ng nutzen zu koennen, muss beim kompilieren folgender parameter angegeben werden: make SQLITE=true make sqlite=true install
Compilierungs Fehler
Hier wird nur ein bestimmter compilierungsfehler mit der Aircrack-ng Version 1.0 beschrieben. SQLite muss Version 3.3.13 oder hoeher sein! Folgenden Compilierungsfehler erhaelt man, wenn die SQLite Version unter den anforderungen ist.
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=`../evalrev` -I/usr/local/include -Iinclude -DHAVE_SQLITE -c -o airolib-ng.o airolib-ng.c airolib-ng.c: In function `sql_prepare': airolib-ng.c:129: warning: implicit declaration of function `sqlite3_prepare_v2' make[1]: *** [airolib-ng.o] Error 1 make[1]: Leaving directory `/root/1.0-dev/src' make: *** [all] Error 2
Wann wird der SQLite patch gebraucht?
Der SQLite patch, welcher in den aircrack-ng sourcecode inkludiert ist, wird nur bei einer compilierung unter Windows benoetigt. Unter Windows muessen bestimmte elemente entfernt werden, welche fuer das compilieren nicht benoetigt werden.
Das wird nicht fuer die Linux installatino benoetigt.
Airolib-ng kann die Datenbank nicht oeffnen ,oder eine erstellen
Nur unter Windows funktioniet das oeffnen oder erstellen von datenbanken nicht, wenn Spezielle Buchstaben im Ordnernamen benuetzt werden wie z.B. 'ç', 'é', 'è', 'à', … Die Loesung liegt darin, airolib-ng und seine Datenbank in einen Ordner zu verschieben, welcher keine sonderzeichen beonuetzt.
The solution is to move airolib-ng and its database in another directory without these special characters.
"invalid lines ignored" Fehlermeldung
Diese Fehler kann beim importieren von Passwoertern oder ESSIDs auftreten. Der fehler tritt auf, wenn eine unguelltige laenge von passwoertern oder ESSIDs vorhanden sind.
Guelltige laengen sind:
- Ein Passwort muss zwischen 8 und 63 Zeichen lang sein.
- ESSIDs muessen eine laenge von 1 bis 32 Zeichen aufweisen
"Quitting aircrack-ng..." Fehlermeldung
Wenn aircrack-ng mit der Fehlermeldung „Quitting aircrack-ng…“ beendet wird, dann fehlt die ESSID in der Datenbank. Sie muss mit der batch option geladen sein.