Dies ist unter Windows wahrscheinlich weniger eine Wireshark-Frage, sondern eher eine Frage nach der Art „Wie leite ich eine Datei in eine Anwendung weiter?“.
Unter Linux kann ich mit tcpdump eine PCAP-Datei auf einem anderen Host erfassen und sie für eine Live-Erfassung an Wireshark auf dem lokalen Computer zurückleiten: ssh host sudo tcpdump -iany -U -s0 -w - 'not port 22' | wireshark-gtk -k -i -
. Ich kann auch von einem Windows-Computer zu einem Linux-Computer wechseln, auf dem tcpdump installiert ist: plink.exe -ssh -pw password user@host "tcpdump -ni any -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -
. Beides funktioniert einwandfrei, solange ich Zugriff auf eine Shell und tcpdump habe. Aber das habe ich nicht.
Die Zielmaschine (AVM Fritzbox) hat kein SSH oder Telnet (nicht mehr). Ich kann mich nicht bei einer Shell anmelden. Ich habe nur Webzugriff.
Ich habe also eine PCAP-Datei, die ständig mit Daten gefüllt wird. Es ist eine Live-Aufnahme einer Chrome-Sitzung, umhttp://fritz.box/html/capture.htmlwird in meinen Download-Ordner gestreamt. Ich glaube, der Fritzbox-Router verwendet intern tcpdump und streamt die Ausgabe als Datei in meinen lokalen Windows-Download-Ordner).
Ich möchte diese Datei auch live in wireshark.exe sehen, ähnlich wie bei der Linux-Variante oben.
Folgendes funktioniert nicht (mit dem PowerShall-Fast-Äquivalent von tail -f):
Get-Content "path-to-file-being-downloaded" -wait | .\Wireshark.exe -i -
. Wireshark startet einfach nicht. Ich vermute, das liegt daran, dass die Pipe ein Objekt sendet, keinen Stream. Wenn ich das tue Get-Content "path-to-file-being-downloaded" | .\Wireshark.exe -i -
(ohne „-wait“), startet Wireshark, ohne eine Datei zu öffnen, und scheint daher die gepipete Eingabe nicht zu sehen.
Get-Content "path-to-file-being-downloaded" -wait
gibt mir eine tail -f-ähnliche Ansicht von irgendeinem Kauderwelsch, das den Inhalt einer PCAP-Datei darzustellen scheint. Wenn ich dieselbe Datei mit öffne .\Wireshark.exe "path-to-file-being-downloaded"
, beginnt Wireshark mit dem Inhalt der Datei, beschwert sich aber, dass es „mitten in einem Paket abgebrochen“ wird. Offensichtlich …
Wie kann ich Wireshark unter Windows anweisen, einer PCAP-Datei zu folgen, die noch mit Daten gefüllt wird, ähnlich dem obigen Linux-Befehl? Mit anderen Worten, wie kann ich diese Datei kontinuierlich in wireshark.exe weiterleiten?
Danke, Dan
Antwort1
Diese Lösung beinhaltet WSL2, funktioniert aber problemlos mit der Windows-Version von Wireshark.
Grundsätzlich führen Sie in WSL2 Folgendes aus:
ssh user@server 'tcpdump -U -i eth0 -w -' | /mnt/c/Program\ Files/Wireshark/Wireshark.exe -k -i -
Vorausgesetzt, Wireshark ist am Standardspeicherort installiert. Passen Sie es an Ihre Anforderungen und Ihre Umgebung an.