Introduzione
In questo documento viene descritto come decrittografare le acquisizioni di pacchetti via etere per WLAN 802.1X con gli strumenti di risoluzione dei problemi disponibili sul WLC di Catalyst 9800.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Come configurare una WLAN 802.1X in Catalyst 9800 WLC
- Come utilizzare le tracce radioattive con il debug condizionale abilitato nel WLC di Catalyst 9800
- Come acquisire pacchetti over-the-air utilizzando un access point in modalità sniffer o un Macbook con il suo strumento di diagnostica wireless
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Catalyst 9800-L WLC, Cisco IOS® XE Cupertino 17.9.3
- Access point Catalyst 9130AXE in modalità sniffer
- Cisco ISE versione 3.3
- Wireshark 4.0.8
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Una volta convalidata un'identità tramite EAP+8021X, il traffico wireless viene crittografato utilizzando la chiave temporanea Pairwise (PTK) generata dall'handshake tra il supplicant e l'autenticatore, che utilizza la chiave master Pairwise (PMK) per il calcolo. Questa chiave PMK è derivata dalla chiave di sessione master (MSK). Il codice MSK è incluso nelle coppie valore attributo del messaggio di accettazione dell'accesso RADIUS (crittografato utilizzando il segreto condiviso RADIUS). Di conseguenza, il traffico non può essere visto in modo trasparente in un'acquisizione di pacchetti over-the-air, anche se l'handshake a quattro vie viene intercettato da una terza parte.
In genere, la generazione della chiave PMK implica l'acquisizione dei pacchetti nella rete cablata, la conoscenza del segreto condiviso RADIUS e una certa codifica per estrarre i valori di interesse. Con questo metodo, uno degli strumenti disponibili per la risoluzione dei problemi sul Catalyst 9800 WLC (Radioactive Traces) viene usato per ottenere il MSK, che può essere usato in qualsiasi strumento conosciuto di analisi dei pacchetti, ad esempio Wireshark.
Nota: questa procedura funziona solo per WPA2, poiché le informazioni necessarie per calcolare le chiavi transitorie Pairwise (PTK) vengono scambiate via etere tramite handshake a 4 vie. In WPA3, invece, l'autenticazione simultanea di Equals (SAE) viene eseguita attraverso quello che è noto come handshake Dragonfly.
Configurazione
Passaggio 1. Avvia la traccia radioattiva dell'endpoint di interesse
Sul proprio Catalyst 9800 WLC, andare a Risoluzione dei problemi > Tracce radioattive e fare clic sul pulsante Add per digitare l'indirizzo MAC del dispositivo il cui traffico deve essere decriptato.
Indirizzo MAC aggiunto all'elenco delle tracce radioattive
Dopo averlo aggiunto, accertarsi di fare clic sul pulsante Start all'inizio dell'elenco per abilitare il debug condizionale. In questo modo è possibile visualizzare le informazioni scambiate nel data plane (il codice MSK si trova qui).
Dispositivo aggiunto all'elenco di tracce radioattive con debug condizionale abilitato.
Passaggio 2. Acquisizione di pacchetti via etere
Avviare l'acquisizione dei pacchetti via etere e collegare l'endpoint alla WLAN 802.1X.
È possibile acquisire questo pacchetto over-the-air utilizzando un Access Point in modalità Sniffer, o con un Macbook utilizzando lo strumento integrato Wireless Diagnostics.
Nota: assicurarsi che l'acquisizione del pacchetto includa tutti i frame 802.11. Ma soprattutto, è fondamentale che la stretta di mano a quattro vie venga acquisita durante il processo.
Osservare come tutto il traffico che supera l'handshake a quattro vie (pacchetti da 475 a 478) è crittografato.
Traffico wireless crittografato.
Passaggio 3. Genera ed esporta la traccia radioattiva del dispositivo
Nella stessa schermata del Passaggio 1, fare clic sul pulsante verde Genera una volta acquisito il traffico wireless.
Nella finestra a comparsa Intervallo di tempo, selezionare l'intervallo di tempo che corrisponde alle proprie esigenze. Non è necessario abilitare i registri interni.
Fare clic su Applica a dispositivo per generare la traccia radioattiva.
Intervallo di tempo per la traccia RA.
Quando la traccia radioattiva è pronta, accanto al nome del file di traccia viene visualizzata un'icona di download. Fare clic su di esso per scaricare la traccia radioattiva.
Traccia radioattiva disponibile per il download.
Passaggio 4. Ottenere il codice MSK dalla traccia radioattiva
Aprire il file di traccia radioattiva scaricato e cercare l'attributo eap-msk dopo il messaggio Access-Accept.
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
Il valore seguito dalla stringa eap-msk è MSK. Copiare e salvare il file per utilizzarlo nel passaggio successivo.
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
Passaggio 5. Aggiungere MSK come chiave di decrittografia IEEE 802.11 in Wireshark
Su Wireshark, selezionare Wireshark > Preferences > Protocols > IEEE 802.11.
Selezionare la casella "Abilita decrittografia", quindi selezionare Modifica, accanto a Chiavi di decrittografia.
Fare clic sul pulsante "+" in basso per aggiungere una nuova chiave di decrittografia e selezionare msk come tipo di chiave.
Incollare il valore eap-msk ottenuto al punto 4 (senza spazi).
Infine, fare clic su OK per chiudere la finestra Chiavi di decrittografia e quindi fare clic su OK per chiudere la finestra Preferenze e applicare la chiave di decrittografia.
Chiave di decrittografia aggiunta alle preferenze di wireshark.
Passaggio 6. Analisi del traffico 802.1X decrittografato
Osservate come il traffico wireless è ora visibile. Nello screenshot, è possibile vedere il traffico ARP (pacchetti 482 e 484), le query e le risposte DNS (pacchetti 487 e 488), il traffico ICMP (pacchetti da 491 a 497) e persino l'avvio dell'handshake a tre vie per una sessione TCP (pacchetto 507).
Traffico wireless decrittografato.