isoler l'application et vérifier les paquets qu'elle envoie sur Internet

18

Je ne suis pas sûr que ce genre de question soit approprié ici, alors pardonnez-moi si je me trompe.

Voici un problème: je veux voir ce qu'un programme spécifique envoie sur Internet, mais le fait est que sur l'ordinateur il y a beaucoup d'applications et de services qui utilisent Internet. Il est donc impossible de déterminer quels paquets sont envoyés par une application qui m'intéresse.

Une façon consiste à essayer de fermer toutes les autres applications, mais cela est impossible.

Existe-t-il un moyen d'isoler une application spécifique? Je travaille sur Windows7 et capture des paquets avec Wireshark

Salvador Dali
la source

Réponses:

13

Étant donné que vous utilisez Wireshark, vos numéros de port ne sont pas automatiquement résolus en nom d'application, vous devrez donc en faire un peu plus pour affiner les informations que vous recherchez. Chaque application utilisant TCP / IP pour communiquer à travers un réseau utilisera des ports, de sorte que la pile réseau sache où livrer les segments (j'aime l'appeler une adresse d'application).

Les clients se connectant à une application serveur sur un port spécifique se verront attribuer dynamiquement un numéro de port à partir d'une plage dynamique. Vous devez donc d'abord savoir quelles connexions TCP / UDP votre application a ouvertes:

netstat -b

sur la ligne de commande vous donnera une liste des connexions avec le nom de l'exécutable qui a créé la connexion. Chaque exécutable a une ou plusieurs connexions répertoriées comme 127.0.0.1:xxxxx, où X est le numéro de port local pour la connexion.

Maintenant, dans wirehark, vous devez lui indiquer d'afficher les paquets provenant de ou destinés à ce port en utilisant un ou plusieurs des filtres suivants:

tcp.port == xxxxx ou udp.port == xxxxx

Ajoutez un supplément or tcp.port == xxxxxpour chaque connexion que vous souhaitez afficher.

Cela vous permettra de voir tout le trafic pour les connexions ouvertes par votre application et Wireshark n'inclura pas uniquement les segments TCP / UDP bruts mais il inclura les divers protocoles de couche application (par exemple HTTP) qui utilisaient également ces numéros de port.

Si votre application semble communiquer avec un seul serveur, vous pouvez simplement utiliser l'adresse IP de ce serveur pour filtrer par:

ip.addr == x.x.x.x
John
la source
Le plus gros problème avec les sockets (en utilisant des ports non réservés) est qu'un socket ouvert et fermé par une application est de nature très dynamique. Lorsque vous exécutez la commande netstat -b, vous obtiendrez des résultats différents pour chaque application répertoriée, même si vous l'exécutez dans un intervalle de 5 secondes. Il est donc très difficile de remarquer tous les numéros de port qui sont attribués à mon application. J'observais la même chose pour mon application dans l'outil "TCPView" (suite sysInternals). J'ai vu qu'en 10 secondes environ 15 connexions socket TCP ont été ouvertes par mon application et beaucoup d'entre elles ont également été tuées
RBT
1
C'est là que le Moniteur réseau Microsoft est utile, car il peut suivre le processus d'où provient la communication réseau et le regrouper sous ce processus. Cependant, depuis que cela a été écrit, une nouvelle version majeure de Wireshark a été publiée. Il se peut qu'un tel regroupement soit également possible en utilisant Wireshark, mais je ne l'ai pas utilisé depuis longtemps.
john
7

Si vous utilisez Process Monitor de Microsoft , vous pouvez modifier les filtres pour afficher uniquement les communications réseau de processus spécifiques. Il ne vous donne pas le contenu des paquets, mais il montre à quels hôtes l'application parle.

long cou
la source
1
? Il voulait voir les paquets.
Pacerier
1

Microsoft Network Monitor vous montrera le processus responsable du flux de trafic.

joeqwerty
la source
1

J'ai trouvé Microsoft Message Analyzer très utile pour exactement le même but. Il permet de capturer le trafic réseau et de l'agréger par arborescence de processus.

YaoLen
la source
0

Utilisez System Internals Process Monitor pour obtenir le numéro de processus de candidature et consultez les autres outils System Internal à l'adresse suivante:

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

Ouvrez cmd.exe et exécutez, affichez les options de ligne de commande netstat, netstat /? .

Essayez maintenant netstat -bo 1 >> c: /test.log. Cela vous permettra de trouver les données de connexion réseau de vos applications spécifiques dans un fichier constamment mis à jour.

N'oubliez pas que vous devez empêcher netstat -bo >> c: /test.log d'écrire dans le journal en entrant un ctl-C dans la fenêtre cmd.

Jef Mar
la source
-2

Remplacez simplement My_Applicationpar votre application PNAMEouPID

netstat --programmes | grep "My_Application"

Je ne le teste pas sur Windows 7. mais cela fonctionne sous Linux.

Mostafa Lavaei
la source