Introduction
Ce document décrit comment décrypter les captures de paquets en direct pour les WLAN 802.1X avec les outils de dépannage disponibles sur le WLC Catalyst 9800.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Comment configurer un WLAN 802.1X dans le WLC Catalyst 9800
- Comment prendre des traces radioactives avec le débogage conditionnel activé dans le WLC Catalyst 9800
- Comment effectuer des captures de paquets Over-the-Air à l'aide d'un point d'accès en mode renifleur ou d'un Macbook avec son outil de diagnostic sans fil
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- WLC Catalyst 9800-L, Cisco IOS® XE Cupertino 17.9.3
- Point d'accès Catalyst 9130AX en mode Sniffer
- Cisco ISE version 3.3
- Wireshark 4.0.8
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Une fois qu'une identité est validée via EAP+8021X, le trafic sans fil est chiffré à l'aide de la clé PTK (Pairwise Transient Key) générée à partir de la connexion entre le demandeur et l'authentificateur, qui utilise la clé PMK (Pairwise Master Key) à calculer. Cette clé PMK est dérivée de la clé de session principale (MSK). Le MSK est inclus dans les paires de valeurs d'attribut du message d'acceptation d'accès RADIUS (chiffré à l'aide du secret partagé RADIUS). Par conséquent, le trafic ne peut pas être vu de manière transparente lors d'une capture de paquets Over-the-Air, même si la connexion en quatre étapes est interceptée par un tiers.
Généralement, la génération de la clé PMK implique des captures de paquets dans le réseau câblé, la connaissance du secret partagé RADIUS et un certain codage pour extraire les valeurs d'intérêt. Au lieu de cela, avec cette méthode, l'un des outils disponibles pour dépanner le WLC (Radioactive Traces) du Catalyst 9800 est utilisé pour obtenir le MSK, qui peut ensuite être utilisé dans n'importe quel outil d'analyse de paquets bien connu, tel que Wireshark.
Remarque : cette procédure ne fonctionne que pour WPA2, car les informations nécessaires au calcul des clés PTK (Pairwise Transient Keys) sont échangées par liaison radio via la connexion en 4 étapes. Dans WPA3, l'authentification simultanée d'égaux (SAE) est effectuée par le biais de ce que l'on appelle la connexion Dragonfly.
Configurer
Étape 1. Démarrer le suivi radioactif du point d'extrémité concerné
Sur votre WLC Catalyst 9800, accédez à Troubleshooting > Radioactive Traces et cliquez sur le bouton Add pour taper l'adresse MAC du périphérique dont le trafic doit être décrypté.
Adresse MAC ajoutée à la liste des traces radioactives
Une fois que vous l'avez ajouté, assurez-vous de cliquer sur le bouton Start en haut de la liste pour activer le débogage conditionnel. Cela vous permet de voir les informations échangées dans le plan de données (le MSK est ici).
Périphérique ajouté à la liste des traces radioactives avec le débogage conditionnel activé.
Étape 2. Obtention d’une capture de paquets par liaison radio
Lancez la capture de paquets en direct et connectez votre terminal au réseau local sans fil 802.1X.
Vous pouvez obtenir cette capture de paquets Over-the-Air en utilisant un point d'accès en mode Sniffer, ou avec un Macbook en utilisant son outil intégré de diagnostic sans fil.
Remarque : assurez-vous que la capture de paquets inclut toutes les trames 802.11. Plus important encore, il est impératif que la connexion en quatre étapes soit capturée au cours du processus.
Observez comment tout le trafic passé la connexion en quatre étapes (paquets 475 à 478) est chiffré.
Trafic sans fil chiffré.
Étape 3. Générer et exporter le suivi radioactif du périphérique
Dans le même écran que l'étape 1, cliquez sur le bouton vert Generate une fois que vous avez capturé le trafic sans fil.
Dans la fenêtre contextuelle Intervalle de temps, sélectionnez le délai qui correspond à vos besoins. Il n'est pas nécessaire d'activer les journaux internes ici.
Cliquez sur Apply to Device pour générer le suivi radioactif.
Intervalle de temps pour RA Trace.
Une fois que le suivi radioactif est prêt, une icône de téléchargement s'affiche juste à côté du nom du fichier de suivi. Cliquez dessus pour télécharger votre suivi radioactif.
Radioactive Trace est disponible en téléchargement.
Étape 4. Obtenir le MSK à partir du suivi radioactif
Ouvrez le fichier de trace radioactif téléchargé et recherchez l'attribut eap-msk après le message 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
La valeur suivie de la chaîne eap-msk est le MSK. Copiez-le et enregistrez-le pour l'utiliser à l'étape suivante.
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
Étape 5. Ajoutez le MSK en tant que clé de déchiffrement IEEE 802.11 dans Wireshark
Sur Wireshark, accédez à Wireshark > Préférences > Protocoles > IEEE 802.11.
Cochez la case « Enable decryption » (Activer le décodage), puis sélectionnez Edit, juste à côté de Decryption keys (Clés de décodage).
Cliquez sur le bouton « + » en bas pour ajouter une nouvelle clé de déchiffrement et sélectionner msk comme type de clé.
Collez la valeur eap-msk obtenue à l'étape 4 (sans espaces).
Enfin, cliquez sur OK pour fermer la fenêtre Clés de déchiffrement, puis cliquez également sur OK pour fermer la fenêtre Préférences et appliquer la clé de déchiffrement.
Clé de décodage ajoutée aux préférences Wireshark.
Étape 6. Analyse du trafic 802.1X déchiffré
Observez comment le trafic sans fil est désormais visible. Dans la capture d'écran, vous pouvez voir le trafic ARP (paquets 482 et 484), les requêtes et réponses DNS (paquets 487 et 488), le trafic ICMP (paquets 491 à 497) et même le début de la connexion en trois étapes pour une session TCP (paquet 507).
Trafic sans fil décrypté.