Existe-t-il un moyen de filtrer/suivre un flux TCP / SSL basé sur un ID de processus particulier à l'aide de Wireshark ?
Je ne vois pas comment Le PID ne se rend pas sur le fil (en général), plus Wireshark vous permet de regarder ce qui est sur le fil - potentiellement tous les machines qui communiquent sur le fil. Les ID de processus ne sont pas uniques sur différentes machines, de toute façon.
Juste au cas où vous recherchiez une solution de rechange et que l'environnement utilisé soit Windows, le logiciel Moniteur réseau 3.3 de Microsoft est un bon choix. Il a la colonne du nom du processus. Vous l'ajoutez facilement à un filtre à l'aide du menu contextuel et appliquez le filtre. Comme d'habitude, l'interface graphique est très intuitive ...
Vous pouvez faire correspondre les numéros de port de Warshark aux numéros de port de, par exemple, netstat , qui vous indiqueront le PID d'un processus écoutant ce port.
Utiliser Microsoft Message Analyzer v1.4
Accédez à ProcessId à partir du sélecteur de champ.
Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId
Clic droit et Ajouter comme colonne
Sous Windows, une construction expérimentale effectue cette opération, comme décrit dans la liste de diffusion, Filtre par nom de processus local
C'est une chose importante à faire pour surveiller lorsque 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 j'estime qu'il convient de les mentionner.
Il existe un programme appelé nonet qui permet de lancer un programme sans accès à Internet (la plupart des lanceurs de programmes de mon système sont configurés avec celui-ci). Il utilise setguid pour exécuter un processus dans le groupe nonet et définit une règle iptables pour refuser toutes les connexions de ce groupe.
Mise à jour: à présent, j'utilise un système encore plus simple, vous pouvez facilement avoir une configuration lisible de iptables avec ferm et utiliser simplement le programme sg
pour exécuter un programme avec un groupe spécifique. Iptables vous permet également de rediriger le trafic afin que vous puissiez même l'acheminer vers une interface séparée ou un proxy local sur un port, ce qui vous permet de filtrer en fils ou de journaliser les paquets directement depuis iptables si vous ne souhaitez pas désactiver tout Internet. sont en train de vérifier le trafic.
Ce n'est pas très compliqué de l'adapter pour exécuter un programme dans un groupe et couper tout le trafic avec iptables pour la durée de vie d'exécution. Vous pouvez ensuite capturer le trafic à partir de ce processus uniquement.
Si jamais je viens l'écrire, je posterai un lien ici.
Sur une autre note, vous pouvez toujours exécuter un processus dans une machine virtuelle et détecter l'interface correcte pour isoler les connexions établies, mais ce serait une solution bien inférieure ...
Si vous souhaitez suivre une application qui doit encore être démarrée, il est certainement possible:
docker run -t -i ubuntu /bin/bash
(remplacez "ubuntu" par votre distribution préférée, cela ne doit pas nécessairement être identique à celui de votre système réel)any
, wlan0
, eth0
, ... choisissez plutôt la nouvelle interface virtuelle docker0
.Vous avez peut-être des doutes sur l'exécution de votre logiciel dans un conteneur, voici donc les réponses aux questions que vous voudrez probablement poser:
Dans certains cas, vous ne pouvez pas filtrer par ID de processus. Par exemple, dans mon cas, j'avais besoin de renifler le trafic d'un processus. Mais j'ai trouvé dans sa configuration l'adresse IP de la machine cible, ajouté le filtre ip.dst==someip
et le tour est joué. Cela ne fonctionnera pas dans tous les cas, mais pour certains, c'est utile.
Obtenez le numéro de port en utilisant netstat
:
netstat -b
Et utilisez ensuite le filtre Wireshark:
tcp.port == portnumber