É possível capturar todo o tráfego de rede usando o tcpdump?

5

Eu tenho 3 computadores na mesma sub-rede. O computador A e B estão se comunicando entre si (ping, telnet, etc.). Eu gostaria de ver os pacotes entre A e B no computador C. É possível fazer isso com o tcpdump? Eu li o manual e pesquisei isso sem fim, mas não consigo fazer funcionar. O tcpdump rodando em C não vê tráfego entre A e B. Sei que o tcpdump está funcionando, porque se um ou B pings C, o tcpdump mostra o tráfego da rede. Eu também coloquei manualmente a interface no modo promíscuo (ifconfig ethx promisc), mas ainda sem saída.

Comp-A, IP: 192.168.0.100
ping Comp-B ==> Comp-A gets reply from Comp-B

Comp-B, IP: 192.168.0.101
tcpdump -Xi eth1 ==> Sees ping packets from Comp-A

Comp-C, IP: 192.168.0.102
tcpdump -Xi eth1 ==> No output, just the generic tcpdump initial message

    
por Porfirio Gonzales 07.08.2011 / 05:57

1 resposta

8

O motivo pelo qual você não os vê é porque você está em uma rede comutada. Seu switch de rede encaminha apenas pacotes para as interfaces para as quais eles estão destinados. Isso é determinado pelo endereço da camada de link listado no pacote. Seu switch sabe que os computadores A, B & C estão nas portas 1, 2 e amp; 3 respectivamente. Quando um pacote é recebido do computador A na porta 1, destinado ao computador B, o pacote é transmitido apenas para a porta 2.

Se você tiver um switch gerenciável, pode configurar o que às vezes é chamado de "espelhamento de porta" ou uma porta SPAN na porta 3, que então receberia uma cópia de todos os pacotes que atravessam o switch.

Se você não tem um switch gerenciado, há outros menos ... digamos, métodos convencionais (por exemplo, arp spoofing e pacote de encaminhamento) para enganar o resto da rede.

    
por 07.08.2011 / 07:21