Wie kann ich in Wireshark den Netzwerkverkehr eines bestimmten Prozesses anzeigen?
- Netzwerkverkehr eines bestimmten Prozesses in Wireshark anzeigen
- Warum zeigt Wireshark nicht direkt den Prozess an?
- Alternative Vorgehensweisen zur Identifizierung des Prozessverkehrs
- Unter Windows
- Unter Linux
- Wireshark-Filter nutzen
- Zusätzliches Tool zur Prozess-zu-Paket Zuordnung (Windows)
- Zusammenfassung
Netzwerkverkehr eines bestimmten Prozesses in Wireshark anzeigen
Wireshark ist ein mächtiges Tool zur Analyse von Netzwerkverkehr, das jedoch auf den meisten Betriebssystemen nicht direkt den Netzwerkverkehr nach Prozessen filtert. Das bedeutet, dass Wireshark selbst keine Prozessinformationen mit den erfassten Paketen verknüpft. Dennoch gibt es Wege, den Netzwerkverkehr eines bestimmten Prozesses zu identifizieren und in Wireshark zu analysieren, indem ergänzende Werkzeuge verwendet werden.
Warum zeigt Wireshark nicht direkt den Prozess an?
Wireshark arbeitet auf der Ebene der Netzwerkpakete, die von der Netzwerkkarte oder dem Netzwerkstack aufgenommen werden. Pakete enthalten Standardinformationen wie Quell- und Ziel-IP-Adressen, Ports, Protokolltyp usw., aber keine Informationen über den Prozess, der die Pakete erzeugt hat oder empfängt. Dies liegt daran, dass die Zuordnung von Paketen zu einem Prozess eine Schnittstelle zur Betriebssystemebene benötigt, die Wireshark so nicht anbietet.
Alternative Vorgehensweisen zur Identifizierung des Prozessverkehrs
Um den Netzwerkverkehr eines bestimmten Prozesses zu ermitteln, muss man zunächst herausfinden, über welche Ports oder IP-Adressen der Prozess kommuniziert. Danach kann man in Wireshark einen Filter setzen, um nur diese Pakete anzuzeigen. Das Vorgehen unterscheidet sich je nach Betriebssystem.
Unter Windows
In Windows kann man Tools wie Resource Monitor (resmon) oder TCPView verwenden, um aktive Netzwerkverbindungen von Prozessen zu sehen. Im Resource Monitor findet man unter dem Reiter "Netzwerk" eine Liste der Prozesse und der von ihnen verwendeten TCP/UDP-Verbindungen mit den entsprechenden lokalen und entfernten Ports und Adressen.
Alternativ kann man in der Eingabeaufforderung folgendes Kommando verwenden, um offene Verbindungen mit zugehörigen Prozess-IDs (PIDs) anzuzeigen:
netstat -anoDie Ausgabe zeigt unter anderem:
Hat man die PID des interessierenden Prozesses, kann man so die verwendeten Ports herausfinden. Diese Ports werden dann als Filterkriterien in Wireshark verwendet.
Unter Linux
Auf Linux-Systemen lässt sich mit lsof oder ss herausfinden, welche Ports ein Prozess verwendet. Beispielsweise zeigt dieser Befehl offene Netzwerkverbindungen eines bestimmten Prozesses:
lsof -i -a -pAlternativ kann man mit netstat -plant oder ss -plant alle Verbindungen mit Prozess-IDs anzeigen.
Wireshark-Filter nutzen
Nachdem Sie die IP-Adressen und/oder Ports des Prozesses ermittelt haben, können Sie in Wireshark gezielt nach diesen filtern. Ein Beispiel für einen Filter, der den Verkehr eines bestimmten TCP-Ports anzeigt, ist:
tcp.port == 12345Wenn der Prozess mehrere Ports verwendet, kann man mehrere Port-Filter kombinieren, etwa so:
tcp.port == 12345 or tcp.port == 23456Oder man filtert nach IP-Adresse:
ip.addr == 192.168.1.100Durch diese Filterung werden nur die Pakete angezeigt, die zu den dem Prozess zugeordneten Verbindungen gehören.
Zusätzliches Tool zur Prozess-zu-Paket Zuordnung (Windows)
Für eine direktere Zuordnung von Paketen zu Prozessen gibt es unter Windows Spezialtools wie Microsoft Network Monitor oder Microsoft Message Analyzer (letzteres ist allerdings eingestellt). Ebenfalls brauchbar sind Process Monitor (Procmon) in Kombination mit der Netzwerküberwachung. Diese Tools können Paketdaten mit Prozessinformationen verknüpfen und ermöglichen eine gezieltere Analyse.
Ein weiteres, bekanntes Werkzeug ist Sysinternals TCPView, mit dem Live-Netzwerkverbindungen Prozessen zugeordnet werden können. In Kombination mit Wireshark kann man so die relevanten Ports identifizieren.
Zusammenfassung
Wireshark allein kann Netzwerkpakete nicht einem bestimmten Prozess zuordnen, da diese Information in den Paketen nicht enthalten ist. Um den Netzwerkverkehr eines bestimmten Prozesses in Wireshark anzuzeigen, identifizieren Sie zunächst die von dem Prozess verwendeten IP-Adressen und Ports mit Hilfsprogrammen wie netstat, Resource Monitor, lsof oder ss. Anschließend verwenden Sie diese Informationen als Filterkriterien in Wireshark, um nur die für Ihren Prozess relevanten Pakete anzuzeigen.
