WLAN (WPA2, WEP) knacken
Eines vorweg: Das WLAN des Nachbarn oder anderen zu knacken ist illegal! Es geht in diesem Artikel nur darum,
die Sicherheit des Systems aufzuzeigen und die damit verbundenen Gefahren hinzuweisen.
Früher wurden WLANs mit der WEP Verschlüsselung abgesichert. Diese lässt sich in wenigen Sekunden aushebeln und
ist somit nicht mehr sicher. Heutige Netze sind mindestens mit WPA2 gesichert. Hier ist es nicht mehr so einfach und
man ist auf das probieren der Kennwörter angewiesen. Wird also ein Schlüssel verwendet, der nicht in einer Passwortliste
zu finden ist und der entsprechend komplex ist, ist der WLAN Betreiber ziemlich sicher.
Mein Setup:
Raspberry PI
ALFA AWUS USB WLAN Adapter
Vorraussetzung:
Fertig installiertes Raspian auf dem PI
Installation Aircrack-ng
Show/Hidden bash code
apt-get update
apt-get install aircrack-ng pyrit unp
Nun sucht man sich sein eigenes Test-Wlan heraus. Für den Test könnte man auch einen einfachen Schlüssel verwenden (z.B. 1234567890).
Benötigt wird die Mac-Adresse und der Kanal. Diese sind im Code zu ersetzen.
Show/Hidden bash code
airodump-ng --channel 1 --bssid 00:11:22:33:44:55 --write wpa2-dump mon0
Jetzt kommt der wichtig Teil. Um den Key erraten zu können, benötigt man einen so genannten Handshake.
Man könnte nun einfach warten, bis sich ein neues Gerät mit dem WLAN verbindet, eines trennen und wieder verbinden, oder es auf die "harte Tour" machen ;)
Dafür einfach eine zweite Konsole öffnen und das eintippen. Wichtig auch hier wieder die MAC ersetzen.
Show/Hidden bash code
aireplay-ng --deauth 5 -a 00:11:22:33:44:55 mon0
Auf der ersten Konsole wird von airmon auch direkt angezeigt wenn ein Handshake zu Stande kam.
Man könnte nun einfach warten, bis sich ein neues Gerät mit dem WLAN verbindet, eines trennen und wieder verbinden, oder es auf die "harte Tour" machen ;)
Dafür einfach eine zweite Konsole öffnen und das eintippen. Wichtig auch hier wieder die MAC ersetzen.
Ist das geschafft gehts weiter.
Show/Hidden bash code
STRG+C
airmon-ng stop mon0
Jetzt geht es mit pyrit weiter. Hier werden die Pakete auf die Handshakes reduziert.
Nun benötigen wir eine Passwortliste. Ich habe ein Script gebaut, welches diese zusammenstellen kann. Dieses einfach in eine neue Datei einfügen (vim) und ausführbar (chmod +x) machen.
Show/Hidden bash code
#!/bin/bash
cd /home/pi
mkdir passwords && cd passwords
git init
git remote add -f origin https://github.com/danielmiessler/SecLists.git
git config core.sparseCheckout true
echo "Passwords/" >> .git/info/sparse-checkout
git pull origin master
mv /home/pi/passwords/Passwords/* /home/pi/passwords
rmdir /home/pi/passwords/Passwords
cd /home/pi/passwords
unp *
tar cvfz pwdb.tar.gz *
mv pwdb.tar.gz /home/pi/
rm -r /home/pi/passwords
echo "Passwords stored at /home/pi/passwords"
Jetzt ist unser Passwortdatenbank vorhanden und es geht los mit der Brute force Attacke.
Das kann sehr lange dauern und ich empfehle das ausführen in einem Screen.
Etwa 25 Kaffee später sollte dann im Idealfall folgendes zu lesen sein:
Aus dem ganzen Beispiel hier kann man erkennen, dass die Sicherheit hier mit dem verwendeten WLAN Kennwort steht und fällt.
Wird ein Schlüssel benutzt, der nicht in der Liste vorhanden ist, so kann der Schlüssel auch nicht geknackt werden.
Ich empfehle also immer einen Schlüssel zu erzeugen der aus mehr als nur Buchstaben und Zahlen besteht.
Die Verwendung von einem Gaming PC statt eines PIs zum knacken des Schlüssels mit pyrit macht außerdem einen gewaltigen Zeitunterschied aus,
da die Grafikkarte verwendet werden kann. Diese ist wesentlich schneller als die CPU des PIs.
Mit dem Tool "crunch" können Passwortlisten mit allen möglichen Zeichenkombinationen erzeugt werden.
6 bedeutet minimal 6 Zeichen, 10 = maximal 10 Zeichen. Dann folgen alle zu verwendeten Zeichen. Ich habe einmal angenommen,
das Passwort würde nur aus Zahlen und kleinbuchstaben bestehen. Die Ausgabe erfolgt in die crunch.txt. Diese kann für pyrit verwendet werden.
Jetzt zum Haken an der Sache:
Show/Hidden bash code
Crunch will now generate the following amount of data: 31152971736140625 bytes
29709789024 MB
29013465 GB
28333 TB
27 PB
Crunch will now generate the following number of lines: 2839681045140625
Leider wäre die Passwortdatenbank die dabei raus kommt so groß, dass ich sie nicht speichern könnte.
Dem Problem mit der Dateigröße kann man zwar noch Herr werden...
Show/Hidden bash code
crunch 16 16 1234567890abcdefghijklmopqrstuvwxyz | pyrit -r handshakes.cap -b XX:XX: -i - attack_passthrough
...aber bedenkt man, dass in den Zeichen nicht einmal Großbuchstaben berücksichtig werden,
dann hätte ich immer noch das Problem, dass die Bruteforceattacke wohl nicht mehr in diesem Leben fertig würde.
Zumindest nach aktuellen mir zur Verfügung stehender Rechenleistung.
Außerdem ist davon auszugehen, dass die meisten WLAN Keys wohl eher aus mehr Stellen bestehen würden.
Auch das zeigt mir, dass das WLAN relativ sicher ist, solange man einen Schlüssel verwendet, der aus zufälligen Zeichen besteht.
Dir hat das Projekt gefallen? Dann Unterstütze mich, damit ich weiterhin solche Projekte vorstellen kann!
