简介
本文档介绍如何使用Catalyst 9800 WLC上提供的故障排除工具对802.1X WLAN的空中数据包捕获进行解密。
先决条件
要求
Cisco 建议您了解以下主题:
- 如何在Catalyst 9800 WLC中配置802.1X WLAN
- 如何在Catalyst 9800 WLC中启用条件调试后进行放射性跟踪
- 如何在嗅探器模式下使用接入点或具有无线诊断工具的Macbook捕获无线数据包
使用的组件
本文档中的信息基于以下软件和硬件版本:
- Catalyst 9800-L WLC、Cisco IOS® XE Cupertino 17.9.3
- 嗅探器模式下的Catalyst 9130AX接入点
- 思科ISE版本3.3
- Wireshark 4.0.8
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
一旦通过EAP+8021X验证身份,无线流量就会使用通过请求方和身份验证方之间的握手生成的配对临时密钥(PTK)进行加密,该密钥使用配对主密钥(PMK)进行计算。此PMK从主会话密钥(MSK)派生。MSK包含在RADIUS访问接受消息的属性值对中(使用RADIUS共享密钥加密)。因此,即使四次握手被第三方拦截,在空中数据包捕获中也无法透明地看到流量。
通常,PMK的生成意味着有线网络中捕获的数据包、了解RADIUS共享密钥以及一些用于提取兴趣值的编码。相反,使用此方法,可以使用可用于Catalyst 9800 WLC(放射性踪迹)故障排除的工具之一来获取MSK,然后将其用于任何已知的数据包分析工具,如Wireshark。
注:此过程仅适用于WPA2,因为计算成对临时密钥(PTK)所需的信息是通过四次握手在空中交换。相反,在WPA3中,对等同时身份验证(SAE)通过所谓的Dragonfly握手执行。
配置
步骤1:启动目标终端的放射性跟踪
在Catalyst 9800 WLC上,转到故障排除>放射性跟踪,然后单击Add按钮,键入要解密其流量的设备的MAC地址。
添加到放射性跟踪列表的MAC地址
添加后,请务必点击列表顶部的Start按钮以启用Conditional Debug。这样您就可以查看数据平面中交换的信息(MSK在此)。
设备已添加到放射性跟踪列表,且启用了条件调试。
第二步:获取无线数据包捕获
开始Over-the-Air数据包捕获并将您的终端连接到802.1X WLAN。
您可以在嗅探器模式下使用接入点或使用Macbook内置的无线诊断工具获取此Over-the-Air数据包捕获。
注意:确保数据包捕获包括所有802.11帧。最重要的是,在此过程中必须捕获四次握手。
观察经过四次握手的所有流量(数据包475至478)如何加密。
加密的无线流量。
第三步:设备放射性痕迹的生成与导出
在与步骤1相同的屏幕中,捕获无线流量后,单击绿色的Generate按钮。
在“时间间隔”弹出窗口中,选择符合您需求的时间范围。无需在此启用内部日志。
单击Apply to Device生成放射性跟踪。
RA跟踪的时间间隔。
一旦放射性跟踪就绪,download图标将显示在跟踪文件名旁边。单击它下载你的放射性追踪
放射性痕迹可下载。
第四步:从放射性痕迹中获取MSK
打开已下载的放射性跟踪文件,在Access-Accept消息之后搜索eap-msk属性。
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
eap-msk字符串后面的值是MSK。复制并保存它,以便在下一步中使用。
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
第五步:在Wireshark中添加MSK作为IEEE 802.11解密密钥
在Wireshark上,转到Wireshark > Preferences > Protocols > IEEE 802.11。
选中Enable decryption复选框,然后选择Decryption密钥旁边的Edit。
单击底部的“+”按钮以添加新的解密密钥,然后选择msk作为密钥类型。
粘贴在步骤4中获得的eap-msk值(不含空格)。
最后,单击OK关闭Decryption keys窗口,然后单击OK关闭Preferences窗口并应用解密密钥。
解密密钥已添加到wireshark首选项。
第六步:分析已解密的802.1X流量
观察现在无线流量的显示方式。在屏幕截图中,您可以看到ARP流量(数据包482和484)、DNS查询和响应(数据包487和488)、ICMP流量(数据包491至497),甚至是TCP会话三次握手的开始(数据包507)。
已解密的无线流量。