Windows 標準コマンドでパケットキャプチャ

pktmon

Windows の標準コマンド(Windows 10 October 2018 Update 以降) pktmon でパケットキャプチャを取れる。pcapng への変換も別ツールを使わずできて便利。後述の netsh の場合は別途ツールのダウンロードが必要。

フィルタを設定する

追加

MACアドレスIPアドレス、ポートについては送信元と送信先が区別されない

pktmon filter add [name] <filter>

pktmon filter add -i 10.0.0.10 -t icmp
pktmon filter add -p 53
  • -p <port>
  • -i <ip> -i <ip/subnet>
  • -t <tcp|udp|icmp|number>

確認

pktmon filter list

削除

pktmon filter remove

キャプチャを開始する

  • -f <filename> を指定しないと規定値は PktMon.etl となる
  • --pkt-size 0 を指定しないと、各パケットについてパケット全体ではなくパケットの先頭から 128 バイトしか記録されない
pktmon start -c --pkt-size 0 -f <filename>

特定のインターフェースのパケットのみキャプチャする場合、以下のコマンドでインターフェス ID を確認し --comp <ID> で指定する

pktmon list

pktmon start -c --pkt-size 0 --comp <ID> -f <filename>

キャプチャを停止する

pktmon stop

ログファイルを変換する

キャプチャした etl 形式のファイルを、Wireshark で開ける pcapng 形式のファイルに変換する。

pktmon etl2pcap <etl file>

Functionality

Packet Monitor offers the following functionality:

  • Packet monitoring and counting at multiple locations along the networking stack
  • Packets drop detection at multiple stack locations
  • Flexible runtime packet filtering with encapsulation support
  • General logging and tracing support (ETW and WPP events)
  • TXT log analysis based on TcpDump packet parsing
  • Multiple logging modes: real-time, high volume in-memory, multi-file, circular
  • Ethernet, Wi-Fi, and mobile broadband media type support
  • PCAPNG format support

参考

netsh

Windows の標準コマンド netsh でパケットキャプチャを取れる。

キャプチャを開始する

  • traceFile=<filename> を指定しないと既定では %TEMP%NetTraces に出力される
  • maxsize=XXX でキャプチャサイズの上限を指定できる(単位はMB)
netsh trace start capture=yes traceFile=<filename>

OS 起動時のパケットをキャプチャしたい場合は persistent=yes を指定する。

フィルタを設定する

IP アドレス

IPv4.Address=192.168.0.10
IPv4.Address=!(192.168.0.10)
IPv4.Address=(192.168.0.10,192.168.0.20)

インターフェース

netsh trace show interfaces
netsh trace start capture=yes CaptureInterface={XXXX-XXXX-XXXX-XXXX-XXXXXXXX}

ヘルプ

netsh trace show capturefilterHelp

キャプチャを停止する

netsh trace stop

ログファイルを変換する

キャプチャした etl 形式のファイルを、Wireshark で開ける pcapng 形式のファイルに変換する。ファイル形式の変換には MicrosoftGithub で公開している etl2pcapng というコマンドラインツールを利用する。

以下から単体の実行ファイルがダウンロードできる。
https://github.com/microsoft/etl2pcapng/releases

使い方は以下のように簡単。

etl2pcapng trace.etl trace.pcapng