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?
Sous Linux et OSX, vous pouvez atteindre cet objectif en exécutant tcpdump sur ssh et en faisant écouter WireShark sur le canal.
Créez un canal nommé:
$ mkfifo /tmp/remote
Démarrez Wireshark à partir de la ligne de commande
$ wireshark -k -i /tmp/remote
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/
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
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.
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.
voir des informations sur la configuration de l'ordinateur distant, pour permettre à votre machine locale de se connecter et de capturer
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
En plus des réponses précédentes, la version avec netcat nc
pourrait également être utile:
mkfifo /tmp/mypcap.fifo
tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo
nc -l 10000 < /tmp/mypcap.fifo
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.
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.