Introdução
Este documento descreve como descriptografar as capturas de pacote pelo ar para WLANs 802.1X com ferramentas de Troubleshooting disponíveis no Catalyst 9800 WLC.
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Como configurar uma WLAN 802.1X no Catalyst 9800 WLC
- Como utilizar rastreamentos radioativos com depuração condicional habilitada no Catalyst 9800 WLC
- Como fazer capturas de pacotes pelo ar usando um ponto de acesso no modo Sniffer ou um Macbook com sua ferramenta de Diagnóstico sem Fio
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software e hardware:
- Catalyst 9800-L WLC, Cisco IOS® XE Cupertino 17.9.3
- Ponto de acesso Catalyst 9130AX no modo farejador
- Cisco ISE versão 3.3
- Wireshark 4.0.8
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Informações de Apoio
Quando uma identidade é validada por meio de EAP+8021X, o tráfego sem fio é criptografado usando a PTK (Pairwise Transient Key) gerada a partir do handshake entre o solicitante e o autenticador, que usa a PMK (Pairwise Master Key) para ser calculada. Esse PMK é derivado da MSK (Master Session Key). O MSK está incluído nos Pares de Valores de Atributo da Mensagem RADIUS Access-Accept (criptografada usando o Segredo Compartilhado RADIUS). Como resultado, o tráfego não pode ser visto de forma transparente em uma captura de pacote Over-the-Air, mesmo que o handshake de quatro vias seja interceptado por terceiros.
Normalmente, a geração da PMK implica capturas de pacotes sendo realizadas na rede com fio, conhecimento do segredo compartilhado RADIUS e alguma codificação para extrair os valores de interesse. Em vez disso, com esse método, uma das ferramentas disponíveis para solucionar problemas no Catalyst 9800 WLC (Rastreamentos radioativos) é usada para obter o MSK, que pode ser usado em qualquer ferramenta de análise de pacotes bem conhecida, como o Wireshark.
Observação: esse procedimento funciona apenas para WPA2, já que as informações necessárias para calcular PTK (Pairwise Transient Keys) são trocadas pelo ar através do handshake de 4 vias. Em vez disso, na WPA3, a Autenticação Simultânea de Iguais (SAE) é realizada através do que é conhecido como handshake do Dragonfly.
Configurar
Etapa 1. Inicie o rastreamento radioativo do endpoint de interesse
Na WLC do Catalyst 9800, vá para Troubleshooting > Radioative Traces e clique no botão Add para digitar o endereço MAC do dispositivo cujo tráfego deve ser descriptografado.
Endereço MAC adicionado à lista de rastreamentos radioativos
Depois de adicioná-lo, clique no botão Start na parte superior da lista para habilitar a depuração condicional. Isso permite ver as informações trocadas no plano de dados (o MSK está aqui).
Dispositivo adicionado à lista de rastreamento radioativo com depuração condicional habilitada.
Etapa 2. Obtenha uma captura de pacotes pelo ar
Inicie a captura de pacotes pelo ar e conecte seu endpoint à WLAN 802.1X.
Você pode obter essa captura de pacote pelo ar usando um Ponto de acesso no modo Sniffer ou com um Macbook usando sua ferramenta interna de Diagnóstico sem fio.
Observação: certifique-se de que a captura de pacotes inclua todos os quadros 802.11. Mais importante ainda, é imperativo que o handshake de quatro vias seja capturado durante o processo.
Observe como todo o tráfego após o handshake de quatro vias (pacotes 475 a 478) é criptografado.
Tráfego sem fio criptografado.
Etapa 3. Gerar e exportar o traço radioativo do dispositivo
Na mesma tela da Etapa 1, clique no botão verde Gerar depois de capturar o tráfego sem fio.
Na janela pop-up Intervalo de tempo, selecione o intervalo de tempo que corresponde às suas necessidades. Não é necessário habilitar logs internos aqui.
Clique em Apply to Device para gerar o rastreamento radioativo.
Intervalo de tempo para rastreamento de RA.
Quando o rastreamento radioativo estiver pronto, um ícone de download será mostrado ao lado do nome do arquivo de rastreamento. Clique nele para fazer o download do seu Radioative Trace.
Radioative Trace disponível para download.
Etapa 4. Obter o MSK do traçado radioativo
Abra o arquivo de rastreamento radioativo baixado e procure o atributo eap-msk após a mensagem 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
O valor seguido pela sequência de caracteres eap-msk é o MSK. Copie e salve-o para usá-lo na próxima etapa.
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
Etapa 5. Adicione o MSK como uma chave de descriptografia IEEE 802.11 no Wireshark
No Wireshark, vá para Wireshark > Preferências > Protocolos > IEEE 802.11.
Marque a caixa que diz "Enable decryption" e selecione Edit, ao lado de Decryption keys.
Clique no botão "+" na parte inferior para adicionar uma nova chave de descriptografia e selecione msk como o tipo de chave.
Cole o valor eap-msk obtido na Etapa 4 (sem espaços).
Finalmente, clique em OK para fechar a janela Chaves de descriptografia e depois clique em OK para fechar a janela Preferências e aplicar a chave de descriptografia.
Chave de descriptografia adicionada às preferências do Wireshark.
Etapa 6. Analisar o tráfego 802.1X descriptografado
Observe como o tráfego sem fio agora está visível. Na captura de tela, você pode ver o tráfego ARP (pacotes 482 e 484), as consultas e respostas DNS (pacotes 487 e 488), o tráfego ICMP (pacotes 491 a 497) e até mesmo o início do handshake triplo para uma sessão TCP (pacote 507).
Tráfego sem fio descriptografado.