Как wireshark.exe в Windows может считывать данные из потока файлов pcap?

Как wireshark.exe в Windows может считывать данные из потока файлов pcap?

Это, вероятно, не столько вопрос Wireshark, сколько вопрос «как передать файл в приложение» в Windows.

На Linux я могу захватить файл pcap на другом хосте с помощью tcpdump и передать его обратно в Wireshark на локальной машине для живого захвата: ssh host sudo tcpdump -iany -U -s0 -w - 'not port 22' | wireshark-gtk -k -i -. Я также могу запустить с машины Windows машину Linux, на которой установлен tcpdump: 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 (больше нет). Я не могу войти в оболочку. У меня есть только веб-доступ.

Итак, у меня есть файл pcap, который постоянно заполняется данными. Это живой захват из сеанса Chrome дляhttp://fritz.box/html/capture.htmlпередаются в мою папку загрузок. Я полагаю, что маршрутизатор fritzbox использует tcpdump внутренне, передавая вывод в виде файла в мою локальную папку загрузок Windows).

Я хочу также увидеть этот файл в wireshark.exe, подобно варианту для Linux, приведенному выше.

Следующее не работает (с 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даст мне представление типа tail -f на какую-то тарабарщину, которая, похоже, представляет содержимое файла pcap. Если я открою тот же файл с помощью .\Wireshark.exe "path-to-file-being-downloaded", wireshark начнет с содержимого файла, но жалуется, что он "обрезан в середине пакета".. очевидно..

Как мне сказать wireshark на windows, чтобы он следовал за файлом pcap, который все еще заполняется данными, подобно команде linux выше? Другими словами, как мне можно непрерывно передавать этот файл в wireshark.exe?

Спасибо, Дэн.

решение1

Это решение использует WSL2, но будет отлично работать и с версией Wireshark для Windows.

По сути, в WSL2 выполняется следующее:

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

Учитывая, что Wireshark установлен в месте по умолчанию. Настройте в соответствии с вашими требованиями и средой.

Связанный контент