简介
本文档介绍如何使用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)通过所谓的蜻蜓握手来执行。
配置
步骤1:启动目标终端的放射性跟踪
在您的Catalyst 9800 WLC上,转到故障排除>放射性跟踪,并单击Add按钮,键入要解密其流量的设备的MAC地址。
添加到放射性踪迹列表的MAC地址
添加完成后,请确保单击列表顶部的Start按钮以启用Conditional Debug。这允许您查看数据平面(MSK位于此处)交换的信息。
设备已添加到放射性跟踪列表,并且启用了条件调试。
第二步:获取空中数据包捕获
开始空中数据包捕获,并将您的终端连接到802.1X WLAN。
您可以在嗅探器模式下使用接入点或使用Macbook内置无线诊断工具来获取此空中数据包捕获。
注意:确保数据包捕获包括所有802.11帧。最重要的是,在此过程中必须捕获四次握手。
观察通过四次握手的所有流量(数据包475至478)如何加密。
加密的无线流量。
第三步:生成并导出设备的放射性踪迹
在步骤1所在的屏幕中,捕获无线流量之后,单击绿色的Generate按钮。
在“时间间隔”弹出窗口中,选择符合您需求的时间范围。无需在此启用内部日志。
单击Apply to Device以生成放射性跟踪。
RA跟踪的时间间隔。
一旦放射性跟踪准备就绪,跟踪文件名旁边就会显示一个download图标。单击它下载你的放射性核素追踪
放射性痕迹软件可以下载。
第四步:从放射性踪迹中获取MSK
打开下载的Radious Trace文件,然后在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 keys旁边的Edit。
单击底部的+按钮以添加新的解密密钥,并选择msk作为密钥类型。
粘贴在步骤4中获得的eap-msk值(不含空格)。
最后,单击OK关闭解密密钥窗口,然后单击OK关闭首选项窗口并应用解密密钥。
解密密钥已添加到wireshark首选项。
第六步:分析解密的802.1X流量
观察无线流量现在如何可见。在屏幕截图中,您可以看到ARP流量(数据包482和484)、DNS查询和响应(数据包487和488)、ICMP流量(数据包491到497),甚至可以看到TCP会话三次握手的开始(数据包507)。
解密的无线流量。