Как 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, приведенному выше.

Следующее не работает (с почти эквивалентом Tail -f для PowerShall):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даст мне вид, похожий на хвост -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 установлен в папку по умолчанию. Приспосабливайтесь к вашим требованиям и окружающей среде.

Другие вопросы по тегам