128 votes

Filtrer par processus/PID dans Wireshark

Existe-t-il un moyen de filtrer/suivre un TCP / SSL basé sur un ID de processus particulier en utilisant Wireshark ?

8 votes

À l'heure où nous écrivons ces lignes, Wireshark ne prend toujours pas en charge cette fonctionnalité ; toutefois, vous pouvez suivre son évolution (le cas échéant) dans le [bug 1184][1]. [1] : bugs.wireshark.org/bugzilla/show_bug.cgi?id=1184

1 votes

Y a-t-il un statut de mise à jour pour ce problème ?

0 votes

Pour ceux qui espèrent toujours avoir cette fonctionnalité, le problème a été transféré sur GitLab. aquí .

94voto

Sreejith Menon Points 301

Au cas où vous chercheriez une autre solution et que l'environnement que vous utilisez est Windows, le logiciel de Microsoft Moniteur réseau 3.3 est un bon choix. Il possède la colonne du nom du processus. Vous pouvez facilement l'ajouter à un filtre en utilisant le menu contextuel et appliquer le filtre . Comme d'habitude, l'interface graphique est très intuitive...

10 votes

Microsoft Network Monitor 3.4 est à microsoft.com/fr/download/details.aspx?id=4865

41 votes

Il y a aussi Analyseur de messages Microsoft qui est en fait la version Microsoft de Wireshark (et le successeur de Network Monitor si j'ai bien compris), mais un peu mieux intégré. Dans le sélecteur de colonnes, sous 'Etw'->'EtwProviderMsg', il y a une colonne pour 'PID'. Cela fonctionne bien !

4 votes

Le chemin exact est EtwProviderMsg -> EventRecord -> Header -> ProcessId

64voto

Vinay Sajip Points 41286

Je ne vois pas comment. Le PID n'arrive pas sur le fil (en général), et Wireshark vous permet de regarder ce qui est sur le fil - potentiellement. todo des machines qui communiquent par câble. Les identifiants de processus ne sont pas uniques entre les différentes machines, de toute façon.

7 votes

Bon point c'est ce que j'ai pensé aussi laissez-moi attendre un jour avant de fermer ce dossier, juste au cas où il y aurait un ninja de Wireshark qui réussirait à le faire

40 votes

Wireshark sait quel port est utilisé et le système d'exploitation connaît le PID du processus qui utilise le port. En modifiant le code, il devrait être possible pour Wireshark de faire correspondre le port au PID. Il y a des cas où cela échoue, comme lorsque le système d'exploitation réaffecte un port à une autre application juste avant que Wireshark ne demande au système d'exploitation le PID d'un port. Ce n'est donc pas une solution infaillible, mais si l'utilisateur est conscient de ces limitations, cette fonctionnalité peut être utile.

0 votes

Je dis qu'il suffit d'ajouter un module à wireshark qui écoute les ouvertures/fermetures de port et qui fait correspondre le PID au port. Synchronisez-le avec le processus principal et vous aurez un parfait mappeur port-processus. Cependant, en lisant le bug du commentaire de la question, le module n'est pas aussi simple à créer.

16voto

Tom Woolfrey Points 2010

Vous pourriez faire correspondre les numéros de port de wireshark aux numéros de port de, disons, netstat qui vous indiquera le PID d'un processus écoutant sur ce port.

13 votes

Cela pourrait ne pas fonctionner. Le programme ouvre et ferme beaucoup de ports locaux et distants.

4voto

patraulea Points 36

Sous Windows, il existe une version expérimentale qui fait cela, comme décrit sur la liste de diffusion, Filtrer par le nom du processus local

0 votes

Cela fait, dans Wireshark, le "Vous pourriez faire correspondre les numéros de port de wireshark aux numéros de port de, disons, netstat qui vous dira le PID d'un processus écoutant sur ce port" du commentaire de Tom Woolfrey, donc c'est (comme le message le note) sujet aux limitations de ce mécanisme.

3voto

nus Points 1613

C'est une chose importante à faire pour surveiller où certains processus essaient de se connecter, et il semble qu'il n'y ait pas de moyen pratique de le faire sous Linux. Cependant, plusieurs solutions de contournement sont possibles, et je pense donc qu'il est utile de les mentionner.

Il existe un programme appelé nonet qui permet d'exécuter un programme sans accès à l'Internet (la plupart des lanceurs de programmes sur mon système sont configurés avec ce programme). Il utilise setguid pour lancer un processus dans le groupe nonet et définit une valeur de iptables pour refuser toutes les connexions de ce groupe.

Mise à jour : maintenant j'utilise un système encore plus simple, vous pouvez facilement avoir une configuration iptables lisible avec ferm, et juste utiliser le programme sg pour exécuter un programme avec un groupe spécifique. Iptables vous permet également de rerouter le trafic, vous pouvez même le diriger vers une interface séparée ou un proxy local sur un port qui vous permet de filtrer dans wireshark ou de LOGer les paquets directement à partir d'iptables si vous ne voulez pas désactiver tout Internet pendant que vous vérifiez le trafic.

Il n'est pas très compliqué de l'adapter pour exécuter un programme dans un groupe et couper tout autre trafic avec iptables pour la durée d'exécution et ensuite vous pourriez capturer le trafic de ce processus seulement.

Si j'arrive un jour à l'écrire, je posterai un lien ici.

Dans un autre ordre d'idées, vous pouvez toujours exécuter un processus dans une machine virtuelle et renifler l'interface correcte pour isoler les connexions qu'il établit, mais ce serait une solution bien inférieure...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X