Windows 上の wireshark.exe はどのようにして pcap ファイル ストリームから読み取ることができるのでしょうか?

Windows 上の wireshark.exe はどのようにして pcap ファイル ストリームから読み取ることができるのでしょうか?

これはおそらく、Wireshark に関する質問というよりは、Windows で「ファイルをアプリケーションにパイプするにはどうすればよいか」に関する質問です。

Linux では、tcpdump を使用して別のホスト上の pcap ファイルをキャプチャし、それをローカル マシン上の wireshark にパイプしてライブ キャプチャ エクスペリエンスを実現できます。ssh host sudo tcpdump -iany -U -s0 -w - 'not port 22' | wireshark-gtk -k -i -また、Windows マシンから tcpdump がインストールされている Linux マシンを開始することもできます。plink.exe -ssh -pw password user@host "tcpdump -ni any -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -シェルと tcpdump にアクセスできる限り、どちらも正常に動作します。しかし、私はそうしません。

ターゲット マシン (AVM Fritzbox) には ssh または telnet がありません (もうありません)。シェルにログインできません。Web アクセスのみ可能です。

常にデータが詰め込まれているpcapファイルがあります。これはChromeセッションからのライブキャプチャですhttp://fritz.box/html/capture.htmlダウンロード フォルダーにストリーミングされています。Fritzbox ルーターは内部で tcpdump を使用して、出力をファイルとしてローカルの Windows ダウンロード フォルダーにストリーミングしていると思います。

上記の Linux バリアントと同様に、wireshark.exe でもそのファイルをライブで確認したいと思います。

以下は動作しません (PowerShall のほぼ同等の tail -f を使用)。 Get-Content "path-to-file-being-downloaded" -wait | .\Wireshark.exe -i -Wireshark が単に起動しません。これは、パイプがストリームではなくオブジェクトを送信しているためだと思います。これを実行するとGet-Content "path-to-file-being-downloaded" | .\Wireshark.exe -i -(「-wait」なし)、Wireshark はファイルを開かずに起動するため、パイプされた入力を認識しないようです。

Get-Content "path-to-file-being-downloaded" -waitは、pcap ファイルの内容を表すと思われる意味不明な文字列を tail -f のように表示します。 で同じファイルを開くと.\Wireshark.exe "path-to-file-being-downloaded"、wireshark はファイルの内容から開始しますが、「パケットの途中で中断されている」というエラーが表示されます。当然のことですが。

上記の Linux コマンドと同様に、Windows 上の Wireshark に、まだデータが入力されている pcap ファイルを追跡するように指示するにはどうすればよいでしょうか。言い換えると、そのファイルを継続的に wireshark.exe にパイプするにはどうすればよいでしょうか。

ありがとう、ダン

答え1

このソリューションには WSL2 が含まれますが、Windows バージョンの Wireshark でも問題なく動作します。

基本的に、WSL2 では以下を実行します。

ssh user@server 'tcpdump -U -i eth0 -w -' | /mnt/c/Program\ Files/Wireshark/Wireshark.exe -k -i -

Wireshark はデフォルトの場所にインストールされているため、要件と環境に合わせて調整してください。

関連情報