1. 程式人生 > >Windows 平臺如何抓包

Windows 平臺如何抓包

Abstract

這篇文章會描述如何在windows平臺下不安裝任何第三方依賴庫來進行網路的抓包和分析.

抓包

這裡我們會使用windows自帶的netsh 來進行抓包. netsh本身包含了很多網路配置相關的功能.這裡主要使用netsh trace.
該工具與tcpdump相比的主要優點是(1)不依賴第三方庫,(2)無需安裝別的什麼軟體.
缺點就是(1)不支援埠過濾. (2) 參考資料很少. (3) 可能少數老舊作業系統沒有.
主要分為兩步:
1.啟動一個抓包session

netsh trace start [OTHER OPTIONS]

2.停止一個抓包session. (該命令同一時刻只能有一個session)

netsh trace stop

Example:
1.抓取某個地址11.11.11.11的snmp訊息 (snmp 採用的是udp協議):

netsh trace start capture=yes traceFile="c:\\snmp.etl" overwrite=yes correlation=no protocol=udp ipv4.address=11.11.11.11

這樣的輸出就代表成功了, 生成的檔案在c:\snmp.etl.

Trace configuration:
-------------------------------------------------------------------
Status: Running Trace File: C:\snmp.etl Append: Off Circular: On Max Size: 250 MB Report: Off

注意:檔案必須為etl結尾.
這個檔案會以很快的速度增長,這裡設定的是最大250MB, 迴圈寫snmp.etl.
這裡的協議可以是tcp/udp/icmp等.

2.停止抓包

netsh trace stop

輸出:

Merging traces ... done
Generating data collection ...
done The trace file and additional troubleshooting information have been compiled as "c:\snmp.cab". File location = c:\snmp.etl Tracing session was successfully stopped.

分析抓包結果

前面我們獲取了抓包的檔案snmp.etl,這裡我們展示如何來分析該檔案.
大體步驟:用windows message analyzer開啟 -> 等待載入完成 -> 轉換為cap檔案 -> 使用wireshark分析.

這裡需要用到的軟體是windows message analyzer. 從這裡下載
安裝後的樣子:
這裡寫圖片描述
開啟snmp.etl後. 等待左下角的狀態變為Ready:
這裡寫圖片描述
然後,到處為cap檔案: File -> Save As -> Export
這裡寫圖片描述
遇到右圖的錯誤忽略就好.

這個生成的檔案snmp.cap 就可以被wireshark分析了.
這裡寫圖片描述

參考