Comment puis-je renifler le trafic de la machine distante avec Wirehark?


38

Je peux renifler le trafic de mon ordinateur local, mais je voudrais savoir comment renifler le trafic d’une machine distante avec Wireshark?

En option de capture, je sélectionne l'interface à distance et saisis mon adresse IP à distance. Que devrais-je faire?


5
Vous pouvez uniquement détecter le trafic détecté par votre interface réseau. Si le réseau est commuté, les paquets vers la machine distante ne vous seront pas envoyés. BTW: essayez d'améliorer votre taux d'acceptation.
Matteo

Réponses:


54

Sous Linux et OSX, vous pouvez y parvenir en exécutant tcpdump sur ssh et en laissant Wireshark écouter sur le tuyau.

  1. Créez un tuyau nommé:

    $ mkfifo /tmp/remote

  2. Démarrer Warshark à partir de la ligne de commande

    $ wireshark -k -i /tmp/remote

  3. Exécutez tcpdump sur ssh sur votre machine distante et redirigez les paquets vers le tube nommé:

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

Source: http://blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/


Est-il possible de capturer les paquets passant par un routeur sur le routeur lui-même de cette façon, ou est-ce quelque chose d'impossible?
Inf3rno

C'est bien. Mon 2c: autoriser [ssh root] n'est généralement pas conseillé, mais vous pouvez l'activer temporairement en ajoutant root à la ligne [Match User] dans / etc / ssh / sshd_config.
moodboom

Cela ne fonctionne pas pour moi, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remotepourriez-vous me dire pourquoi?
Phoenix

@infmo si le routeur peut exécuter tcpdump directement, alors oui, cela devrait être possible. Le mien n'a pas l'espace pour installer tcpdump. Ce n’est pas rare pour les routeurs bas de gamme.
Où est

21

J'utilise cet oneliner comme racine. Est très utile!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

Le dernier -avant de de |est la redirection de cette sortie et est utilisé pour une entrée standard par Wirehark. L’ -koption de Wireshark signifie "commencer à renifler immédiatement


Meilleure première réponse que j'ai jamais vue.
samedi

10

Une approche consiste à utiliser ce que l'on appelle un port miroir ou étendu sur votre commutateur. Si votre commutateur n'est pas assez intelligent, vous pouvez également placer un petit concentrateur entre la connexion commutateur / hôte à capture. Vous connectez un lien physique de votre hôte d'écoute à ce port / concentrateur, puis vous pouvez voir tout le trafic traversant le périphérique. Sinon, vous devrez installer votre logiciel de capture de paquets dans un emplacement plus stratégique de votre réseau, comme un pare-feu / routeur frontière.


J'ai un problème plus ou moins intéressant qui pourrait être résolu de cette façon. Pouvez-vous y répondre? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

Vous pouvez utiliser un descripteur de fichier pour vous connecter et recevoir les paquets sshet le rediriger vers la structure wirehark localement:

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

Wireshark va s'ouvrir et vous montrer l'interface "comme" /dev/fd/63, c'est-à-dire le descripteur de fichier contenant les données du système distant.



1

Sous RHEL, la réponse de Konrad ne fonctionnait pas pour moi car elle tcpdumpnécessitait un accès root, et je n'ai qu'un accès sudo. Ce qui a bien fonctionné a été de créer un fifo distant supplémentaire que je peux lire:

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap

et envoyez les données par une connexion séparée:

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap

et enfin commencer Wireshark

local:~$ wireshark -k -i pcap

0

Vous ne pouvez que renifler le trafic qui vous parvient. Donc, Joe A qui se rend à Joe B n’approche jamais de votre ordinateur, vous ne pouvez donc pas le voir.

Le seul moyen consiste à vous rendre au trafic ou à vous le transmettre. Pour accéder au trafic, vous devez vous connecter à un routeur, à un bon commutateur ou à un concentrateur quelque part au milieu de leur connexion. Pour que le trafic vous parvienne, il vous faudra ARP empoisonner certains des commutateurs afin qu'ils pensent de votre part.


0

En plus des réponses précédentes, la version avec netcat ncpeut également être utile:

Hôte distant:

mkfifo /tmp/mypcap.fifo

tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo

nc -l 10000 < /tmp/mypcap.fifo

Hôte local:

wireshark -ki <(nc 192.168.1.1 10000)

Remarque à propos de cette méthode: Le port non sécurisé est ouvert à toutes les interfaces. Veillez donc à filtrer les connexions entrantes à l'aide de règles de pare-feu.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.