Isolieren Sie die Anwendung und überprüfen Sie, welche Pakete über das Internet gesendet werden

18

Ich bin mir nicht sicher, ob diese Art von Frage hier angebracht ist. Verzeihen Sie mir, wenn ich mich irre.

Hier ist ein Problem: Ich möchte sehen, was ein bestimmtes Programm ins Internet sendet, aber die Sache ist, dass es auf dem Computer viele Anwendungen und Dienste gibt, die das Internet nutzen. Es ist also unmöglich herauszufinden, welche Pakete von einer App gesendet wurden, an der ich interessiert bin.

Eine Möglichkeit besteht darin, zu versuchen, alle anderen Anwendungen zu schließen. Dies ist jedoch nicht möglich.

Gibt es eine Möglichkeit, eine bestimmte Anwendung zu isolieren? Ich arbeite an Windows7 und erfasse Pakete mit Wireshark

Salvador Dali
quelle

Antworten:

13

Angesichts der Tatsache, dass Sie Wireshark verwenden, werden Ihre Portnummern nicht automatisch in einen Anwendungsnamen aufgelöst. Daher müssen Sie etwas mehr tun, um die gesuchten Informationen zu verfeinern. Jede Anwendung, die TCP / IP für die Kommunikation über ein Netzwerk verwendet, verwendet Ports, sodass der Netzwerkstapel weiß, wohin Segmente zu liefern sind (ich bezeichne sie gerne als Anwendungsadresse).

Clients, die über einen bestimmten Port eine Verbindung zu einer Serveranwendung herstellen, wird dynamisch eine Portnummer aus einem dynamischen Bereich zugewiesen. Sie müssen also zuerst herausfinden, welche TCP / UDP-Verbindungen Ihre Anwendung geöffnet hat:

netstat -b

In der Befehlszeile erhalten Sie eine Liste der Verbindungen mit dem Namen der ausführbaren Datei, die die Verbindung erstellt hat. Jede ausführbare Datei verfügt über eine oder mehrere Verbindungen, die als 127.0.0.1:xxxxx aufgeführt sind, wobei X die lokale Portnummer für die Verbindung ist.

Jetzt müssen Sie in wireshark festlegen, dass Pakete, die von diesem Port stammen oder für diesen Port bestimmt sind, angezeigt werden sollen, indem Sie einen oder mehrere der folgenden Filter verwenden:

tcp.port == xxxxx oder udp.port == xxxxx

Fügen Sie or tcp.port == xxxxxfür jede Verbindung, die Sie anzeigen möchten, eine zusätzliche hinzu .

Auf diese Weise können Sie den gesamten Datenverkehr für die Verbindungen sehen, die Ihre Anwendung geöffnet hat. Wireshark enthält nicht nur unformatierte TCP / UDP-Segmente, sondern auch die verschiedenen Protokolle der Anwendungsebene (z. B. HTTP), die diese Portnummern verwendet haben.

Wenn Ihre Anwendung scheinbar nur mit einem Server kommuniziert, können Sie die IP-Adresse dieses Servers verwenden, um nach Folgendem zu filtern:

ip.addr == x.x.x.x
John
quelle
Das größte Problem bei Sockets (die nicht reservierte Ports verwenden) ist, dass ein Socket, der von einer Anwendung geöffnet und geschlossen wird, sehr dynamisch ist. Wenn Sie den Befehl netstat -b ausführen, werden für jede aufgelistete Anwendung unterschiedliche Ergebnisse ausgegeben, auch wenn Sie sie in Intervallen von 5 Sekunden ausführen. Daher ist es sehr schwierig, alle Portnummern zu erkennen, die meiner Anwendung zugewiesen werden. Das gleiche habe ich für meine Anwendung im Tool "TCPView" (sysInternals suite) beobachtet. Ich habe gesehen, dass in einer Zeitspanne von 10 Sekunden ungefähr 15 TCP-Socket-Verbindungen von meiner Anwendung geöffnet wurden und viele von ihnen auch getötet wurden
RBT
1
Hier bietet sich Microsoft Network Monitor an, da es den Prozess, von dem die Netzwerkkommunikation ausgeht, nachverfolgen und unter diesem Prozess gruppieren kann. Seit dieser Veröffentlichung wurde jedoch eine neue Hauptversion von Wireshark veröffentlicht. Es kann sein, dass eine solche Gruppierung auch mit Wireshark möglich ist, aber ich habe es eine Weile nicht mehr verwendet.
John
7

Wenn Sie Process Monitor von Microsoft verwenden , können Sie die Filter so ändern, dass nur die Netzwerkkommunikation von bestimmten Prozessen angezeigt wird. Der Inhalt der Pakete wird nicht angezeigt, es wird jedoch angezeigt, mit welchen Hosts die App kommuniziert.

langer Hals
quelle
1
? Er wollte die Pakete sehen.
Pacerier
1

Microsoft Network Monitor zeigt Ihnen den Prozess, der für den Verkehrsfluss verantwortlich ist.

Joeqwerty
quelle
1

Ich fand Microsoft Message Analyzer sehr nützlich für genau den gleichen Zweck. Es ermöglicht, den Netzwerkverkehr zu erfassen und nach Prozessbaum zu aggregieren.

YaoLen
quelle
0

Verwenden Sie den System Internals Process Monitor, um die Nummer des Anwendungsprozesses abzurufen und die anderen systeminternen Tools zu überprüfen:

https://docs.microsoft.com/en-us/sysinternals/

Öffne cmd.exe und starte, zeige netstat Kommandozeilenoptionen, netstat /? .

Versuchen Sie nun netstat -bo 1 >> c: /test.log. Auf diese Weise können Sie die Netzwerkverbindungsdaten Ihrer spezifischen Anwendungen in einer ständig aktualisierten Datei suchen.

Denken Sie daran, dass Sie netstat -bo >> c: /test.log daran hindern müssen, in das Protokoll zu schreiben, indem Sie ctl-C in das cmd-Fenster eingeben.

Jef Mar
quelle
-2

Ersetzen My_ApplicationSie einfach mit Ihrer Anwendung PNAMEoderPID

netstat - programme | grep "My_Application"

Ich teste es nicht unter Windows 7. Aber es funktioniert unter Linux.

Mostafa Lavaei
quelle