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?
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?
Respostas:
No Linux e OSX, você pode conseguir isso executando tcpdump sobre ssh e fazendo o wireshark escutar no canal.
Crie um canal nomeado:
$ mkfifo /tmp/remote
Inicie o wireshark na linha de comando
$ wireshark -k -i /tmp/remote
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/
ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remote
você poderia me dizer por quê?
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 -k
opção no wireshark significa "começar a cheirar imediatamente
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.
Você pode usar um descritor de arquivo para conectar e receber os pacotes ssh
e 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.
consulte as informações sobre a configuração do computador remoto, para permitir que sua máquina local se conecte e capture
No RHEL, a resposta do konrad não funcionou para mim porque tcpdump
requer 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
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.
Além das respostas anteriores, a versão com o netcat também nc
pode ser útil:
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)
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.