Windows環境で、パケットキャプチャーを行いたい場合、WireSharkといったサードパーティーのLANアナライザーツールをインストールするのが一般的ですが、Windows 10や11では、標準搭載コマンド「pktmon」を使うことで、サードパーティーのツール無しでもパケットキャプチャーを行うことができます。
そこでここでは、Windows 10や11に標準搭載されている「pktmon」コマンドの基本的な使い方を紹介します。
目次
pktmonコマンドの使い方
pktmonコマンドの基本的な使い方は次のとおりです。
なお、ここからの作業は、管理者権限でコマンドプロンプトまたはPowerShellを起動して実施します。
1.収集するパケットを絞り込む
pktmonコマンドでパケットを収集する場合、まずはフィルターを設定して収集するパケットを絞り込みます。これは、収集するパケットを絞り込まないと、データ量が多くなりすぎて解析しづらいためです。
フィルターは、MACアドレス、IPアドレス、ポート番号、プロトコルをはじめとして、さまざまな情報で定義できます。
たとえば、ポート番号を指定したフィルターを作成するときは、次のようにコマンドを実行します。
C:\> pktmon filter add <任意のフィルター名> -p <ポート番号>
IPアドレスとプロトコル、ポート番号を指定したフィルターを作成するときは、次のようにコマンドを実行します。
C:\> pktmon filter add <任意のフィルター名> -i <IPアドレス> -t <プロトコル> -p <ポート番号>
設定されているフィルターを一覧表示するときは、次のようにコマンドを実行します。
C:\> pktmon filter list
設定されているフィルターをすべて削除するときは、次のようにコマンドを実行します。
C:\>pktmon filter remove
2.パケットの収集を開始する
フィルターを設定したら、以下のコマンドでパケットの収集を開始します。
C:\> pktmon start -c
特定のネットワークインターフェースを通るパケットのみを収集したいときは、まず以下のコマンドでインターフェースの一覧を表示します。
C:\> pktmon list
次に、インターフェースのIDを指定して、パケットの収集を開始します。
C:\> pktmon start -c --comp 41
破棄(ドロップ)されたパケットだけを収集したいときは、パケットのタイプを指定して収集を開始します。
C:\> pktmon start -c --type drop
監視中のパケットをリアルタイムで画面に表示したいときは、以下のようにコマンドを実行します。(なお、このコマンドを実行したときはログファイルは生成されず、停止するときはCtrl+Cキーを押します。)
C:\> pktmon start -c -m real-time
3.パケットの収集を終了する
パケットの収集を終了するときは、以下のコマンドを実行します。
C:\> pktmon stop
4.ログファイルの変換
pktmonで収集したパケットのログは、デフォルトでカレントディレクトに「PktMon.etl」というファイル名で出力されますが、バイナリ形式ファイルのため、内容を確認するには「Microsoft Network Monitor」といったツールで読み込む必要があります。
そのため、pktmonにはログファイルを変換するオプションが用意されています。
たとえば、テキストファイルに変換したいときは、以下のようにコマンドを実行します。
C:\> pktmon etl2txt PktMon.etl
WiresharkといったLANアナライザーツールで解析できるpcapng形式に変換したいときは、以下のようにコマンドを実行します。
C:\> pktmon etl2pcap PktMon.etl
pktmonコマンドの使い方を調べるには?
pktmonコマンドの使い方を調べるときは、コマンドのヘルプを参照したり、オンラインヘルプが役立つでしょう。
まず、pktmonとだけ入力してエンターキーを押せば、サブコマンドの一覧が表示され、サブコマンドのヘルプを表示するときは、サブコマンドに続けてhelpと入力します。
たとえば「pktmon start」のヘルプを確認したいときは、以下のようにコマンドを実行します。
C:\> pktmon start help
オンランヘルプは、以下の公式サイトが役立つでしょう。
Pktmon コマンドの書式設定 | Microsoft Docs
あとがき
意外と知られていませんが、現在のWindows 10では、ssh, tar, curlといったLinuxでよく使われるコマンドも標準搭載されていますよ。
ご活用あれ。