このエントリーをはてなブックマークに追加


Windowsのnetshコマンドでパケットキャプチャする方法

Windowsの標準コマンドである、netshコマンドとtraceオプションにより、パケットキャプチャが可能です。
本資料は、netshコマンドを使ってパケットキャプチャする方法と採取したパケットを閲覧するにあたりMicrosoft Message Analyzerを紹介します。
Wiresharkでも採取したパケットを閲覧することは可能ですが、フリーソフトがインストールできない場合などにはMicrosoft Message Analyzerが使えます。

注意
Microsoft Message Analyzerは廃止になっています。


使用したOS

  • Windows 10 64bit

関連サイト

ダウンロードリンク

関連記事

netsh trace start コマンド

netsh traceコマンドを実行するため、コマンドプロンプトを管理者として実行してください。

以下のコマンドを実行すると、netsh trace startにつついてのオプションを確認することができます。

netsh trace start /?

C:\WINDOWS\system32>netsh trace start /?

start
 トレースを開始します。

 使用法: trace start [sessionname=<セッション名>]
       [[scenario=]<シナリオ 1,シナリオ 2>]
       [[globalKeywords=]keywords] [[globalLevel=]level]
       [[capture=]yes|no] [[capturetype=]physical|vmswitch|both]
       [[report=]yes|no|disabled] [[persistent=]yes|no]
       [[traceFile=]path\filename] [[maxSize=]filemaxsize]
       [[fileMode=]single|circular|append] [[overwrite=]yes|no]
       [[correlation=]yes|no|disabled] [capturefilters]
       [[provider=]providerIdOrName] [[keywords=]keywordMaskOrSet]
       [[level=]level] [bufferSize=<バッファー サイズ>]
       [[[provider=]provider2IdOrName] [[providerFilter=]yes|no]]
       [[keywords=]keyword2MaskOrSet] [[perfMerge=]yes|no]
       [[level=]level2] ...

既定値:
       capture=no (トレース イベントに加え、パケット キャプチャを
               有効にするかどうかを指定します)
       capturetype=physical (パケット キャプチャを有効にする必要がある
               対象として、物理ネットワーク アダプターのみ、仮想スイッチのみ、
               または物理ネットワーク アダプターと仮想スイッチの両方を指定します)
       report=no (トレース ファイルと共に、補足レポートを
               生成するかどうかを指定します)
       persistent=no (再起動後に、netsh trace stop を発行するまで
               トレース セッションを続行するかどうかを指定します)
       maxSize=250 MB (最大トレース ファイル サイズを指定します。0 = 最大値なし)
       bufferSize=512 (トレース バッファー サイズを KB 単位で指定します。最小値 4、最大値 16384)
       fileMode=circular
       overwrite=yes (既存のトレース出力ファイルを上書きするかどうかを
               指定します)
       correlation=disabled (関連するイベントを相互に関連付け、グループ化
               するかどうかを指定します)
       perfMerge=yes (パフォーマンス メタデータをトレースに結合するか
               どうかを指定します)
       traceFile=%LOCALAPPDATA%\Temp\NetTraces\[sessionname]NetTrace.etl
               (出力ファイルの場所を指定します)
       providerFilter=no (プロバイダー フィルターを有効にするかどうかを指定します)
       sessionname='' (同時トレースを収集できるように、トレース セッションの名前を
               指定します)

プロバイダー キーワードの既定値は all で、レベルは 255 になります (キーワードとレベルが指定されていない場合)。

例:

netsh trace start scenario=InternetClient capture=yes

       パケット キャプチャを物理ネットワーク アダプターに対してのみ有効にして
               InternetClient シナリオと依存プロバイダーのトレースを開始します。
       "netsh trace stop" コマンドが発行されるか、システムが再起動すると、
               トレースは停止します。
       出力ファイルには、既定の場所と名前が使用されます。古いファイルが
               存在する場合、それらは上書きされます。

netsh trace start provider=microsoft-windows-wlan-autoconfig
       keywords=state,ut:authentication

       microsoft-windows-wlan-autoconfig プロバイダーのトレースを開始します。
       "netsh trace stop" コマンドが発行されるか、システムが再起動すると、
               トレースは停止します。
       出力ファイルには、既定の場所と名前が使用されます。古いファイルが
               存在する場合、それらは上書きされます。
       キーワード 'state' または 'ut:authentication' が含まれるイベントのみのログが記録されます。

       netsh trace show provider コマンドを使用すると、サポートされたキー
               ワードとレベルを表示できます。

キャプチャ フィルター:

       キャプチャ フィルターは、capture=yes を指定してキャプチャが明示的に
       有効になっているときにだけサポートされます。サポートされるキャプチャ
       フィルターとその使用法の一覧を表示するには、'netsh trace show CaptureFilterHelp' を使用します。

プロバイダー フィルター:
       プロバイダー フィルターは、複数のプロバイダーでサポートされます。有効に
       するには、各プロバイダーの後に providerFilter=Yes を指定します。
       各プロバイダーでサポートされるプロバイダー フィルターとその使用法の
       一覧を表示するには、'netsh trace show ProviderFilterHelp' を使用します。

パケットをキャプチャしてみる

netsh trace startコマンドのパケットキャプチャについていくつかの例を以下に記します。
コマンドプロンプトを管理者として実行してください。

パケットをキャプチャする

以下の構文でパケットキャプチャが開始されます。

netsh trace start capture=yes

デフォルト値の250MBまでキャプチャされます。
以下、実際にコマンドを実行したときの出力です。

C:\>netsh trace start capture=yes

トレース構成:
-------------------------------------------------------------------
ステータス:           実行中
トレース ファイル:    C:\Users\sakura\AppData\Local\Temp\NetTraces\NetTrace.etl
追加:                 オフ
循環:                 オン
最大サイズ:           250 MB
レポート:             オフ

上記の出力がされ、プロンプトが入力待ちに戻ります。
尚、パケットキャプチャはバックグランドで実行されています。
トレースファイルを確認すると、ファイルが作成されているのが確認できます。

C:\>dir c:\users\sakura\AppData\Local\Temp\NetTraces\*
ドライブ C のボリューム ラベルは Windows です
ボリューム シリアル番号は ****-**** です

 c:\users\sakura\AppData\Local\Temp\NetTraces のディレクトリ

2019/03/18  08:51    <DIR>          .
2019/03/18  08:51    <DIR>          ..
2019/03/18  08:51    <DIR>          NetTrace
2019/03/18  08:51           524,288 NetTrace.etl
               1 個のファイル             524,288 バイト
               3 個のディレクトリ  30,412,132,352 バイトの空き領域

キャプチャの中止

上記のキャプチャを中止したい場合は、以下のコマンドを実行します。

netsh trace stop

本コマンドを実行するとしばらくプロンプトが返ってきません。(結構かかります。)
プロンプトが入力待ちになるまでお待ちください。
以下、上記コマンドを実行したときの出力となります。

C:\>netsh trace stop
トレースの結合中... 完了
データ収集を生成しています ... 完了
トレース ファイルと追加のトラブルシューティング情報は、"C:\Users\sakura\AppData\Local\Temp\NetTraces\NetTrace.cab" としてコンパイルされました。
ファイルの場所 = C:\Users\sakura\AppData\Local\Temp\NetTraces\NetTrace.etl
トレース セッションは正常に停止しました。

出力先を指定する

上記では出力先を指定せず、実行したところ、環境変数TEMPのディレクトリに保存されました。
出力先を指定するには、tracefile=を使用します。
構文は以下のようになります。

netsh trace start capture=yes tracefile=ファイル名

実際に実行したときの出力です。

C:\>netsh trace start capture=yes tracefile=c:\sakura.etl
トレース構成:
-------------------------------------------------------------------
ステータス:           実行中
トレース ファイル:    C:\sakura.etl
追加:                 オフ
循環:                 オン
最大サイズ:           250 MB
レポート:             オフ

パケットキャプチャ中は以下のようにsakura.etl, sakuraフォルダが作成されました。

01.png
 

netsh trace stopをすると、フォルダは削除されcabファイルが作成されます。

02.png
 

プロトコルを指定する

TCPやUDPパケットを指定しキャプチャしたい場合は Protocol=UDPやProtocol=TCPとなります。
以下にコマンドを例を記します。

  • TCPが対象
    netsh trace start capture=yes Protocol=TCP tracefile=c:\tcp.etl
  • UDPが対象
    netsh trace start capture=yes Protocol=UDP tracefile=c:\udp.etl

イーサネットタイプを指定する

イーサネットタイプを指定する場合は、以下のようになります。

netsh trace start capture=yes Ethernet.Type=IPv4 tracefile=c:\ipv4.etl

トレースファイルの最大ファイルサイズを指定する

上記の出力の通り、デフォルトのトレースファイルサイズは250MBとなっています。
maxSizeを指定することにより、サイズを変更することができます。
以下、トレースファイルサイズを1024にして実行したときの出力です。

C:\>netsh trace start capture=yes tracefile=c:\max.etl maxSize=1024

トレース構成:
-------------------------------------------------------------------
ステータス:           実行中
トレース ファイル:    C:\max.etl
追加:                 オフ
循環:                 オン
最大サイズ:           1024 MB
レポート:             オフ

Microsoft Message Analyzerを使って閲覧する

Microsoft Message Analyzerをインストールしておいてください。
microsoft Message Analyzerのインストール記事も公開しています。

採取したパケットをキャプチャファイルをMicrosoft Message Analyzerで開いた状態のスクリーンキャプチャです。
etlファイルを開くと採取したキャプチャを閲覧することができます。

b1.png
 

以上、Windows標準のnetshコマンドを使ってネットワークのパケットをキャプチャする方法でした。



添付ファイル: fileb1.png 783件 [詳細] file02.png 637件 [詳細] file01.png 646件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-05 (日) 22:31:18