はじめに
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で読み込む
変換後のファイルは正常に読み込み可能です。
逆にetl形式のファイルでは読み込めません。
終わりに
tcpdumpファイルの解析をWindows環境で行う場合の流れについて記載しました。
ポイントはNetwork Analyzerではなくetl2pcapngを利用する点です。
以上、ご参考になれば幸いです。