Einleitung
In diesem Dokument wird die Entschlüsselung von Over-the-Air Packet Captures für 802.1X-WLANs mithilfe der auf dem Catalyst 9800 WLC verfügbaren Tools zur Fehlerbehebung beschrieben.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
- So konfigurieren Sie ein 802.1X-WLAN im Catalyst 9800 WLC
- Aufnahme radioaktiver Spuren mit aktiviertem bedingtem Debugging im Catalyst 9800 WLC
- Übernahme von Over-the-Air-Paketerfassungen über einen Access Point im Sniffer-Modus oder ein Macbook mit dem Wireless-Diagnosetool
Verwendete Komponenten
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
- Catalyst 9800-L WLC, Cisco IOS® XE Cupertino 17.9.3
- Catalyst 9130AX Access Point im Sniffer-Modus
- Cisco ISE Version 3.3
- Wireshark 4.0.8
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Hintergrundinformationen
Nachdem eine Identität über EAP+8021X validiert wurde, wird der Wireless-Datenverkehr mit dem Pairwise Transient Key (PTK) verschlüsselt, der aus dem Handshake zwischen dem Supplicant und dem Authentifikator generiert wird. Dabei wird der Pairwise Master Key (PMK) zur Berechnung verwendet. Diese PMK wird vom Master Session Key (MSK) abgeleitet. Das MSK ist in den Attributwertpaaren der RADIUS Access-Accept-Nachricht enthalten (verschlüsselt mit dem RADIUS Shared Secret). Daher kann der Datenverkehr bei einer Over-the-Air-Paketerfassung nicht transparent angezeigt werden, selbst wenn der Vier-Wege-Handshake von einem Drittanbieter abgefangen wird.
Normalerweise umfasst die Erzeugung des PMK die Paketerfassung im kabelgebundenen Netzwerk, die Kenntnis des gemeinsamen geheimen RADIUS-Schlüssels und eine Codierung, um die gewünschten Werte zu extrahieren. Bei dieser Methode wird stattdessen eines der Tools zur Fehlerbehebung auf dem Catalyst 9800 WLC (Radioactive Traces) verwendet, um die MSK zu erhalten. Diese kann dann in jedem bekannten Paketanalyse-Tool wie Wireshark verwendet werden.
Hinweis: Dieses Verfahren funktioniert nur bei WPA2, da die zur Berechnung der paarweisen Übergangsschlüssel (Pairwise Transient Keys, PTK) erforderlichen Informationen über den 4-Wege-Handshake per Funk ausgetauscht werden. Stattdessen wird in WPA3 die gleichzeitige Authentifizierung von Gleichen (SAE) durch den so genannten Dragonfly-Handshake durchgeführt.
Konfigurieren
Schritt 1: Radioaktive Spur des interessierenden Endpunkts starten
Gehen Sie auf Ihrem Catalyst 9800 WLC zu Troubleshooting > Radioactive Traces, und klicken Sie auf die Schaltfläche Add, um die MAC-Adresse des Geräts einzugeben, dessen Datenverkehr entschlüsselt werden soll.
MAC-Adresse zur Liste der radioaktiven Spuren hinzugefügt
Klicken Sie nach dem Hinzufügen auf die Schaltfläche Start oben in der Liste, um Bedingtes Debuggen zu aktivieren. Dadurch können Sie die Informationen sehen, die auf der Datenebene ausgetauscht werden (hier ist das MSK).
Gerät wurde der Liste radioaktiver Spuren mit aktiviertem bedingtem Debugging hinzugefügt.
Schritt 2: Erhalten einer Over-the-Air-Paketerfassung
Starten Sie die Over-the-Air-Paketerfassung, und verbinden Sie Ihren Endpunkt mit dem 802.1X-WLAN.
Sie können diese Over-the-Air-Paketerfassung entweder mit einem Access Point im Sniffer-Modus oder mit einem Macbook mit dem integrierten Wireless Diagnostics-Tool erhalten.
Hinweis: Stellen Sie sicher, dass die Paketerfassung alle 802.11-Frames enthält. Am wichtigsten ist, dass der Vier-Wege-Handshake während des Vorgangs aufgefangen wird.
Beobachten Sie, wie der gesamte Datenverkehr nach dem Vier-Wege-Handshake (Pakete 475 bis 478) verschlüsselt wird.
Verschlüsselter Wireless-Datenverkehr
Schritt 3: Generieren und Exportieren der radioaktiven Spur des Geräts
Klicken Sie auf derselben Seite wie in Schritt 1 auf die grüne Schaltfläche Generate (Generieren), sobald Sie den Wireless-Datenverkehr erfasst haben.
Wählen Sie im Zeitintervall-Popup-Fenster den Zeitrahmen aus, der Ihren Anforderungen entspricht. Interne Protokolle müssen hier nicht aktiviert werden.
Klicken Sie auf Auf Gerät anwenden, um die radioaktive Spur zu generieren.
Zeitintervall für RA Trace.
Sobald die Radioactive Trace fertig ist, wird neben dem Namen der Trace-Datei ein Download-Symbol angezeigt. Klicken Sie darauf, um Ihre Radioactive Trace herunterzuladen.
Radioactive Trace zum Download verfügbar.
Schritt 4: MSK aus der radioaktiven Spur abrufen
Öffnen Sie die heruntergeladene Radioactive Trace-Datei und suchen Sie nach dem eap-msk-Attribut nach der Access-Accept-Nachricht.
2022/09/23 20:00:08.646494126 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: Received from id 1812/143 172.16.5.112:0, Access-Accept, len 289
2022/09/23 20:00:08.646504952 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: authenticator 8b 11 23 7f 6a 37 4c 9a - dd e0 26 88 56 6a 82 f5
2022/09/23 20:00:08.646511532 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: User-Name [1] 7 "Alice"
2022/09/23 20:00:08.646516250 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: Class [25] 55 ...
2022/09/23 20:00:08.646566556 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: EAP-Message [79] 6 ...
2022/09/23 20:00:08.646577756 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: Message-Authenticator[80] 18 ...
2022/09/23 20:00:08.646601246 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: EAP-Key-Name [102] 67 *
2022/09/23 20:00:08.646610188 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: Vendor, Microsoft [26] 58
2022/09/23 20:00:08.646614262 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: MS-MPPE-Send-Key [16] 52 *
2022/09/23 20:00:08.646622868 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: Vendor, Microsoft [26] 58
2022/09/23 20:00:08.646642158 {wncd_x_R0-0}{1}: [radius] [15612]: (info): RADIUS: MS-MPPE-Recv-Key [17] 52 *
2022/09/23 20:00:08.646668839 {wncd_x_R0-0}{1}: [radius] [15612]: (info): Valid Response Packet, Free the identifier
2022/09/23 20:00:08.646843647 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0093.3794.2730:capwap_9000000c] Received an EAP Success
2022/09/23 20:00:08.646878921 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0093.3794.2730:capwap_9000000c] Entering idle state
2022/09/23 20:00:08.646884283 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0093.3794.2730:capwap_9000000c] Posting AUTH_SUCCESS on Client
2022/09/23 20:00:08.646913535 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0000.0000.0000:capwap_9000000c] Setting EAPOL eth-type to 0x888e, destination mac to 0093.3794.2730
2022/09/23 20:00:08.646914875 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0000.0000.0000:capwap_9000000c] Sending out EAPOL packet
2022/09/23 20:00:08.646996798 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0093.3794.2730:capwap_9000000c] Sent EAPOL packet - Version : 3,EAPOL Type : EAP, Payload Length : 4, EAP-Type = 0
2022/09/23 20:00:08.646998966 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0093.3794.2730:capwap_9000000c] EAP Packet - SUCCESS, ID : 0x95
2022/09/23 20:00:08.647000954 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0000.0000.0000:unknown] Pkt body: 03 95 00 04
2022/09/23 20:00:08.647004108 {wncd_x_R0-0}{1}: [dot1x] [15612]: (info): [0093.3794.2730:capwap_9000000c] EAPOL packet sent to client
2022/09/23 20:00:08.647008702 {wncd_x_R0-0}{1}: [auth-mgr] [15612]: (info): [0093.3794.2730:capwap_9000000c] Authc success from Dot1X, Auth event success
2022/09/23 20:00:08.647025898 {wncd_x_R0-0}{1}: [auth-mgr] [15612]: (info): [0093.3794.2730:capwap_9000000c] Raised event APPLY_USER_PROFILE (14)
2022/09/23 20:00:08.647033682 {wncd_x_R0-0}{1}: [auth-mgr] [15612]: (info): [0093.3794.2730:capwap_9000000c] Raised event RX_METHOD_AUTHC_SUCCESS (3)
2022/09/23 20:00:08.647101204 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : username 0 "Alice"
2022/09/23 20:00:08.647115452 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : class 0 43 41 43 53 3a 30 42 30 35 31 30 41 43 30 30 30 30 30 30 31 41 36 42 45 46 33 34 37 35 3a 69 73 65 6c 61 62 2d 75 77 75 2f 34 38 34 36 32 34 34 35 31 2f 33 38
2022/09/23 20:00:08.647116846 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : EAP-Message 0 <hidden>
2022/09/23 20:00:08.647118074 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : Message-Authenticator 0 <hidden>
2022/09/23 20:00:08.647119674 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : EAP-session-id 0 "??O×.?Ê?$2V?Öï?<úiUˆú ”?ó>“>ƒ?ôE9Æ#1oÊ0ÖÕM°8p’ŠÀ?1ò¿–ã‡|¥?–p”½"
2022/09/23 20:00:08.647128748 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : MS-MPPE-Send-Key 0 c7 22 cb f0 93 31 02 a4 1b b0 2f 0a 76 9b b2 23 81 0c b1 e1 4f b6 37 2e 8e 33 78 22 3d c8 1d 7d
2022/09/23 20:00:08.647137606 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : MS-MPPE-Recv-Key 0 fb c1 c3 f8 2c 13 66 6e 4d dc 26 b8 79 7e 89 83 f0 12 54 73 cb 61 51 da fa af 02 bf 96 87 67 4c
2022/09/23 20:00:08.647139194 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : dnis 0 "A4-9B-CD-AA-18-80"
2022/09/23 20:00:08.647140612 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : formatted-clid 0 "00-93-37-94-27-30"
2022/09/23 20:00:08.647141990 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : audit-session-id 0 "0B0510AC0000001A6BEF3475"
2022/09/23 20:00:08.647158674 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : eap-msk 0 fb c1 c3 f8 2c 13 66 6e 4d dc 26 b8 79 7e 89 83 f0 12 54 73 cb 61 51 da fa af 02 bf 96 87 67 4c c7 22 cb f0 93 31 02 a4 1b b0 2f 0a 76 9b b2 23 81 0c b1 e1 4f b6 37 2e 8e 33 78 22 3d c8 1d 7d
2022/09/23 20:00:08.647159912 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : eap-emsk 0
2022/09/23 20:00:08.647161666 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : method 0 0 [dot1x]
2022/09/23 20:00:08.647164452 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : clid-mac-addr 0 00 93 37 94 27 30
2022/09/23 20:00:08.647166150 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : intf-id 0 2415919116 (0x9000000c)
2022/09/23 20:00:08.647202312 {wncd_x_R0-0}{1}: [auth-mgr] [15612]: (info): [0093.3794.2730:capwap_9000000c] Method dot1x changing state from 'Running' to 'Authc Success
Der Wert, auf den die eap-msk-Zeichenfolge folgt, ist MSK. Kopieren Sie diese Datei, und speichern Sie sie, um sie im nächsten Schritt zu verwenden.
2022/09/23 20:00:08.647158674 {wncd_x_R0-0}{1}: [aaa-attr-inf] [15612]: (info): Applying Attribute : eap-msk 0 fb c1 c3 f8 2c 13 66 6e 4d dc 26 b8 79 7e 89 83 f0 12 54 73 cb 61 51 da fa af 02 bf 96 87 67 4c c7 22 cb f0 93 31 02 a4 1b b0 2f 0a 76 9b b2 23 81 0c b1 e1 4f b6 37 2e 8e 33 78 22 3d c8 1d 7d
Schritt 5: MSK als IEEE 802.11-Entschlüsselungsschlüssel in Wireshark hinzufügen
Gehen Sie auf Wireshark zu Wireshark > Preferences > Protocols > IEEE 802.11.
Aktivieren Sie das Kontrollkästchen "Entschlüsselung aktivieren", und wählen Sie dann Bearbeiten direkt neben Entschlüsselungsschlüssel aus.
Klicken Sie auf die "+"-Schaltfläche am unteren Rand, um einen neuen Entschlüsselungsschlüssel hinzuzufügen, und wählen Sie msk als Schlüsseltyp aus.
Fügen Sie den in Schritt 4 erhaltenen eap-msk-Wert (ohne Leerzeichen) ein.
Klicken Sie abschließend auf OK, um das Fenster Entschlüsselungsschlüssel zu schließen, und klicken Sie dann ebenfalls auf OK, um das Fenster Einstellungen zu schließen und den Entschlüsselungsschlüssel anzuwenden.
Entschlüsselungsschlüssel wurde den Wireshark-Einstellungen hinzugefügt.
Schritt 6: Analyse des entschlüsselten 802.1X-Datenverkehrs
Beobachten Sie, wie der Wireless-Datenverkehr jetzt sichtbar ist. Im Screenshot sehen Sie ARP-Datenverkehr (Pakete 482 und 484), DNS-Abfragen und -Antworten (Pakete 487 und 488), ICMP-Datenverkehr (Pakete 491 bis 497) und sogar den Start des Drei-Wege-Handshakes für eine TCP-Sitzung (Paket 507).
Entschlüsselter Wireless-Datenverkehr