Windows 內建封包側錄工具 - Pktmon
2 |
遇到棘手網路茶包,抓封包分析是最直覺有效的手段,要監看網站傳輸我主要是用 Fiddler,至於更底層的 TCP 網路活動,早期我是用 Microsoft Network Monitor,後來 MNM 停止開發,原本計劃由 Microsoft Message Analyzer 接棒,不料 Message Analyzer 在 2019 年遭到棄坑,如今已無處可尋(反倒 MNM 3.4 版還留有下載遺址),官方部落格建議大家改用開源跨平台軟體 - Wireshark,而 Wireshark 的確也是目前我抓 TCP/IP 封包最主要的工具。
然後,遇到狀況想抓封包驗證猜測,未必能用動用 Wireshark,一則下載安裝得耗工夫花時間,二來並非每個環境都能隨意安裝軟體,原本看個封包答案立見分曉,少了工具只能乾瞪眼,想辦法旁敲側擊找線索,浪費不少時間。
最近發現 Windows 推出一個鮮為人知的新工具,未來查網路問題不必再為沒工具抓封包發愁。Windows 10 跟 Windows Server 2019 (1809 版)起,內建了一個命令列封包監聽工具 - Pktmon,可設定簡單條件側錄封包,結果可以轉為文字檔或 MNM/Wireshark 的資料格式,改用慣用軟體做進一步篩選及進階分析。
MS Docs 有 Pktmon 指今參數的完整說明,大家請自行參考,這裡直接用實例展示如何使用 Pktmon 側錄封包並進行分析。
簡單說明用到的指令:(註:記得以管理者權限開啟)
- pktmon comp list
列舉主機上的網路元件(網路卡介面),擷取封包時指定網卡識別碼資料較乾淨 - pktmon filter add -t tcp -p 21
設定過濾條件,本例指定 TCP、Port 21,另外還有 -i xxx.xxx.xxx.xxx 可限定 IP。設定完可用 pktmon filter list 查詢確認 - pktmon start -c --pkt-size 0 --comp 180
啟動封包擷取,--pkt-size 0 記錄完整封包內容(否則預設只取前 128 Bytes),--comp 180 指定 vEthernet (WiFi-Switch) 網卡 - curl "ftp://ftp.ntu.edu.tw"
借用 curl 工具登入台大 FTP 主機,產生一些 TCP 21 Port 傳輸封包 - pktmon stop
停止擷取,擷取內容預設寫入 PktMon.etl 檔案(start 時可透過 -f 指定不同檔名) - pktmon etl2txt pktmon.etl
將 PktMon.etl 的擷取內容轉為文字檔,預設檔名為 PktMon.txt - pktmon pcapng pktmon.etl
將 PktMon.etl 的擷取內容轉為 pcapng 檔(預設檔名 PktMon.pcapng)以便使用 Wireshark 檢視內容
執行結果如下:
文字檔內容有點龐雜不易閱讀,只能看個大概:
要深入分析,一般轉成 pcapng 檔用 Wireshark 開啟,如下圖,整個傳輪過程一目膫解:
有了 Pktmon,在新版 Windows 射網路茶包,免裝軟體也能抓封包,未來偵察網路問題再添一項利器。
【延伸閱讀】
Introduce to Windows' new network monitoring tool- pktmon.
Comments
# by chia
Very cool!
# by 鳥毅
我偏愛免安裝的 https://docs.microsoft.com/en-us/sysinternals/downloads/tcpview