Categories:

WLAN mit Wireshark entschlüsseln geht nicht? Troubleshooting-Guide von Fehlern mit 6 Lösungen.

Veröffentlicht von empy
Lesezeit: 8 Minuten

Das Entschlüsseln des eigenen WLANs mit Wireshark ist ein Kinderspiel, da man alle notwendigen Informationen (SSID, Pre-Shared Key und 4-Way-Handshake) jederzeit zur Hand hat. Dennoch kommt es manchmal zu Problemen oder Fehlern bei der Entschlüsselung des eigenen WLANs. Was ihr dann tun könnt, habe ich euch in folgenden Antworten zusammengefasst.

1. Lösung: In Wireshark die WPA-PSK eingeben (nicht nur das WPA-PWD)

Wireshark benötigt zur Entschlüsselung unter anderem die SSID und den Pre-shared Key eures eigenen WLAN-Netzwerks. In einigen Fällen habe ich erlebt, dass Wireshark trotz der Eingabe des Pre-Shared Keys die Data Frames nicht entschlüsseln kann.

Deshalb bietet Wireshark eine Möglichkeit, den 256-bit gehashten Pre-shared Key, welcher zur Ableitung der Session Keys pro Endgerät benötigt wird, direkt einzugeben. Auf der offiziellen Website von Wireshark befindet sich ein Tool, das den 256-bit-Key erzeugen kann.

Gebt dort sowohl eure SSID und euren PSK ein. Drückt dann auf „Generate PSK“ und lasst euch den Key berechnen. Die Umrechnung geschieht mit JavaScript.

Nachdem ihr den Key berechnet habt, kopiert ihn und fügt ihn in Wireshark ein. Geht dazu zunächst vor, wie im Artikel zur Entschlüsselung der Data Frames im eigenen WLAN. Im Dialogfeld fügt ihr einen weiteren Entschlüsselungseintrag hinzu. Diesmal wählt ihr aber anstatt wpa-pwd den Eintrag wpa-psk aus. Gebt dann den 256-bit-Key aus dem Generator ein, bestätigt die Eingaben und prüft, ob die Entschlüsselung funktioniert.

256-bit-Key in Wireshark hinzufügen.

Übrigens: Habt ihr spezielle Sonderzeichen in SSID oder PSK, müsst ihr die Werte vor Eingabe in Wireshark entsprechend kodieren.

Nicht kodiertKodiert
wlan blog:wlb ssid decryptedwlan%20blog:wlb%20ssid%20decrypted
Kodierungsbeispiel

2. Lösung: Ihr müsst den 4-Way-Handshake vollständig erfassen

Unsicherheit entsteht oft, wenn in Wireshark bereits wpa-pwd und wpa-psk eingegeben wurden und die Entschlüsselung trotzdem nicht funktioniert. Oft wird einfach vergessen, den 4-Way-Handshake zu erfassen. Im eigenen WLAN ist das sehr einfach.

Zunächst möchte ich euch zeigen, wie der 4-Way-Handshake in Wireshark angezeigt werden kann. Am besten ihr verwendet einen Display-Filter dazu.

eapol
4-Way-Handshake mit Display-Filter in Wireshark herausfiltern.

Achtet darauf, dass der Handshake zu dem Endgerät passt, dessen Verbindung ihr analysieren wollt. Nutzt dazu die Spalten Source und Destination. WLAN ist so gebaut, dass zwar jedes Endgerät die gleiche SSID und Pre-Shared Key nutzt, beim Verbindungsaufbau wird jedoch jede Verbindung zwischen Endgerät und Access Point individuell verschlüsselt. Dazu werden mit Hilfe des Handshakes pro Endgerät individuelle Session Keys erzeugt, sodass ein Endgerät nicht die Daten eines anderen Endgerätes auslesen kann.

Pro gerät muss der Handshake vollständig gecaptured sein. Das bedeutet, es müssen alle vier Frames im Mitschnitt vorhanden sein (siehe Bild). Sobald eines dieser vier Frames fehlt, kann Wireshark den Datenstrom nicht entschlüsseln.

Einen 4-Way-Handshake könnt ihr manuell auslösen. Trennt noch während der Aufnahme in Wireshark die WLAN-Verbindung zum Endgerät, das ihr analysieren wollt. Verbindet euch dann wieder mit dem WLAN. Wireshark sollte euch dann die vier Pakete des Handshakes auflisten. Sollten nicht alle vier Frames vorliegen, wiederholt den Vorgang nach einer kurzen Pause so lange, bis ihr alle Frames mitgeschnitten habt.

Vergesst nicht, dass die Data Frames erst ab dem Zeitpunkt entschlüsselt werden, ab dem bei Wireshark sowohl die Entschlüsselungsinformationen (siehe Lösung 1) als auch der 4-Way-Handshake vorliegen. Die Entschlüsselung erfolgt nicht rückwirkend.

3. Lösung: Die 802.11-wireless-LAN-Einstellungen in Wireshark sind falsch

Wenn Wireshark das eigene WLAN entschlüsseln soll, gibt es noch weitere Einstellungen, die die Entschlüsselung beeinflussen. Ihr findet all diese Einstellungen in einem Dialogfenster, dass ihr bereits kennen gelernt habt, als ihr den WPA-Schlüssel eingetragen habt („Einstellungen -> Protocols -> IEEE 802.11“).

Wireshark-Einstellungen für IEEE 802.11 Frames.

Offensichtlich wichtig ist die Option „Enable decryption“. Hier brauche ich nichts zu ergänzen, zumal die Funktion standartmäßig aktiviert ist.

Spannender sind die Optionen „Assume Packets Have FCS“ und „Ignore the Protection bit“. Je nach verwendetem WLAN-Treiber eures Adapters, den ihr für das Packet Capture verwendet, werden die Frames unterschiedlich erfasst. Spielt einfach mit den Optionen herum und prüft nach verändern jedes Mal, ob sich das Ergebnis verändert und die Data Frames entschlüsselt werden.

4. Lösung: Versucht es mit airdecap-ng

Wenn es mit Wireshark, dem PSK und dem 4-Way-Handshake partout nicht klappen will, könnt ihr die Alternative airdecap-ng versuchen.

Das Tool ist recht zuverlässig, was die Entschlüsselung von Paketmitschnitten im PCAP-Format angeht. Bevor es losgeht, müsst ihr die zu entschlüsselnde Datei in Wireshark öffnen und im Format *.pcap abspeichern. Leider kann airdecap-ng eben nur mit *.pcap-Dateien umgehen. Mit *.pcapng-Dateien, welche mittlerweile bei Wireshark standardmäßig eingesetzt werden, funktioniert es leider nicht.

Öffnet also die Linux-Konsole und nutzt folgenden Befehl:

sudo airdecap-ng -l -e 'decryption_wlan' -p wlanblog123 /home/empy/Desktop/test.pcap

Der Parameter „-l“ sorgt dafür, dass die 802.11-Header nicht aus dem Mitschnitt entfernt werden. Ich lasse die Header gerne ungelöscht, aber wenn ihr sie entfernt haben möchtet, lasst den Parameter einfach weg. Mit „-e ‚wlan_name'“ legt ihr fest, welche Paketdaten entschlüsseln werden sollen. Der Parameter „-p wlanpasswort“ definiert den Pre-shared Key, welcher zur Entschlüsselung verwendet werden soll. Abschließend wird der Pfad „/pfad/zur/datei.pcap“ zur Datei angegeben, die verarbeitet werden soll. In das gleiche Verzeichnis legt airdecap-ng dann die entschlüsselte Datei ab. Diese erkennt ihr an dem Suffix „*-dec.pcap“.

Airdecap-ng in Aktion. Erfolg!

Spannend an airdecap-ng ist, dass es auch dann mit der Entschlüsselung klarkommt, wenn der 4-Way-Handshake unvollständig ist. Im besten Fall habt ihr alle vier Frames, das Programm schafft die Entschlüsselung laut Entwickler aber auch, wenn nur Frames 2 und 3 oder Frames 3 und 4 vorliegen.

Bei mir stellt sich allerdings kein Erfolg ein, wenn nur Frames 3 und 4 vorliegen. Keine Probleme hatte ich dagegen, wenn nur Frames 2 und 3 des 4-Way-Handshakes vorliegen.

5. Lösung: Beim Packet Capture verwendet ihr einen falschen Adapter oder er ist falsch konfiguriert

Wenn die Lösungen 1, 2, 3 und 4 nicht zum Erfolg führten, deutet alles auf ein Problem mit dem WLAN-Adapter hin, mit dem das Packet Capturing durchgeführt wurde.

Hardware muss kompatibel sein

Stellt sicher, dass der WLAN-Adapter hardwareseitig zum Endgerät und zum Access Point passt. Werden die Data Frames zum Beispiel im 5-GHz-Band mit 80-MHz-Kanälen übertragen, euer Adapter kann aber nur 40 MHz, dann können die Frames nicht vollständig mitgeschnitten werden. Wireshark kann sie demzufolge auch nicht entschlüsseln. Dann müsst ihr in einen besseren Adapter investieren. Lasst euch nicht Verwirren: Es kann durchaus sein, dass ich Management Frames und Control Frames sehen könnt, die Data Frame aber fehlen oder unvollständig sind. Das liegt daran, wie zum Beispiel Management Frames im WLAN übertragen werden. Es bedeutet nicht automatisch, dass ihr auch die Data Frames korrekt empfangt!

Unter Linux könnt ihr mit „iw list“ die Spezifikationen zu eurem angeschlossenen WLAN-Adapter ansehen.

iw list

Wichtige Spezifikationen bei der Auswahl des WLAN-Adapters sind: Monitoring Mode, Frequenzen und Bänder, Kanalbreiten, Guard Interval, Spatial Streams, MCS (Modulation und Coding Scheme), WLAN-Standard, Data Rate, WMM und Beam Forming. Achtet darauf, dass die Spezifikationen zu euren Endgeräten passen. Ich nutze gern Hardware von Alfa Networks, zum Beispiel den AWUS1900 oder den AWUS036ACH.

Monitor Mode muss nutzbar sein

Wenn euer WLAN-Adapter keinen Monitor Mode beherrscht, könnt ihr nur die Pakete auslesen, die an euren Computer adressiert sind. Das sieht dann aus wie auf dem folgenden Bild.

WLAN Packet Capturing, wenn Monitor Mode nicht funktioniert.

Der Adapter zeichnet dann zwar Frames auf, jedoch sind dies keine Frames mit 802.11-Header und damit genau genommen keine WLAN-Frames. Der Treiber des WLAN-Adapters hat sie bereits umgewandelt. Zudem sind keine Management Frames und Control Frames erkennbar. Hier gibt es also nichts zum Entschlüsseln für Wireshark.

Richtiger Kanal muss eingestellt sein

Wenn die Hardware kompatibel ist und der Monitor Mode damit funktioniert, dann ist es wichtig, den WLAN-Adapter softwareseitig korrekt zu konfigurieren. Die Konfiguration muss zu den ausgehandelten Funkeigenschaften von Access Point und Endgerät passen, deren Verbindung entschlüsselt werden soll.

Am einfachsten legt ihr Kanal und Kanalbreite mit airodump-ng fest. Es existieren aber noch weitere Möglichkeiten, zum Beispiel mit „iw“, mit „ip link und iwconfig“, mit „airmon-ng“ oder ihr nutzt Tools wie Airgeddon.

sudo airmon-ng check kill
sudo airodump-ng wlan0 -c 6 --ht40+ 

„-c 6“ legt den Kanal fest, auf dem Endgerät und Access Point funken. „–ht40+“ definiert die Kanalbreite auf 40 MHz (Sekundärkanal liegt dann über dem Primärkanal, also auf Kanal 10). Ihr könnt „–ht40+“ auch weglassen oder durch „–ht40-“ und „–ht20“ ersetzen. Je nach Anwendungsfall eben.

Legt euch vor der Analyse einer Verbindung unbedingt auf den richtigen Kanal fest. Nur so könnt ihr alle Pakete erfassen. Channel Hopping, wie es zum Beispiel airodump-ng anbietet (wenn ihr den Parameter -c nicht verwendet) zeigt euch zwar Pakete von verschiedenen Kanälen an, allerdings nie alle. Ohne den Parameter hüpft airodump-ng durch die Kanäle 1, 6 und 11. Ihr hättet dann zwar die Pakete aus diesen drei Kanälen vorliegen, jeweils aber nur zu 33 %. 66 % pro Kanal würden verloren gehen. Das eignet sich eher zur Beobachtung benachbarter WLANs.

6. Lösung: Bei der Aufnahme der Packets seid ihr zu nah am Access Point. Oder zu weit davon entfernt.

Es ist wichtig, von welchem physischen Ort aus ihr das Packet Capturing durchführt. Im Gegensatz zu einer Kabelverbindung nutzen Funkwellen kein abgeschirmtes Medium, vielmehr bewegen sich elektromagnetische Wellen durch Raum und Zeit.

Wenn ihr die Pakete zwischen Endgerät und Access Point abfangen und mit Wireshark entschlüsseln wollt, dann stellt sicher, dass sich euer WLAN-Adapter irgendwo zwischen beiden WLAN-Teilnehmern befindet, optimalerweise etwa in der Mitte.

Der WLAN-Adapter kann nur mitschneiden, was er im Sinne seines eigenen elektromagnetischen Umfeldes empfangen kann. Nur was aufgefangen wird, kann von Wireshark später entschlüsselt werden. Dazu muss der Mitschnitt möglichst frei von elektromagnetischen Störungen sein. Während Endgerät und Access Point gut mit Störungen und Interferenzen umgehen können, indem sie betroffene Pakete erneut anfordern (durch Auslassen des entsprechenden ACK-Frames), ist ein nicht lesbares Frame am WLAN-Adapter nicht entschlüsselbar. Denn der WLAN-Adapter hat diese Möglichkeit der erneuten Anforderung von Paketen nicht, schließlich ist er nicht Teil der aktiven Kommunikation und darf sich nicht einmischen.

Es erklärt ich daher von selbst, dass der WLAN-Adapter nicht zu weit von beiden Endgeräten entfernt sein darf. Wusstet ihr aber, dass der WLAN-Adapter auch nicht zu nah an einem der beiden Funkteilnehmer lauschen sollte?

Ist das empfangene Funksignal zu stark, kann das am Empfänger zu Problemen führen. Der Empfänger ist die erste aktive Einheit nach Antenne und Antennenkabel und ist für die Demodulation der elektromagnetischen Signale zuständig. Die Schaltkreise der WLAN-Empfänger sind für typische Signalstärken ausgelegt. Übersteigen die Signalstärken die Möglichkeiten des Empfängers, kann das Signal nicht mehr ohne Verzerrung ausgewertet werden. Ein

Beispiel: Habt ihr schon mal ein Handy-Video im Club gemacht, wo die Musik so schön laut ist? Oder eine Aufnahme vom letzten Konzert? Je nach Smartphone, wenn ihr euch das am nächsten Tag anschaut, werdet ihr wenig Freude am verzerrten Ton der Aufnahme haben. Denn nicht jedes Handy-Mikrofon kann mit derart hohen Signalpegeln umgehen und einen klaren Ton aufzeichnen. Ganz ähnlich ist es beim WLAN. In der Praxis kann es bei Signalpegeln über -40 dBm dann zu einem Anstieg der Fehler-Rate kommen. Im normalen WLAN-Betrieb werden dann betroffene Pakete erneut angefordert (bzw. erneut gesendet, da das ACK-Frame ausbleibt). Während eines Paketmitschnitts durch einem an der Kommunikation unbeteiligten WLAN-Adapter im Monitoring Mode ist so ein gestörtes Paket aber unwiederbringlich verloren.

Optimale Signalstärke beim Packet Capturing über WLAN: Zwischen -70 dBm und -50 dBm.

Habt also stets die Signalpegel der empfangenen Pakete während des Mitschnitts im Blick. Legt dazu eine neue Spalte mit dem Namen „Signal Strength“ an und nutzt folgenden Filter. Optimale Werte liegen zwischen -70 dBm und – 50 dBm.

wlan_radio.signal_dbm