Introducción
Este documento describe cómo descifrar las capturas de paquetes por aire para WLAN 802.1X con las herramientas de troubleshooting disponibles en el WLC Catalyst 9800.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
- Cómo configurar una WLAN 802.1X en el WLC Catalyst 9800
- Cómo tomar rastros radiactivos con la depuración condicional habilitada en el WLC de Catalyst 9800
- Cómo realizar capturas de paquetes por aire mediante un punto de acceso en modo sabueso o un Macbook con su herramienta de diagnóstico inalámbrico
Componentes Utilizados
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
- WLC Catalyst 9800-L, Cisco IOS® XE Cupertino 17.9.3
- Punto de acceso Catalyst 9130AX en modo sabueso
- Cisco ISE versión 3.3
- Wireshark 4.0.8
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Una vez que se valida una identidad a través de EAP+8021X, el tráfico inalámbrico se cifra mediante la clave transitoria en pares (PTK) generada a partir del intercambio de señales entre el solicitante y el autenticador, que utiliza la clave maestra en pares (PMK) que se calculará. Este PMK se deriva de la clave de sesión maestra (MSK). La MSK se incluye en los pares de valores de atributo del mensaje de aceptación de acceso RADIUS (cifrado mediante la clave secreta compartida RADIUS). Como resultado, el tráfico no se puede ver de forma transparente en una captura de paquetes Over-the-Air, incluso si el intercambio de señales en cuatro direcciones es interceptado por un tercero.
Generalmente, la generación de PMK implica que las capturas de paquetes se realizan en la red por cable, que se conoce el secreto compartido de RADIUS y que se utiliza algún tipo de codificación para extraer los valores de interés. En su lugar, con este método, una de las herramientas disponibles para resolver problemas en el WLC Catalyst 9800 (Radioactive Traces) se utiliza para obtener el MSK, que luego se puede utilizar en cualquier herramienta de análisis de paquetes conocida, como Wireshark.
Nota: Este procedimiento sólo funciona para WPA2, ya que la información necesaria para calcular las claves transitorias en pares (PTK) se intercambia por el aire a través del protocolo de enlace de 4 vías. En su lugar, en WPA3, la autenticación simultánea de iguales (SAE) se realiza a través de lo que se conoce como el intercambio de señales Dragonfly.
Configurar
Paso 1. Iniciar el seguimiento radioactivo del terminal de interés
En su Catalyst 9800 WLC, vaya a Troubleshooting > Radioactive Traces y haga clic en el botón Add para escribir la dirección MAC del dispositivo cuyo tráfico se va a descifrar.
Dirección MAC agregada a la lista de seguimientos radiactivos
Una vez agregado, asegúrese de hacer clic en el botón Start en la parte superior de la lista para habilitar Conditional Debug. Esto le permite ver la información intercambiada en el plano de datos (el MSK está aquí).
Dispositivo agregado a la lista de trazas radiactivas con la depuración condicional habilitada.
Paso 2. Obtenga una captura de paquetes por aire
Inicie la captura de paquetes por aire y conecte su terminal a la WLAN 802.1X.
Puede obtener esta captura de paquetes "Over-the-Air" utilizando un punto de acceso en modo Sniffer, o con un Macbook usando su herramienta integrada de diagnóstico inalámbrico.
Nota: Asegúrese de que la captura de paquetes incluye todas las tramas 802.11. Y lo que es más importante, es imperativo que el apretón de manos de cuatro vías se capture durante el proceso.
Observe cómo se cifra todo el tráfico pasado el protocolo de enlace de cuatro vías (paquetes 475 a 478).
Tráfico inalámbrico cifrado.
Paso 3. Generar y exportar el seguimiento radiactivo del dispositivo
En la misma pantalla que en el paso 1, haga clic en el botón verde Generate (Generar) una vez que haya capturado el tráfico inalámbrico.
En la ventana emergente del intervalo de tiempo, seleccione el intervalo de tiempo que coincida con sus necesidades. No es necesario habilitar aquí los registros internos.
Haga clic en Apply to Device para generar el seguimiento radioactivo.
Intervalo de tiempo para el seguimiento de RA.
Una vez que el Seguimiento radioactivo está listo, se muestra un icono de descarga justo al lado del nombre del archivo de Seguimiento. Haga clic en él para descargar Radioactive Trace.
Seguimiento radioactivo disponible para su descarga.
Paso 4. Obtenga la MSK de Radioactive Trace
Abra el archivo Radioactive Trace descargado y busque el atributo eap-msk después del mensaje 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
El valor seguido de la cadena eap-msk es el MSK. Copie esto y guárdelo para utilizarlo en el siguiente paso.
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
Paso 5. Agregue el MSK como una clave de descifrado IEEE 802.11 en Wireshark
En Wireshark, vaya a Wireshark > Preferences > Protocols > IEEE 802.11.
Marque la casilla que dice "Habilitar descifrado" y luego seleccione Editar, justo al lado de Claves de descifrado.
Haga clic en el botón "+" de la parte inferior para agregar una nueva clave de descifrado y seleccione msk como tipo de clave.
Pegue el valor eap-msk obtenido en el paso 4 (sin espacios).
Por último, haga clic en Aceptar para cerrar la ventana de claves de descifrado y luego también haga clic en Aceptar para cerrar la ventana Preferencias y aplicar la clave de descifrado.
Clave de descifrado agregada a las preferencias de Wireshark.
Paso 6. Análisis del tráfico 802.1X descifrado
Observe cómo ahora el tráfico inalámbrico es visible. En la captura de pantalla, puede ver el tráfico ARP (paquetes 482 y 484), las consultas y respuestas DNS (paquetes 487 y 488), el tráfico ICMP (paquetes 491 a 497) e incluso el inicio del protocolo de enlace de tres vías para una sesión TCP (paquete 507).
Tráfico inalámbrico descifrado.