簡介
本文檔介紹如何將COS接入點生成的資料包轉儲轉換為Wireshark的PCAP格式,作為達到大小限制的解決方法。
必要條件
- 記事本++ — 僅適用於Windows
- 已安裝Text2pcap — 包含在定期安裝的Wireshark中
程式
執行資料包轉儲
通過在AP命令列上運行debug traffic wired <multiple options> verbose命令來捕獲AP資料包轉儲。您可以在多個篩選器和介面之間選擇。
在終端中記錄會話。
執行此操作時,請注意傳送最小數量的擊鍵,因為檔案上不屬於捕獲本身的可列印字元越多,在轉換之前需要做的清理就越多。
最簡單的方法是進行資料包轉儲的控制檯會話、複製問題、停止轉儲並立即結束會話。
如果通過ssh執行轉儲,請使用過濾器僅捕獲感興趣的流量。否則,捕獲包含ssh會話資料包。
有關如何配置捕獲的完整說明,請參閱排除COS AP故障。
完成後,使用undebug all指令停止擷取。生成的檔案如下所示:
AP-9105>en
Password:
AP-9105#debug traffic wired udp
capture capture packets in pcap file
verbose Verbose Output
AP-9105#debug traffic wired udp verbose
AP-9105#reading from file /dev/click_wired_log, link-type EN10MB (Ethernet)
22:35:17.1669188 IP CSCO-W-PF320YP6.lan.60354 > 239.255.255.250.3702: UDP, length 656
0x0000: 0100 5e7f fffa 806d 971d a040 0800 4500
0x0010: 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff
0x0020: fffa ebc2 0e76 0298 757b 3c3f 786d 6c20
0x0030: 7665 7273 696f 6e3d 2231 2e30 2220 656e
0x0040: 636f 6469 6e67 3d22 7574 662d 3822 3f3e
undebug 0x0070: 444c 4e41 444f 432f 312e 3530 2050 6c61
0x0080: 7469 6e75 6d2f 312e 302e 342e 320d 0a4d
0x0090: 414e 3a20 2273 7364 703a 6469 7363 6f76
0x00a0: 6572 220d 0a53 543a 2073 7364 703a 616c
all 0x00b0: 6c0d 0a4d 583a 2033 0d0a 0d0a
tcpdump: pcap_loop: error reading dump file: Interrupted system call
All possible debugging has been turned off
輸出檔案清除
刪除不屬於資料包轉儲本身的任何資訊。刪除包含dump命令、包含主機名(APname#)的任何提示以及檔案中存在的任何其他無關系統日誌消息的行。
請特別注意undebug命令,因為它可以在資料包內容之前列印,如上文所示。清理之後,生成的檔案如下所示:
22:35:17.1669188 IP CSCO-W-PF320YP6.lan.60354 > 239.255.255.250.3702: UDP, length 656
0x0000: 0100 5e7f fffa 806d 971d a040 0800 4500
0x0010: 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff
0x0020: fffa ebc2 0e76 0298 757b 3c3f 786d 6c20
0x0030: 7665 7273 696f 6e3d 2231 2e30 2220 656e
0x0040: 636f 6469 6e67 3d22 7574 662d 3822 3f3e
0x0070: 444c 4e41 444f 432f 312e 3530 2050 6c61
0x0080: 7469 6e75 6d2f 312e 302e 342e 320d 0a4d
0x0090: 414e 3a20 2273 7364 703a 6469 7363 6f76
0x00a0: 6572 220d 0a53 543a 2073 7364 703a 616c
0x00b0: 6c0d 0a4d 583a 2033 0d0a 0d0a
清除封包摘要資訊
當出現新的偏移量時,檢測到新資料包的000000始點。Text2pcap可以處理在每個資料包之前列印的摘要資訊,為了避免出現問題最好將其刪除。
在記事本++導覽至Search>Find,然後選擇Mark索引標籤,確保Search Mode為Extended。
在Find what:欄位輸入符號>,然後按一下Mark All。此操作會將包含>符號的所有行書籤標籤。
記事本++標籤對話方塊,其中的「查詢包含Chevron字元的欄位」。
標籤標題後,記事本++突出顯示所有文檔行,如下所示:
突出顯示行(包含Chevron)的資料包轉儲片段。
導航到搜尋>書籤,然後按一下刪除書籤行。執行此操作後,檔案看起來與以下代碼片斷類似:
0x0000: 0100 5e7f fffa 806d 971d a040 0800 4500
0x0010: 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff
0x0020: fffa ebc2 0e76 0298 757b 3c3f 786d 6c20
0x0030: 7665 7273 696f 6e3d 2231 2e30 2220 656e
刪除起始空格和偏移冒號
導覽至Search>Find,然後選擇Replace標籤,確保搜尋模式為Extended。
在Find what:欄位輸入8個空格。將Replace保留為:欄位為空,然後按一下Replace all。這將用任何內容替換每行開頭的所有八個連續空格,有效地刪除它們。「替換」對話方塊類似於此影象。
記事本++用「查詢包含8個空格的欄位」替換對話方塊。
此操作後生成的檔案類似於以下代碼段:
0x0000: 0100 5e7f fffa 806d 971d a040 0800 4500
0x0010: 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff
0x0020: fffa ebc2 0e76 0298 757b 3c3f 786d 6c20
0x0030: 7665 7273 696f 6e3d 2231 2e30 2220 656e
0x0040: 636f 6469 6e67 3d22 7574 662d 3822 3f3e
0x0050: 3c73 6f61 703a 456e 7665 6c6f 7065 2078
0x0060: 6d6c 6e73 3a73 6f61 703d 2268 7474 703a
0x0070: 2f2f 7777 772e 7733 2e6f 7267 2f32 3030
導覽至Search>Find,然後選擇Replace標籤,確保Search Mode為Extended。輸入: (注意Find what:欄位.將Replace保留為:欄位為空,然後按一下Replace all。
這將替換偏移後的所有冒號和第一個空格。
記事本++用「查詢用冒號和空格填充的欄位」替換對話方塊。
在上一操作之後,生成的輸出檔案類似於以下代碼段:
0x0000 0100 5e7f fffa 806d 971d a040 0800 4500
0x0010 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff
0x0020 fffa ebc2 0e76 0298 757b 3c3f 786d 6c20
0x0030 7665 7273 696f 6e3d 2231 2e30 2220 656e
0x0040 636f 6469 6e67 3d22 7574 662d 3822 3f3e
0x0050 3c73 6f61 703a 456e 7665 6c6f 7065 2078
0x0060 6d6c 6e73 3a73 6f61 703d 2268 7474 703a
0x0070 2f2f 7777 772e 7733 2e6f 7267 2f32 3030
正確的資料包偏移
Text2pcap期望每個資料包內的資料包偏移量是6個字元的十六進位制字串,但AP資料包轉儲使用0x來表示偏移量。要更正此錯誤,請導航至搜尋>查詢並選擇替換頁籤,確保搜尋模式為擴展。
在Find what: 中輸入x欄位.將「Replace(替換)」填寫為:欄位中的0並按一下Replace all。這會將偏移內的所有x替換為0,以匹配Text2pcap的預期偏移格式。
記事本++用「查詢用字元x填充的欄位」替換對話方塊和用字元0填充的替換欄位。
在上一操作之後,生成的輸出檔案類似於以下代碼段:
000000 0100 5e7f fffa 806d 971d a040 0800 4500
000010 02ac d4bb 0000 0111 cd11 c0a8 64d1 efff
000020 fffa ebc2 0e76 0298 757b 3c3f 786d 6c20
000030 7665 7273 696f 6e3d 2231 2e30 2220 656e
000040 636f 6469 6e67 3d22 7574 662d 3822 3f3e
000050 3c73 6f61 703a 456e 7665 6c6f 7065 2078
單獨資料包位元組
Text2pcap資料格式要求每對十六進位制值用空格分隔,不正確的格式會導致Text2pcap將資料包資料讀取為偏移量並失敗。
導航到Search>Find,然後選擇Replace頁籤,確保Search Mode為Regular expression。
在「查詢內容:」(Find what:)中輸入([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])(注意前導空格)欄位.
將「Replace(替換)」填寫為:\1\2欄位(注意前導空格),然後按一下Replace all。
替換操作可查詢資料包的十六進位制位元組並在每對之間插入一個空格。正規表示式匹配後跟一個十六進位制數字對的空格,將它們儲存在捕獲組1中,然後取相鄰的一對十六進位制數字,將它們儲存在捕獲組2中。替換項將列印所需的空格以及每個捕獲組的內容。
這可能需要幾秒或幾分鐘,具體取決於檔案的長度。它在運行時利用大量RAM。如果檔案很大,請耐心等待。
記事本++用「查詢用正規表示式填充的內容」和「用另一個正規表示式填充的「替換」欄位替換對話方塊。
在上一操作之後,生成的輸出檔案看起來與此代碼片斷類似,並準備通過Text2pcap進行轉換。
000000 01 00 5e 7f ff fa 80 6d 97 1d a0 40 08 00 45 00
000010 02 ac d4 bb 00 00 01 11 cd 11 c0 a8 64 d1 ef ff
000020 ff fa eb c2 0e 76 02 98 75 7b 3c 3f 78 6d 6c 20
000030 76 65 72 73 69 6f 6e 3d 22 31 2e 30 22 20 65 6e
000040 63 6f 64 69 6e 67 3d 22 75 74 66 2d 38 22 3f 3e
000050 3c 73 6f 61 70 3a 45 6e 76 65 6c 6f 70 65 20 78
000060 6d 6c 6e 73 3a 73 6f 61 70 3d 22 68 74 74 70 3a
000070 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f 32 30 30
000080 33 2f 30 35 2f 73 6f 61 70 2d 65 6e 76 65 6c 6f
000090 70 65 22 20 78 6d 6c 6e 73 3a 77 73 61 3d 22 68
將文本檔案轉換為PCAP
通過Wireshark GUI
若要將整個檔案轉換為pcap,請開啟Wireshark並導航到File>Import from hex dump,此時將顯示一個對話方塊。
Wireshark匯入對話方塊
按一下瀏覽……按鈕並選擇轉儲文本檔案。確保選定的偏移量型別為十六進位制,Encapsulation type為Ethernet,且未選擇虛設報頭。
按一下Import開始轉換過程。
通過命令列
要在windows命令列中將文本檔案轉換為pcap檔案,請運行<path to wireshark install folder>\text2pcap.exe <path to text file pcap> <output file path>。
或者,可以將wireshark資料夾新增到PATH中,否則每次轉換檔案時都需要運行text2pcap,引用text2pcap.exe的整個路徑。Text2pcap.exe位於wireshark安裝資料夾中。
成功進行資料包轉儲轉換後的Windows命令列輸出
Text2pcap還包含多個正規表示式選項來預處理文本檔案,有關詳細資訊,請參閱Text2pcap手冊頁。
疑難排解
文本檔案正確,但Text2pcap無法讀取任何資料包
Text2pcap無法讀取常用終端模擬器(Secure CRT、Putty或其他)生成的某些檔案編碼。
更改為使用記事本++的Text2pcap可讀取的編碼。轉到Encoding>UTF-8並儲存檔案,然後再次轉換為pcap。
記事本++編碼選單選項。
不一致的偏移
當資料包上資料部分的位元組沒有正確分隔成對時,會出現此錯誤,這將導致Text2pcap假設新資料包的啟動並且解釋失敗。
搜尋封包內容(例如命令)中間沒有分隔或字串的任何封包位undebug all
元組。
嘗試轉換無效檔案之後的Windows命令列輸出。不一致的偏移被多次列印到終端。