Existe-t-il un moyen de filtrer/suivre un TCP / SSL basé sur un ID de processus particulier en utilisant Wireshark ?
Microsoft Network Monitor 3.4 est à microsoft.com/fr/download/details.aspx?id=4865
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...
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 !
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
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.
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.
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.
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
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.
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 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.
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í .