web-dev-qa-db-fra.com

Filtrer par processus/PID dans Wireshark

Existe-t-il un moyen de filtrer/suivre un flux TCP / SSL basé sur un ID de processus particulier à l'aide de Wireshark ?

96
Ryan Fernandes

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.

48
Vinay Sajip

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 ...

82
Sreejith Menon

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.

13
tw39124

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

9
Enki

Sous Windows, une construction expérimentale effectue cette opération, comme décrit dans la liste de diffusion, Filtre par nom de processus local

3
patraulea

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 ...

3
user1115652

Si vous souhaitez suivre une application qui doit encore être démarrée, il est certainement possible:

  1. Installer le menu fixe (voir https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ )
  2. Ouvrez un terminal et lancez un petit conteneur: 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)
  3. Installez votre application dans le conteneur en procédant de la même manière que dans un système réel.
  4. Démarrez Wirehark dans votre système réel, accédez à Capture> Options. Dans la fenêtre qui s’ouvrira, vous verrez toutes vos interfaces. Au lieu de choisir any, wlan0, eth0, ... choisissez plutôt la nouvelle interface virtuelle docker0.
  5. Commencer à capturer
  6. Commencez votre application dans le conteneur

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:

  • Mon application fonctionnera-t-elle dans un conteneur? Presque certainement que oui, mais vous devrez peut-être en apprendre un peu plus sur docker pour le faire fonctionner
  • Mon application ne sera-t-elle pas lente? Négligeable. Si votre programme exécute des calculs lourds pendant une semaine, il peut prendre maintenant une semaine et 3 secondes.
  • Et si mon logiciel ou quelque chose d'autre casse dans le conteneur? C'est la bonne chose à propos des conteneurs. Tout ce qui s’exécute à l’intérieur ne peut que casser le conteneur actuel et ne pas nuire au reste du système.
1
Garo

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.

0
Alex Zhukovskiy

Obtenez le numéro de port en utilisant netstat :

netstat -b

Et utilisez ensuite le filtre Wireshark:

tcp.port == portnumber
0
Sahil Lakhwani