Come posso annusare il traffico della macchina remota con WireShark?


38

Posso annusare il traffico del mio PC locale ma vorrei sapere come annusare il traffico di una macchina remota con WireShark?

Quando nell'opzione di acquisizione seleziono l'interfaccia remota e inserisco il mio IP remoto show me error.code (10061). Cosa dovrei fare?


5
Puoi solo annusare il traffico che sta vedendo la tua interfaccia di rete. Se la rete viene commutata, i pacchetti al computer remoto non verranno inviati. A proposito: prova a migliorare il tuo tasso di accettazione.
Matteo,

Risposte:


54

Su Linux e OSX è possibile ottenere questo risultato eseguendo tcpdump su ssh e facendo in modo che il wirehark ascolti sulla pipe.

  1. Crea una pipa denominata:

    $ mkfifo /tmp/remote

  2. Avviare WireShark dalla riga di comando

    $ wireshark -k -i /tmp/remote

  3. Esegui tcpdump su ssh sul tuo computer remoto e reindirizza i pacchetti sulla pipe denominata:

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

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


È possibile catturare i pacchetti che attraversano un router sul router stesso in questo modo o è qualcosa di impossibile?
inf3rno,

Questo è fantastico Mio 2c: consentire a [ssh root] non è generalmente consigliato, ma è possibile attivarlo temporaneamente aggiungendo root alla riga [Match User] in / etc / ssh / sshd_config.
moodboom,

Questo non funziona per me, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remotepotresti dirmi perché?
Phoenix,

@infmo se il router può eseguire tcpdump direttamente, allora sì, dovrebbe essere possibile. Il mio non ha lo spazio per installare tcpdump. Non insolito per router di fascia bassa.
wheredidthatnamecomeda

21

Uso questo oneliner come root. È molto utile!

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

L'ultimo -prima di de |è il reindirizzamento di quell'output e viene utilizzato per l'input standard di WireShark. L' -kopzione in WireShark significa "iniziare a annusare in modo intermittente


La migliore prima risposta che abbia mai visto.
sabato

10

Un approccio consiste nell'utilizzare quella che viene chiamata una porta mirror o span sullo switch. Se il tuo switch non è abbastanza intelligente, puoi anche inserire un piccolo hub tra la connessione switch / host-to-capture. Connetti un collegamento fisico dal tuo host in ascolto a quella porta / hub e quindi puoi vedere tutto il traffico che attraversa il dispositivo. In alternativa, dovrai installare il software di acquisizione dei pacchetti in una posizione più strategica della tua rete come un firewall / router di frontiera.


Ho un problema più o meno interessante che potrebbe essere risolto in questo modo. Puoi rispondere? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno

4

È possibile utilizzare un descrittore di file per connettersi e ricevere i pacchetti sshe reindirizzarli a WireShark localmente:

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

Il wirehark si aprirà e ti mostrerà "l'interfaccia" /dev/fd/63, che è il descrittore di file contenente i dati dal sistema remoto.



1

Sotto RHEL, la risposta di konrad non ha funzionato per me perché tcpdumprichiede root e ho solo l'accesso sudo. Ciò che ha funzionato è stato creare un FIFO remoto aggiuntivo da cui posso leggere:

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

e invia i dati con una connessione separata:

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

e infine avviare Wireshark

local:~$ wireshark -k -i pcap

0

Puoi solo annusare il traffico che ti arriva. Quindi Joe A che va da Joe B non si avvicina mai al tuo PC, quindi non puoi vederlo.

L'unico modo è per te di arrivare al traffico o ottenere il traffico per te. Per raggiungere il traffico è necessaria una connessione a un router o un buon switch o hub da qualche parte nel mezzo della loro connessione. Per ottenere il traffico verso di te, dovrai avvelenare alcuni degli interruttori in modo che pensino che siano tuoi.


0

Oltre alle risposte precedenti, ncpotrebbe essere utile anche la versione con netcat :

Host remoto:

mkfifo /tmp/mypcap.fifo

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

nc -l 10000 < /tmp/mypcap.fifo

Host locale:

wireshark -ki <(nc 192.168.1.1 10000)

Nota su questo metodo: Rende la porta non protetta aperta a tutte le interfacce, quindi assicurati di filtrare le connessioni in entrata con le regole del firewall.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.