(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Windows】netshでパケットキャプチャを行いWiresharkで解析する

スポンサーリンク

はじめに

Windowsにて取得できるetl形式のパケットキャプチャログを変換するツール(Network Analyzer)が2019年に廃止になったので、最新版の手順でWiresharkに流し込む手順を調査しました。

netshコマンドはWindowsServerでも同じく利用できます。

環境情報
  • Windows 10 Enterprise
  • Wireshark 3.2.2

パケットキャプチャ手順

Powershellを管理者権限で開き以下コマンドでトレースを行えます。

>  netsh trace start capture=yes

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

オプションとしては以下のような指定も可能です。

netsh trace start capture=yes CaptureInterface=“Ethernet” Ethernet.Type=IPv4 maxSize=500 traceFile=C:\test.etl

また、本コマンドは管理者権限でなければ以下のようにエラーとなります。

> netsh trace start capture=yes
要求された操作には、権限の昇格が必要です。管理者として実行してください。詳細については、トレース start ヘルプを参照してください。

キャプチャ状況は以下コマンドで確認でき

> netsh trace show status
>>
ステータス:           実行中
トレース ファイル:    C:\Users\xxxx\AppData\Local\Temp\NetTraces\NetTrace.etl
追加:                 オフ
循環:                 オン
最大サイズ:           250 MB
レポート:             オフ

プロバイダー:
名前:               Microsoft-Windows-NDIS-PacketCapture
プロバイダー GUID:  {2ED6006E-...}
レベル:             4 (win:Informational)
キーワード:         0xFFFFFFFFFFFFFFFF (Ethernet802.3,WirelessWAN,Tunnel,...)

以下コマンドでトレースを終了できます。

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

該当のディレクトリには以下の2ファイルが存在しています。今回利用するのはetl(event trace log)です。

NetTrace.cab
NetTrace.etl

etl形式をapng形式に変更する

以下のツールがマイクロソフト社から「etl2pcapng.exe」というファイル名でリリースされているのでダウンロードし

etl2pcapng.exe hoge.etl hoge.pcapngという構文で変換可能です。

C:\...\etl2pcapng\x64\etl2pcapng.exe C:\Users\XX\AppData\Local\Temp\NetTraces\NetTrace.etl C:\Users\XX\Downloads\hoge.pcapng
IF: medium=eth  ID=0    IfIndex=3
IF: medium=eth  ID=1    IfIndex=8
IF: medium=wifi ID=2    IfIndex=24
IF: medium=eth  ID=3    IfIndex=30
Converted 6089 frames

Wiresharkで読み込む

変換後のファイルは正常に読み込み可能です。

f:id:mtiit:20200323145349p:plain
Wiresharkで読み込める形式になっている

逆にetl形式のファイルでは読み込めません。

f:id:mtiit:20200323145622p:plain
netshで取ったファイルは読み込めない

終わりに

tcpdumpファイルの解析をWindows環境で行う場合の流れについて記載しました。
ポイントはNetwork Analyzerではなくetl2pcapngを利用する点です。

以上、ご参考になれば幸いです。