•Lawrence Abramsさんの投稿より
https://www.bleepingcomputer.com/news/microsoft/windows-10-quietly-got-a-built-in-network-sniffer-how-to-use/

null

•Windowsのキャプチャ方法としては以前からnetshによる方法として netsh trace start capture=yes traceFile=ファイル名.etlがありましたが、こちらのETLは以前はWiresharkでうまく処理できなかったり(現在のWiresharkはETL対応)、インタフェースの指定が難しいなど問題がありました。これに対してWindows10 May 2020アップデートにおいて、新しくpktmon.exeに-l real-timeおよびpktmon pcapngオプションが追加されました!

Pktmonのサブコマンドはpktmon [コマンド]に対応しており、オンラインヘルプは pktmon filter help のように入力します。—管理者権限でコマンドプロンプトを起動したら、キャプチャフィルタを設定してみます。pktmon filter add –p ポート番号 で特定ポートのみキャプチャするように設定できます.

pktmon start [-c { all | nics | [ids...] }] [-d] [--etw [-p size] [-k keywords]] [-f] [-s] [-r] [-m]でキャプチャを開始します。 たくさんのオプションがあるため、詳細はヘルプを見てください。

—-c, --componentsオプション(おすすめ) 監視対象のコンポーネントを選択します。すべてのコンポーネント、NIC のみ、またはコンポーネント ID の一覧を指定できます。既定値は all です。コンポーネントは仮想アダプタなどがたくさんあるので pktmon comp listでIDを確認することをおすすめします。

—--etwオプション(必須)パケット キャプチャのロギング セッションを開始します。

—-p, --packet-size(おすすめ) 各パケットからログに記録するバイト数。常にパケット全体をログに記録するには、0 に設定します。既定値は 128 バイト。

—-f, --file-name(おすすめ) .etl ログ ファイル。既定値は PktMon.etl です。

—-s, --file-size ログ ファイルの最大サイズ (MB 単位)。既定値は 512 MB 。

以上が良く使うオプションです。例えば、ID13のコンポーネント(NIC)で、ファイル名test.etlですべてのパケットをキャプチャする場合は pktmon start –-etw –p 0 –c 13 –f test.etl になります。—キャプチャを開始したらpktmon stopで停止します。

さて、これまでのファイルはetlのため、Microsoft Message Analyzerに最適化されており、またキャプチャがうまくいっているのかも確認できませんでした。新しいWindows10 May 2020アップデートではpktmonが更新され、pktmonにリアルタイムでキャプチャ情報を表示する「-l real-time」オプション、およびETLファイルをWiresharkで処理しやすいpcapngフォーマットに変換する「pktmon pcapng」サブコマンドが追加されます。

—-l real-timeオプションはpktmon startとあわせて使うことで、標準出力にキャプチャ中の情報(MACアドレス、イーサタイプ、IPアドレス等)を随時表示することで正しくキャプチャされているかを確認できます。

—さらにMicrosoftのpktmonコマンドにpcapngファイルへの変換を行うpktmon pcapサブコマンドが追加されます!!pktmon pcapng ETLファイル –o pcapngファイルのように指定することでETLファイルをpcapngファイルに変換できます。例 pktmon pcapng test.etl-o test.pcapng (画像はLawrence Abrams氏)

これがあれば私たちはWiresharkがインストールできないような環境でも、現場でパケキャプを取得して後でWiresharkで解析ができます!!