たれながし.info

派遣で働くITエンジニアの備忘録

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

Windows10の標準コマンド「pktmon(パケットモニター)」でパケットキャプチャしてみる。

f:id:tarenagashi_info:20210506050705p:plain:w600

はじめに

Windows10の標準コマンド「pktmon(パケットモニター)」でパケットキャプチャをしてみます。
「pktmon」はパケットキャプチャツールというよりは、パケットキャプチャもできるNWトラブルシュートツールという位置付けなようです。

docs.microsoft.com

パケットキャプチャ

コマンドオプションは下記に説明があるが、内容が古いため「help」を使って調べた方が無難です。
※例)pktmon start help

docs.microsoft.com

ログ取得開始/終了

管理者として起動したPowerShell/コマンドプロンプトで以下コマンドを実行します。

・ログ取得開始
> pktmon start -c --pkt-size 0
> pktmon start -c --pkt-size 0 --comp [コンポーネントID]

・ログ取得終了
> pktmon stop

startについて

  • デフォルトでは各パケットの先頭128Byteのみ記録されるため、「--pkt-size」に0を指定する。
  • 「--comp」でログ取得するコンポーネントを指定可能。「--comp」を指定しない場合、全てのログを取得する。ログ取得後に特定コンポーネントのみログを抜き出すことも可能。
    コンポーネントは「pktmon comp list --all」で確認する。下記では「146」がIPv6「147」IPv4ARP
>pktmon comp list --all

NIC: Intel(R) Ethernet Connection (6) I219-V
    ID: 13
    ドライバー: e1d68x64.sys
    MAC アドレス: XX-XX-XX-XX-XX-XX
    ifIndex: 28

    フィルター ドライバー:
        ID ドライバー          名前
        -- -----          --
        61 wfplwfs.sys    WFP Native Filter
        60 npcap.sys      Npcap Packet Driver (NPCAP)
        59 VBoxNetLwf.sys VirtualBox NDIS Light-Weight Filter
        58 pacer.sys      QoS Packet Scheduler
        57 wfplwfs.sys    WFP 802.3 Filter

    プロトコル:
         ID ドライバー           名前          EtherType
         -- -----           --          ---------
        146 tcpip.sys       TCPIP6      IPv6
        147 tcpip.sys       TCPIP       IPv4, ARP
        142 vmnetbridge.sys VMNETBRIDGE * (All)
        136 lltdio.sys      LLTDIO      * (All)
        135 mslldp.sys      MSLLDP      LLDP
        130 rspndr.sys      RSPNDR      VLAN, LLTD
        125 ndisuio.sys     NDISUIO     VLAN, 802.1X, 802.11i

ログファイルについて

  • ファイルはETL形式で保存(取得後に変換可)
  • デフォルトのファイル名は「PktMon.etl」(オプションで変更可)
  • デフォルトの最大サイズは512MB、それを超えると上書きされる(オプションで変更可)

フィルタ

tcpdumpと同様にフィルタ設定が可能、複数行の設定も可能。
※ログ取得開始前に設定しておく必要があります。

・フィルタ設定例
> pktmon filter add -i 8.8.8.8 -t udp -p 53

・フィルタの表示
> pktmon filter list

・フィルタのクリア
> pktmon filter remove

ファイル形式の変換

Wireshark形式(pcapeng)やテキスト形式へ変換可能。特定コンポーネントのみ出力も可能。

・Wireshark形式(pcapeng)への変換
> pktmon etl2pcap [ETL形式ファイル名]
> pktmon etl2pcap [ETL形式ファイル名] --component-id  [コンポーネントID]

・テキスト形式への変換
> pktmon etl2txt [ETL形式ファイル名]
> pktmon etl2txt [ETL形式ファイル名] --component-id  [コンポーネントID]