Ich habe mich gefragt: Wie sicher ist eigentlich mein WLAN?
Um das herauszufinden habe ich einen Angriff ausprobiert – und war erstaunt, wie einfach (und gut) das funktioniert.
Rechtlicher Hinweis: Das Einbrechen in fremde Netzwerke ist illegal. Ich führe diesen Angriff auf mein eigenes Netzwerk aus, um dessen Sicherheitsstatus zu überprüfen.
Vorbereitung
Die Ausstattung
Ich habe den Angriff mit diesen Werkzeugen durchgeführt: Kali Linux, einem handelsüblichen Notebook, und folgendem WLAN Adapter mit Monitor-Funktion, Alfa Network AWUS036NHA https://amzn.to/37GGrDM.
Der WLAN Adapter hat gleich mehrere Vorteile:
- Als USB Gerät wiederverwendbar
- Wird über ein USB-Kabel angeschlossen und kann damit flexibel im Raum positioniert werden
- Große Antenne für hohe WLAN Leistung
- Funktioniert sofort mit Kali-Linux (keine Treiber / Einrichtung erforderlich)
Monitorfunktion starten
Kali läuft. WLAN Antenne ist angeschlossen und wurde erkannt. Soweit der Stand.
Ich führe alle weiteren Befehle als root aus, hierzu verwende ich sudo -i (wer das nicht möchte muss vor jeden Befehl sudo schreiben).
Danach schauen wir uns mit airmon-ng die Netzwerkgeräte an.
$ sudo -i
$ airmon-ng
Es gibt also ein Netzwerkgerät (wlan0). Wir starten den Monitor auf diesem Gerät. Achtung: Die Netzwerkkarte muss „monitor“ explizit unterstützen!
$ airmon-ng start wlan0
Ein erneuter Aufruf von airmon-ng zeigt uns, dass der Monitor gestartet wurde. Erkennbar ist dies an dem Namen: wlan0mon
Diese Bezeichnung merken, brauch wir ab jetzt ständig. Der Vollständigkeit halber, so wird der Monitor wieder beendet:
$ airmon-ng stop wlan0mon
Im WLAN umsehen
Nachdem wir nun die Monitor-Funktion aktiviert haben, steht uns eine detailierte Sicht ins örtliche WLAN zur Verfügung. Das allein kann schon sehr interessant sein. So geht’s:
$ airodump-ng wlan0mon
Die Darstellung besteht aus zwei Bereichen. In der aktuellen Phase des Angriffs ist der obere Bereich wichtig. Wir sehen alle verfügbaren / erreichbaren WLAN Netzwerke, bzw. deren Endpunkte. So kann ein Netzwerkname (ESSID) häufiger vorkommen, wenn dieser über mehrere Accesspoints bedient wird.
Mein Ziel „yellow.net“ wird ebenfalls angezeigt. Es gibt mehrer Accesspoint, korrekt!
Notiere dir die MAC Adresse (links im Bild) und den Channel (CH) des WLANs, welches du angreifen möchtest. Ich wähle den ersten Eintrag. STRG + C beendet airodump-ng.
Der Angriff – Teil 1 – Handshake aufzeichnen
Ziel analysieren
Ab jetzt wird es ernst. Deswegen nochmals folgender Hinweis:
Das Einbrechen in fremde Netzwerke ist illegal. Ich führe diesen Angriff auf mein eigenes Netzwerk aus, um dessen Sicherheitsstatus zu überprüfen.
Wir haben uns für ein Ziel entschieden (MAC Adresse notiert) und richten nun alle Antennen auf dieses aus, indem wir folgendes ausführen:
$ airodump-ng -c 6 --bssid 98:9B:CB:XX:XX:XX -w /home/kali/caps/yellow wlan0mon
Die Parameter im Detail:
-c 6 -> Channel 6
–bssid -> MAC Adresse des Ziels
-w /home/ka… -> write -> dort legen wir das Protokoll ab
Airodump zeigt uns nun im oberen Bereich nur noch das Ziel an und überwacht exklusiv dieses. Im unteren Bereich der Anzeige sehen wir nun alle Client die gerade mit dem Ziel kommunizieren und sich in Empfangsreichweite befinden.
Nun heißt es Abwarten bis sich ein Client im Netzwerk beim Ziel authentifiziert. Das kann leider ziemlich lange dauern. So würde es dann aussehen:
Ungeduldige können das mit folgendem Angriff noch beschleunigen.
DeAuthentication Angriff durchführen
Wir warten darauf, dass sich ein Gerät authentifiziert. Das lässt sich in sofern beschleunigen, dass man gezielt ein Gerät im Zielnetz de-authentifiziert, so dass es sich danach direkt von selbst wieder authentifiziert. Wir öffnen dafür ein zweites Terminal:
$ sudo -i
$ aireplay-ng -0 2 -a 98:9B:CB:XX:XX:XX -c 14:AB:C5:XX:XX:XX wlan0mon
Die Parameter im Detail:
-0 2 -> zwei Pakete senden. Das senden von mehrere Paketen erhöht das Risiko entdeckt zu werden
-a -> AccessPoint MAC
-c -> Client MAC
Die gesendeten Datenpakate werden ggf. dazu führen, dass der Client deauthentifiziert wird und sich darauf hin neu authentifizieret.
Bei mir hat das aufs erste mal geklappt. Der Client war in diesem Fall mein Handy. Ich konnte beobachten wie die WLAN Verbindung abgebrochen ist und sofort wieder aufgebaut wurde.
In genau diesem Moment zeige airodump-ng einen aufgezeichneten WPA Handshake an. Bingo.
WPA Handshake sichern
Mit oder ohne Deauth Angriff – wir haben einen Handshake aufgezeichnet. Was machen wir damit?
Ab diesem Moment können wir die WLAN Aktivitäten einstellen. Was jetzt passiert könnte auch auf jedem anderen Computer der Welt durchgeführt werden:
Wir versuchen das Passwort zu eraten!
Aber eins nach dem anderen. Den laufenden airodump-ng Prozess beenden wir mit STRG-C. Weg damit.
Als wir airodump-ng gestartet haben, haben wir mit dem Parameter W angegeben, wo die Aufzeichnungen gespeichert werden sollen:
$ airodump-ng -c 6 --bssid 98:9B:CB:XX:XX:XX -w /home/kali/caps/yellow wlan0mon
Unter „/home/kali/caps/yellow“ finden wir einige Dateien. Ich habe inzwischen ein paar Test mehr ausgeführt, daher gibt es hier gleich 5 Aufzeichnungen zu finden.
Für uns relevant ist die letzte, die fünfte Aufzeichnung, und davon die Datei „yellow-05.cap„. Cap für capture.
Darin befindet sich der Handshake, den wir nutzen können um das Passwort zu erraten. Diese Datei sichern! Der Rest kann (für unseren Zweck) weg.
Der Angriff – Teil 2 – Passwort knacken
Was jetzt passiert ist wenig elegant. Wir probieren möglichst viele Passwörter aus. Wir raten. Mit maximaler CPU / GPU.
Wörterbuch beschaffen
Um zu raten, brauchen wir Vorschläge. Diese finden sich in Wörterbüchern, und jene widerum sind im leicht Netz zu finden, ich spare mir an dieser Stelle sowohl Empfehlung, als auch den Link. Wer Kali nutzt, findet unter /usr/share/wordlists bereits ein Wörterbuch, das rockyou.txt. Diese verwende ich in meinem Beispiel. Dafür muss das Wörterbuch entpackt werden. Wie das funktioniert setze ich als Grundwissen voraus.
Wörterbuch-Angriff durchführen
Wir haben also:
- MAC Adresse des Routers (um den Handshake zu identifizieren)
- Capture des Handshakes (Datei)
- Wörterbuch
Na dann los:
$ aircrack-ng -w /home/kali/words/kali_words.txt -a 2 -b 98:9B:CB:CB:11:27 /home/kali/caps/yellow-05.cap
Die Parameter im Detail:
-a 2 -> Angriffstyp 2 = WPA; Typ 1 wäre WEB gewesen
-b -> MAC Adresse des Routers
-w -> Wörterbuch
Und zuletzt die cap Datei.
Aircrack-ng überprüft nun jeden Eintrag des Wörtbuchs, ob dieser als Schlüssel passt. Auf meinem Notebook passiert das mit ca. 1800 Wörtern pro Sekunde. Nach etwa 90 Minuten weiß ich mehr … ich bin gespannt 🙂
Der Test kann beliebig oft mit weiteren Wörterbüchern wiederholt werden. Manche Exemplare aus dem Netz sind mehrere GB groß.
Schneller geht es mit der GPU
Wer eine leistungsstarke GPU zur Verfügung hat, der kann auch diese zur Entschlüsselung verwenden. Die Performance-Auswirkungen sind i.d.R. dramatisch! In meinem Fall waren es statt 1.800 -> 170.000 Schlüssel pro Sekunde – mit der GPU.
Um die GPU nutzen zu können, müssen wir hashcat verwenden. Aircrack-ng bietet uns freundlicherweise eine Funktion, um die CAP-Datei in das von hashcat benötigte hccapx Format zu konvertieren:
$ aircrack-ng -j yellow yellow-05.cap
Das Ergebnis ist eine yellow.hccapx Datei. Damit können wir hashcat starten:
$ hashcat -m 2500 -a 0 -D 2 yellow.hccapx /home/kali/words/kali_words.txt
Die Parameter im Detail:
-m 2500 -> Hashformat, in diesem Fall WPA
-a 0 -> Angriffstyp 0 = Wortliste, 3 = Brutforce
-D 2 -> OpenCL Device Type GPU
hccapx Datei
Wörterbuch
Hashcat ist extrem mächtig an Funktionalität. Hier hilft die Hilfe und google im Zweifel weiter: hashcat –help
Letzte Option: Brutforce-Angriff durchführen
Wenn alles versagt gibt es noch die Möglichkeit des „Brutforce“ Angriffs. Dabei handelt es sich eher um eine theoretische Option, bei der „mit roher Gewalt“ versucht wird, jeden möglichen Schlüssel zu prüfen. Dies kann Jahre dauern. Gelingt aber mit 100%iger Sicherheit.
$ hashcat -m 2500 -a 3 -D 2 yellow.hccapx
Aber wahrscheinlich wurde bis dahin der Router getauscht, der Nachbar ist umgezogen oder der WLAN Standard wurde aktualisiert 🙂
One response
[…] ist wirklich einfach. Ich habe mein eigenes WLAN angegriffen und war in weniger als einer Stunde drinnen. So kam ich dann auch auf die Idee für diesen […]