55 votes

Comment puis-je renifler le trafic d'une machine distante avec wireshark ?

Je peux sniffer le trafic de mon pc local mais j'aimerais savoir comment je peux sniffer le trafic d'une machine distante avec wireshark ?

Lorsque, dans l'option de capture, je sélectionne l'interface distante et que j'entre mon adresse IP distante, j'obtiens le code d'erreur (10061). Que dois-je faire ?

74voto

konrad Points 983

Sous Linux et OSX, vous pouvez y parvenir en lançant tcpdump via ssh et en demandant à wireshark d'écouter sur le tuyau.

  1. Créer un tuyau nommé :

    $ mkfifo /tmp/remote

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

    $ wireshark -k -i /tmp/remote

  3. Exécutez tcpdump via ssh sur votre machine distante et redirigez les paquets vers le tuyau 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/

43voto

ctaglia Points 451

J'utilise cet oneliner comme racine. Il 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 | est la redirection de cette sortie et est utilisée comme entrée standard par wireshark. La fonction -k dans wireshark signifie "commencer à renifler inmidiately".

11voto

dmourati Points 24230

Une approche consiste à utiliser ce que l'on appelle un port miroir ou span sur votre commutateur. Si votre commutateur n'est pas assez intelligent, vous pouvez également placer un petit concentrateur entre le commutateur et la connexion hôte-capture. Vous connectez un lien physique de votre hôte d'écoute à ce port/hub et vous pouvez alors voir tout le trafic qui traverse l'appareil. Sinon, vous devrez installer votre logiciel de capture de paquets dans un endroit plus stratégique de votre réseau, comme un pare-feu/routeur frontalier.

7voto

SiLeX Points 83

Vous pouvez utiliser un descripteur de fichier pour vous connecter et recevoir les paquets en ssh et l'envoyer localement à wireshark :

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

Votre wireshark s'ouvrira et vous montrera l'"interface" de la manière suivante /dev/fd/63 qui est le descripteur de fichier contenant les données du système distant.

5voto

user587155 Points 36

Sous RHEL, la réponse de konrad n'a pas fonctionné pour moi parce que tcpdump nécessite d'être root, et je n'ai qu'un accès sudo. Ce qui a fonctionné, c'est la création d'un fifo distant supplémentaire à partir duquel je peux lire :

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

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

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

et enfin démarrer Wireshark

local:~$ wireshark -k -i pcap

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X