簡介
本檔案介紹如何使用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驗證身份,無線流量就會使用從請求方和驗證方之間的握手中生成的配對臨時金鑰(PTK)進行加密,該金鑰使用配對主金鑰(PMK)進行計算。此PMK從主會話金鑰(MSK)派生。MSK包含在RADIUS存取接受訊息的屬性值對中(使用RADIUS共用金鑰加密)。因此,即使四向握手被第三方攔截,在無線資料包捕獲中也無法透明地看到流量。
通常,PMK的生成意味著有線網路中捕獲的資料包、瞭解RADIUS共用金鑰以及一些用於提取興趣值的編碼。相反,使用此方法,Catalyst 9800 WLC(放射性追蹤)上可用的故障排除工具之一來獲取MSK,然後可使用任何已知資料包分析工具(如Wireshark)來獲取該MSK。
註:此過程僅適用於WPA2,因為計算成對瞬變金鑰(PTK)所需的資訊會通過4次握手在空中交換。相反,在WPA3中,對等同時身份驗證(SAE)是通過所謂的Dragonfly握手執行的。
設定
步驟 1.啟動相關終結點的放射性跟蹤
在Catalyst 9800 WLC上,前往疑難排解>放射追蹤,然後按一下Add按鈕,以鍵入要解密其流量的裝置的MAC位址。
新增到放射性跟蹤清單的MAC地址
新增後,請確保按一下清單頂部的Start按鈕以啟用條件式調試。這樣,您就可以檢視在資料平面中交換的資訊(MSK在此)。
裝置已新增到放射性跟蹤清單,並啟用了條件調試。
步驟 2.獲取無線資料包捕獲
開始無線資料包捕獲,將您的終端連線到802.1X WLAN。
您可在監聽器模式下使用存取點或使用Macbook的無線診斷內建工具來取得此無線封包擷取。
注意:確保資料包捕獲包含所有802.11幀。最重要的是,在此過程中必須捕獲四向握手。
觀察經過四向握手(資料包475至478)的所有流量如何加密。
加密的無線流量。
步驟 3.裝置放射性痕跡的產生與匯出
在步驟1所在的螢幕中,捕捉無線流量後,按一下綠色的Generate按鈕。
在「時間間隔」彈出視窗中,選擇符合您需求的時間範圍。無需在此處啟用內部日誌。
按一下Apply to Device以生成放射性跟蹤。
RA跟蹤的時間間隔。
一旦放射性跟蹤就緒,download圖示將顯示在跟蹤檔名旁邊。按一下以下載放射性追蹤
放射性痕跡可供下載。
步驟 4.從放射性痕跡中獲取MSK
開啟下載的Radiative 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
步驟 5.在Wireshark中將MSK新增為IEEE 802.11解密金鑰
在Wireshark上,轉到Wireshark > Preferences > Protocols > IEEE 802.11。
選中「Enable decryption」覈取方塊,然後選擇「Decryption」旁邊的Edit。
按一下底部的「+」按鈕以新增新的解密金鑰,然後選擇msk作為金鑰型別。
貼上步驟4中獲取的eap-msk值(不含空格)。
最後按一下OK關閉「解密金鑰」視窗,然後按一下OK關閉「首選項」視窗並應用解密金鑰。
解密金鑰已新增到wireshark首選項。
步驟 6.分析已解密的802.1X流量
觀察現在無線流量的顯示方式。在螢幕抓圖中,您可以看到ARP流量(封包482和484)、DNS查詢和回應(封包487和488)、ICMP流量(封包491到497),甚至是TCP作業階段三向交握的開始(封包507)。
解密的無線流量。