Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:airolib-ng

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.

de/airolib-ng.txt · Zuletzt geändert: 2009/07/08 14:26 von oliviersiess