web-dev-qa-db-fra.com

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

Je peux flairer le trafic de mon PC local mais je voudrais savoir comment flairer le trafic d'une machine distante par wirehark?

Lorsque dans l'option de capture, je sélectionne l'interface distante et saisis mon adresse IP distante me montrer error.code (10061). Que devrais-je faire?

39
aboutstudy

Sous Linux et OSX, vous pouvez atteindre cet objectif en exécutant tcpdump sur ssh et en faisant écouter WireShark sur le canal.

  1. Créez un canal nommé:

    $ mkfifo /tmp/remote

  2. Démarrez Wireshark à 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 canal 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/

57
konrad

J'utilise cet oneliner en tant que root. 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é pour une entrée standard par wirehark. Le -k option dans wirehark signifie "commencer à renifler immédiatement

23
ctaglia

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

11
dmourati

Vous pouvez utiliser un descripteur de fichier pour vous connecter et recevoir les paquets par ssh et le diriger localement vers Wharkshark:

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

Votre wirehark s'ouvrira et vous montrera l '"Interface" comme /dev/fd/63, qui est le descripteur de fichier contenant les données du système distant.

5
SiLeX

voir des informations sur la configuration de l'ordinateur distant, pour permettre à votre machine locale de se connecter et de capturer

http://wiki.wireshark.org/CaptureSetup/WinPcapRemote

1
Jacob

Sous RHEL, la réponse de konrad n'a pas fonctionné pour moi car tcpdump nécessite root, et je n'ai qu'un accès Sudo. Ce qui a fonctionné était de créer une fifo supplémentaire à distance que 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 distincte:

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

et enfin lancer Wireshark

local:~$ wireshark -k -i pcap
1
Dan

En plus des réponses précédentes, la version avec netcat nc pourrait é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 sur cette méthode: elle rend le port non sécurisé ouvert à toutes les interfaces, assurez-vous donc de filtrer les connexions entrantes avec des règles de pare-feu.

0
fugitive

Vous ne pouvez renifler que le trafic qui vous parvient. Donc, Joe A allant à Joe B ne s'approche jamais de votre PC, vous ne pouvez donc pas le voir.

Le seul moyen est que vous arriviez au trafic ou que vous obteniez le trafic. Pour accéder au trafic, il faut une connexion à un routeur ou à un bon commutateur ou concentrateur quelque part au milieu de leur connexion. Pour vous acheminer le trafic, vous devrez ARP empoisonner certains des commutateurs afin qu'ils les pensent.

0
Johnny