Windows標準コマンドを使ったパケットキャプチャ
パケットキャプチャならWiresharkなどの有名なツールを使うことが多いと思います。 制約としてツールのインストールができない場合でも、Windows7以降ならWindows標準機能をつかって、パケットキャプチャが可能です。
手順概要
- netsh trace コマンドでパケットキャプチャを取得する
- Microsoft Message Analyzerでパケット解析をする
netsh traceコマンドを使ったパケットキャプチャ
コマンドプロンプトを管理者で起動し、以下のコマンドでパケットキャプチャを開始します。 また、netsh traceコマンド はオプション指定することで、取得条件を細かく指定できます。
netsh trace start capture=yes tracefile=<ファイルパス>
終了時は次のコマンドです。キャプチャ結果は、Enterprise Tracing for Windows トレース ログ ファイル (.etl ファイル)として保存されます。
netsh trace stop
実行結果のサンプル
D:\temp> netsh trace start capture=yes tracefile=D:\temp\NetTrace.etl トレース構成: ------------------------------------------------------------------- ステータス: 実行中 トレース ファイル: D:\temp\NetTrace.etl 追加: オフ 循環: オン 最大サイズ: 250 MB レポート: オフ D:\temp> netsh trace stop トレースの結合中... 完了 データ収集を生成しています ... 完了 トレース ファイルと追加のトラブルシューティング情報は、"D:\temp\NetTrace.cab" としてコンパイルされました。 ファイルの場所 = D:\temp\NetTrace.etl トレース セッションは正常に停止しました。 D:\temp>
Microsoft Message Analyzerでパケット解析をする
Microsoft Message Analyzer@マイクロソフト社 からダウンロードして、インストールします。 Microsoft Message Analyzerを起動し、生成されたキャプチャファイル(.etl)を開くとパケット解析ができます。
どうしてもWireshark で解析したい場合
Microsoft Message Analyzerでキャプチャファイル(.etl)を開いて、別名で”Network Monitor Capture Files (*.cap)”形式を指定して保存すると、Wiresharkで解析できるようになります。
注意点
- netsh trace コマンドにてパケット キャプチャを開始、停止する際に NIC のリンクダウンが発生する場合があります。仕様です。 https://support.microsoft.com/ja-jp/help/2914927
参考リンク
- Netsh コマンドリファレンス (https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd878517(v=ws.10)?redirectedfrom=MSDN)
- MSDN Blog -Capture a NETSH network trace- (https://blogs.msdn.microsoft.com/benjaminperkins/2018/03/09/capture-a-netsh-network-trace/ )