Como posso cheirar o tráfego da máquina remota com o wireshark?

38

Posso detectar o tráfego do meu PC local, mas gostaria de saber como detectar o tráfego de uma máquina remota pelo wireshark?

Na opção de captura, selecione a interface remota e insiro meu ip remoto, mostre-me error.code (10061). O que devo fazer?

aboutstudy
fonte
5
Você só pode detectar o tráfego que sua interface de rede está vendo. Se a rede estiver com pacotes comutados para a máquina remota, não lhe serão enviados. BTW: tente melhorar sua taxa de aceitação.
Matteo

Respostas:

54

No Linux e OSX, você pode conseguir isso executando tcpdump sobre ssh e fazendo o wireshark escutar no canal.

  1. Crie um canal nomeado:

    $ mkfifo /tmp/remote

  2. Inicie o wireshark na linha de comando

    $ wireshark -k -i /tmp/remote

  3. Execute o tcpdump sobre o ssh na sua máquina remota e redirecione os pacotes para o pipe nomeado:

    $ 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/

Konrad
fonte
É possível pegar pacotes passando por um roteador no próprio roteador dessa maneira ou isso é impossível?
inf3rno
Isso é ótimo. Meu 2c: permitir [ssh root] geralmente não é recomendado, mas você pode ativá-lo temporariamente adicionando root à linha [Match User] em / etc / ssh / sshd_config.
Moodboom 28/01/19
Isso não está funcionando para mim, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remotevocê poderia me dizer por quê?
Phoenix
@infmo se o roteador puder executar o tcpdump diretamente, sim, deve ser possível. O meu não tem espaço para instalar o tcpdump. Não é incomum para roteadores low-end.
whereedidhatnamecrometo de
21

Eu uso esse oneliner como raiz. É muito útil!

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

O último -antes de |é o redirecionamento dessa saída e é usado para entrada padrão pelo wireshark. A -kopção no wireshark significa "começar a cheirar imediatamente

ctaglia
fonte
Melhor primeira resposta que eu já vi.
Sj 31/01
10

Uma abordagem é usar o que é chamado de porta de espelho ou extensão no seu comutador. Se o seu switch não for suficientemente inteligente, você também poderá colocar um pequeno hub entre a conexão do switch / host para capturar. Você conecta um link físico do host que está ouvindo a essa porta / hub e pode ver todo o tráfego atravessando o dispositivo. Como alternativa, você precisará instalar o software de captura de pacotes em um local mais estratégico da sua rede, como um firewall / roteador de borda.

dmourati
fonte
Eu tenho um problema mais ou menos interessante que poderia ser resolvido dessa maneira. Você pode responder? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno
4

Você pode usar um descritor de arquivo para conectar e receber os pacotes sshe canalizá-lo para o wireshark localmente:

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

O wireshark abrirá e mostrará o "Interface" /dev/fd/63, como o descritor de arquivo que contém os dados do sistema remoto.

SiLeX
fonte
1

No RHEL, a resposta do konrad não funcionou para mim porque tcpdumprequer root e eu só tenho acesso ao sudo. O que funcionou foi criar um fifo remoto extra que eu possa ler:

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

e envie os dados por uma conexão separada:

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

e finalmente inicie o Wireshark

local:~$ wireshark -k -i pcap
Dan
fonte
0

Você só pode cheirar o tráfego que chega até você. Então Joe A indo para Joe B nunca chega perto do seu PC, então você não pode vê-lo.

A única maneira é você chegar ao tráfego ou obter o tráfego para você. Para chegar ao tráfego, é necessária uma conexão com um roteador ou um bom switch ou hub em algum lugar no meio da conexão. Para obter o tráfego para você, você precisará envenenar alguns dos comutadores ARP para que eles pensem que são eles.

Johnny
fonte
0

Além das respostas anteriores, a versão com o netcat também ncpode ser útil:

Hospedeiro remoto:

mkfifo /tmp/mypcap.fifo

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

nc -l 10000 < /tmp/mypcap.fifo

Anfitrião local:

wireshark -ki <(nc 192.168.1.1 10000)

Nota sobre este método: Torna a porta não segura aberta para todas as interfaces, portanto, certifique-se de filtrar as conexões de entrada com as regras de firewall.

fugitivo
fonte