Como o wireshark.exe no Windows pode ler um fluxo de arquivos pcap?

Como o wireshark.exe no Windows pode ler um fluxo de arquivos pcap?

Esta é provavelmente menos uma questão do Wireshark e mais uma pergunta "como faço para canalizar um arquivo para um aplicativo" no Windows.

No Linux, posso capturar um arquivo pcap em outro host com tcpdump e canalizá-lo de volta para o wireshark na máquina local para uma experiência de captura ao vivo: ssh host sudo tcpdump -iany -U -s0 -w - 'not port 22' | wireshark-gtk -k -i -. Também posso iniciar de uma máquina Windows para uma máquina Linux que tenha o tcpdump instalado: plink.exe -ssh -pw password user@host "tcpdump -ni any -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -. Ambos funcionam bem, desde que eu tenha acesso a um shell e ao tcpdump. Mas eu não.

A máquina de destino (AVM Fritzbox) não possui ssh ou telnet (não mais). Não consigo fazer login em um shell. Eu só tenho acesso à web.

Então eu tenho um arquivo pcap que está sendo constantemente preenchido com dados. É uma captura ao vivo de uma sessão do Chrome parahttp://fritz.box/html/capture.htmlsendo transmitido para minha pasta de downloads. Acredito que o roteador fritzbox está usando tcpdump internamente, transmitindo a saída como arquivo para minha pasta local de downloads do Windows).

Quero ver esse arquivo ativo em wireshark.exe também, semelhante à variante do Linux acima.

O seguinte não funciona (com o PowerShall quase equivalente a tail -f): Get-Content "path-to-file-being-downloaded" -wait | .\Wireshark.exe -i -. O Wireshark simplesmente não está iniciando. Acho que isso ocorre porque o pipe está enviando um objeto, não um fluxo. Se eu fizer isso Get-Content "path-to-file-being-downloaded" | .\Wireshark.exe -i -(sem "-wait"), o Wireshark iniciará sem abrir um arquivo, portanto, não parece ver a entrada canalizada.

Get-Content "path-to-file-being-downloaded" -waitme dará uma visão semelhante a tail -f de algum jargão que parece representar o conteúdo de um arquivo pcap. Se eu abrir o mesmo arquivo com .\Wireshark.exe "path-to-file-being-downloaded", o wireshark começa com o conteúdo do arquivo, mas reclama que é "interrompido no meio de um pacote" .. obviamente ..

Como posso dizer ao wireshark no Windows para seguir um arquivo pcap que ainda está sendo preenchido com dados, semelhante ao comando linux acima? Em outras palavras, como posso canalizar esse arquivo continuamente para o wireshark.exe?

Obrigado Dan

Responder1

Esta solução envolve WSL2, mas funcionará perfeitamente para a versão Windows do Wireshark.

Basicamente você executa o seguinte no WSL2:

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

Dado que o Wireshark está instalado no local padrão. Ajuste às suas necessidades e ambiente.

informação relacionada