Airolib-ng
Aus Wardriving-Forum.de Enzyklopädie
[Bearbeiten] Airolib-ng
[Bearbeiten] 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:
Wie bereits oben erwähnt, benötigt dieses Programm eine SQLite 3 Datenbank. Es wird die Version 3.3.17 oder höher benötigt. Hier kann die neuste Version heruntergeladen werden: [download page]
[Bearbeiten] 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.
[Bearbeiten] Praktisches Beispiel
Hier sind ein paar praktische Beispiele
[Bearbeiten] Status Operation
Gib folgendes in die Konsole ein:
airolib-ng testdb --stats
Wobei:
* testdb ist der Name der Datenbank. * - -stats ist die Operation welche ausgeführt 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
[Bearbeiten] SQL Operation
Das nachstehende Beispiel wird der ESSID "VeryImportantESSID" die höchste Priorität 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 nächste 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
[Bearbeiten] Säubere Operation
Die Standard Reinigung:
airolib-ng testdb --clean
Das System Antwortet:
cleanDeleting invalid ESSIDs and passwords... Deleting unreferenced PMKs... Analysing index structure... Done.
Führe die Standard Reinigung durch, reduziere die Dateigröße. Wenn möglich führe einen Integritätstest 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.
[Bearbeiten] 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...
[Bearbeiten] Verify Operation
Um 10000 zufällige 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
[Bearbeiten] Cowpatty table Export Operation
Gib in die Konsole ein:
airolib-ng testdb --export cowpatty test cowexportoftest
Das System Antwortet:
exportExporting... Done.
[Bearbeiten] Import Operation
[Bearbeiten] 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 ausgeführt 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.
[Bearbeiten] Passwörter
Um eine Liste von ASCII Passwörtern 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 ausgeführt werden soll * passwd weist auf eine liste von Passwörtern * password.lst ist die Liste welche Passwörter beinhaltet. Es darf nur ein Passwort pro zeile stehen
Das System antwortet:
importReading... Writing... read, 1814 invalid lines ignored. Done.
[Bearbeiten] 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 ausgeführt werden soll * cowpatty weist auf eine cowpatty tabelle * cowexportoftest ist der Dateiname. Einer pro Zeile.
Das System Antwortet:
importReading header... Reading... Updating references... Writing...
[Bearbeiten] Aircrack-ng Verwendungs Beispiele
Mit der Datenbank kann das WPA/WPA2 cracken unter aircrack-ng enorm beschleunigt werden. Um die Tabellen verwenden zu können, muss bei aircrack-ng die -r Option angegeben werden.
Gib dazu folgendes in die Konsole 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 können auch benutzt werden.
[Bearbeiten] Nützliche Tips
Teste das Tool selbst:
* 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.
* Ueberprüfe 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 ]
[Bearbeiten] Fehlerbekämpfung
[Bearbeiten] Airolib-ng aktivieren
Airolib-ng wird nicht standardmäßig kompiliert. Um airolib-ng nutzen zu können, muss beim Kompilieren folgender Parameter angegeben werden: make SQLITE=true make sqlite=true install
[Bearbeiten] Kompilierungs Fehler
Hier wird nur ein bestimmter Kompilierungsfehler mit der Aircrack-ng Version 1.0 beschrieben. SQLite muss Version 3.3.13 oder höher sein! Folgenden Kompilierungsfehler erhält 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
[Bearbeiten] Wann wird der SQLite patch gebraucht?
Der SQLite-Patch, welcher in den aircrack-ng Sourcecode inkludiert ist, wird nur bei einer Kompilierung unter Windows benötigt. Unter Windows müssen bestimmte Elemente entfernt werden, welche für das Kompilieren nicht benötigt werden.
Das wird nicht für die Linux Installation benötigt.
[Bearbeiten] Airolib-ng kann die Datenbank nicht öffnen oder eine erstellen
Nur unter Windows funktioniet das Öffnen oder Erstellen von Datenbanken nicht, wenn spezielle Buchstaben im Ordnernamen benützt werden wie z.B. 'ç', 'é', 'è', 'à', ... Die Lösung liegt darin, airolib-ng und seine Datenbank in einen Ordner zu verschieben, ohne eines dieser Sonderzeichen.
[Bearbeiten] "invalid lines ignored" Fehlermeldung
Dieser Fehler kann beim Importieren von Passwörtern oder ESSID's auftreten. Der Fehler tritt auf, wenn eine ungültige Länge von Passwörtern oder ESSID's vorhanden sind.
Gültige Längen sind:
* das Passwort muss eine Länge von 8 bis 63 Zeichen besitzen * ESSID's müssen eine Länge von 1 bis 32 Zeichen aufweisen
[Bearbeiten] "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.