簡介
本檔案介紹如何使用Catalyst 9800 WLC上提供的疑難排解工具解密802.1X WLAN的無線封包擷取。
必要條件
需求
思科建議您瞭解以下主題:
- 如何在Catalyst 9800 WLC中配置802.1X WLAN
- 如何在Catalyst 9800 WLC中啟用條件調試的情況下進行放射性跟蹤
- 如何使用嗅探器模式下的存取點或具有無線診斷工具的Macbook進行無線資料包捕獲
採用元件
本文中的資訊係根據以下軟體和硬體版本:
- Catalyst 9800-L WLC、Cisco IOS® XE Cupertino 17.9.3
- 採用監聽器模式的Catalyst 9130AXE存取點
- Cisco ISE版本3.3
- Wireshark 4.0.8
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
背景資訊
一旦透過EAP+8021X驗證身份,無線流量就會使用由請求方和驗證方之間的握手生成的Pairwise Transient Key (PTK)加密,後者使用要計算的Pairwise Master Key (PMK)進行加密。此PMK衍生自主會話金鑰(MSK)。MSK包含在RADIUS Access-Accept消息的屬性值對中(使用RADIUS共用金鑰加密)。因此,在無線資料包捕獲中,即使四向握手被第三方攔截,也無法透明地看到流量。
通常,生成PMK意味著在有線網路中捕獲資料包、瞭解RADIUS共用金鑰和某些編碼以提取興趣值。相反,透過此方法,可以使用可用於Catalyst 9800 WLC上的故障排除工具之一(放射性蹤跡)獲取MSK,然後將其用於任何已知資料包分析工具(如Wireshark)。
注意:此程式僅適用於WPA2,因為計算成對暫時性金鑰(PTK)所需的資訊會透過4次交涉在空中交換。相反,在WPA3中,對等體同時身份驗證(SAE)透過所謂的蜻蜓握手來執行。
設定
步驟 1.開始感興趣終端的放射性跟蹤
在Catalyst 9800 WLC上,轉到Troubleshooting > Radiative Traces,然後按一下Add按鈕以鍵入要解密其流量的裝置的MAC地址。
增加到放射性蹤跡清單的MAC地址
增加之後,請確保按一下清單頂部的Start按鈕以啟用Conditional Debug。這允許您檢視在資料平面中交換的資訊(MSK在此)。
在啟用條件調試的情況下增加到放射性跟蹤清單的裝置。
步驟 2.獲取無線資料包捕獲
啟動無線資料包捕獲並將您的終端連線到802.1X WLAN。
您可以使用處於嗅探器模式的存取點獲取此無線資料包捕獲,也可以使用Macbook內建的無線診斷工具獲取此無線資料包捕獲。
注意:請確保資料包捕獲包含所有802.11幀。最重要的是,在此過程中必須捕獲四向握手。
觀察透過四向握手(資料包475至478)的所有流量如何加密。
加密的無線流量。
步驟 3.生成和導出裝置的放射性蹤跡
在步驟1所在的螢幕中,捕捉到無線流量後,按一下綠色的Generate按鈕。
在「時間間隔」彈出窗口中,選擇符合您需求的時間範圍。無需在此啟用內部日誌。
按一下Apply to Device以生成放射性蹤跡。
RA跟蹤的時間間隔。
一旦放射性跟蹤就緒,download圖示將顯示在跟蹤檔名旁邊。點選它下載你的放射性痕跡。
放射性痕跡可供下載。
步驟 4.從放射性痕跡獲取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
步驟 5.在Wireshark中增加MSK作為IEEE 802.11解密金鑰
在Wireshark上,轉到Wireshark > Preferences > Protocols > IEEE 802.11。
選中Enable decryption覈取方塊,然後選擇Decryption keys旁邊的Edit。
按一下底部的「+」按鈕以增加新的解密金鑰,然後選擇msk作為金鑰型別。
貼上步驟4中取得的eap-msk值(不含空格)。
最後,按一下OK關閉「Decryption keys」窗口,然後按一下OK關閉「Preferences」窗口並應用解密金鑰。
解密金鑰已增加到wireshark首選項。
步驟 6.分析解密的802.1X流量
觀察無線流量現在是如何顯示的。在熒幕擷取畫面中,您可以看到ARP流量(封包482和484)、DNS查詢和回應(封包487和488)、ICMP流量(封包491到497),甚至是TCP作業階段三向交涉的開始(封包507)。
解密的無線流量。