it-swarm.com.de

Filtern nach Prozess/PID in Wireshark

Gibt es eine Möglichkeit, einen TCP / SSL stream basierend auf einer bestimmten Prozess-ID mit Wireshark zu filtern/zu verfolgen?

96
Ryan Fernandes

Ich sehe nicht wie. Die PID schafft es (normalerweise) nicht auf den Draht. Außerdem können Sie mit Wireshark sehen, was sich auf dem Draht befindet - möglicherweise alle - Maschinen, die über den Draht kommunizieren. Prozess-IDs sind ohnehin auf verschiedenen Maschinen nicht eindeutig.

48
Vinay Sajip

Für den Fall, dass Sie nach einem alternativen Weg suchen und die Umgebung, die Sie verwenden, Windows ist, ist Microsoft Network Monitor 3.3 eine gute Wahl. Es hat die Spalte für den Prozessnamen. Sie können es einfach über das Kontextmenü zu einem Filter hinzufügen und den Filter anwenden. Wie üblich ist die GUI sehr intuitiv ...

82
Sreejith Menon

Sie könnten die Portnummern von Wireshark bis zu Portnummern von netstat angeben, die Ihnen die PID eines Prozesses mitteilen, der diesen Port überwacht.

13
tw39124

Verwenden Sie Microsoft Message Analyzer v1.4

Navigieren Sie in der Feldauswahl zu ProcessId.

Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId

Rechtsklick und Als Spalte hinzufügen

9
Enki

Unter Windows gibt es einen experimentellen Build, der dies ausführt, wie in der Mailingliste beschrieben, Nach lokalem Prozessnamen filtern

3
patraulea

Dies ist eine wichtige Maßnahme, um zu überwachen, wo bestimmte Prozesse versuchen, eine Verbindung herzustellen, und es scheint, dass es unter Linux keine bequeme Möglichkeit gibt, dies zu tun. Es sind jedoch mehrere Problemumgehungen möglich, und ich denke, es lohnt sich, sie zu erwähnen.

Es gibt ein Programm namens nonet , mit dem ein Programm ohne Internetzugang ausgeführt werden kann (ich habe die meisten Programmstarter auf meinem System damit eingerichtet). Es verwendet setguid, um einen Prozess in der Gruppe nonet auszuführen, und legt eine iptables -regel fest, um alle Verbindungen dieser Gruppe abzulehnen.

Update: Mittlerweile verwende ich ein noch einfacheres System, mit ferm kann man leicht eine lesbare iptables-Konfiguration haben und einfach das Programm sg verwenden, um ein Programm mit einer bestimmten Gruppe auszuführen. Mit Iptables können Sie auch den Verkehr umleiten, sodass Sie diesen sogar zu einer separaten Schnittstelle oder einem lokalen Proxy an einem Port routen können, mit dem Sie in Wireshark filtern oder die Pakete direkt von iptables aus protokollieren können, wenn Sie nicht das gesamte Internet deaktivieren möchten Verkehr auschecken.

Es ist nicht sehr kompliziert, es so anzupassen, dass ein Programm in einer Gruppe ausgeführt wird und der gesamte andere Datenverkehr mit iptables während der Ausführungsdauer reduziert wird. Anschließend können Sie nur den Datenverkehr dieses Prozesses erfassen.

Wenn ich jemals zum Schreiben komme, werde ich hier einen Link posten.

In einem anderen Hinweis können Sie immer einen Prozess in einer virtuellen Maschine ausführen und die richtige Schnittstelle ausfindig machen, um die Verbindungen zu isolieren, die hergestellt werden, aber das wäre eine ziemlich minderwertige Lösung ...

3
user1115652

Wenn Sie einer Anwendung folgen möchten, die noch gestartet werden muss, ist dies durchaus möglich:

  1. Installieren Sie Docker (siehe https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ ).
  2. Öffne ein Terminal und starte einen winzigen Container: docker run -t -i ubuntu /bin/bash (ändere "ubuntu" in deine Lieblingsdistribution, dies muss nicht dasselbe sein wie in deinem realen System)
  3. Installieren Sie Ihre Anwendung in dem Container auf dieselbe Weise wie in einem realen System.
  4. Starten Sie Wireshark in Ihrem realen System, gehen Sie zu Capture> Optionen. In dem sich öffnenden Fenster sehen Sie alle Ihre Schnittstellen. Statt any, wlan0, eth0, ... wählen Sie stattdessen die neue virtuelle Schnittstelle docker0 aus.
  5. Beginnen Sie mit der Aufnahme
  6. Starten Sie Ihre Anwendung im Container

Möglicherweise haben Sie Zweifel, ob Sie Ihre Software in einem Container ausführen. Hier finden Sie die Antworten auf die Fragen, die Sie wahrscheinlich stellen möchten:

  • Funktioniert meine Anwendung in einem Container? Fast sicher ja, aber Sie müssen vielleicht etwas über Docker lernen, damit es funktioniert
  • Wird meine Anwendung nicht langsam ausgeführt? Unerheblich. Wenn Ihr Programm eine Woche lang umfangreiche Berechnungen durchführt, kann es jetzt eine Woche und 3 Sekunden dauern
  • Was ist, wenn meine Software oder etwas anderes im Container kaputt geht? Das ist das Schöne an Containern. Was im Inneren läuft, kann nur den aktuellen Container zerbrechen und den Rest des Systems nicht verletzen.
1
Garo

In einigen Fällen können Sie nicht nach Prozess-ID filtern. In meinem Fall musste ich zum Beispiel den Datenverkehr eines Prozesses erfassen. Aber ich habe in seiner Konfig-Zielmaschine IP-Adresse gefunden, Filter ip.dst==someip und voila hinzugefügt. Es wird auf keinen Fall funktionieren, aber für einige ist es nützlich.

0
Alex Zhukovskiy

Rufen Sie die Portnummer mit netstat ab:

netstat -b

Und dann den Wireshark-Filter verwenden:

tcp.port == portnumber
0
Sahil Lakhwani