Como capturar todos os pacotes de entrada para o NIC, mesmo esses pacotes não pertencem a mim

13

AFAIK, a NIC recebe todos os pacotes da rede em uma rede local, mas rejeita os pacotes cujo endereço de destino não é igual ao seu ip.

Eu quero desenvolver um aplicativo que monitore o uso de usuários na Internet. Cada usuário tem um endereço IP fixo.

Eu e algumas outras pessoas estão conectadas a um DES 108 Switch Desktop Não Gerenciado Fast Ethernet de 8 Portas

Como dito anteriormente, quero capturar todos os tráfegos de todos os usuários e não apenas os pacotes que pertencem a mim.

Como devo forçar minha NIC ou outros componentes a receber todos os pacotes?

    
por m.r226 09.04.2017 / 13:26

5 respostas

27

AFAIK, the NIC receives all packets from the wire in a Local Area Network but rejects those packets which their destination address is not equal to its ip.

Correção: ele rejeita os pacotes cujo endereço MAC de destino não é igual ao seu endereço MAC (ou multicast ou qualquer endereço adicional em seu filtro.

Os utilitários de captura de pacotes podem colocar trivialmente o dispositivo de rede em modo promíscuo, o que significa que a verificação acima é ignorada e o dispositivo aceita tudo o que recebe. De fato, este é geralmente o padrão: com tcpdump , você tem que especificar a opção -p para não fazê-lo.

A questão mais importante é saber se os pacotes que você está interessado estão sendo carregados até o fio para a sua porta sniffing. Desde que você está usando um switch ethernet não gerenciado, eles quase certamente não são. O switch está decidindo remover os pacotes que não pertencem a você da sua porta antes que o dispositivo de rede possa esperar vê-los.

Você precisa se conectar a uma porta de monitoramento ou espelhamento especialmente configurada em um switch Ethernet gerenciado para fazer isso.

    
por 09.04.2017 / 13:35
8

No início, diz dos hubs de ethernet (não switches), pacotes enviados estão disponíveis para todos os hosts na sub-rede, mas os hosts que não são o destinatário pretendido devem ignorar.

Obviamente, não demorou muito para que as sub-redes saturassem, então a tecnologia de switch nasceu para resolver os problemas, e uma das coisas que eles fizeram foi fazer com que a rede mudasse apenas os pacotes de rota destinados àquele host para aquela porta (mais andy tráfego de transmissão).

Isso complica o monitoramento / sniffing da rede, pois você só pode detectar os pacotes que são para o seu host. Isso foi considerado uma coisa boa do ponto de vista de segurança, mas do ponto de vista de monitoramento de rede não é tão bom. Para fazer o trabalho de monitoramento de rede, os fornecedores implementam um recurso chamado espelhamento de porta. Isso tem que ser configurado no switch de rede, e o link abaixo deve apontar na direção certa para os produtos D-Link. Você vai encontrá-lo em algum lugar no seu software de gerenciamento de switches ou na interface de administração da web. Se você não encontrar esses recursos, a funcionalidade pode não ser fornecida nesse dispositivo específico.

link

    
por 09.04.2017 / 22:13
2

Primeiro, você precisa mudar sua NIC para o modo promíscuo. Vamos supor que sua interface NIC seja eth0.

root@linux#ifconfig eth0 promesc

Se você estiver em uma rede de switches, seu sniffing será reduzido para o domínio de colisão. Conecte-se à porta do switch. Você pode executar macof para sobrecarregar a tabela de encaminhamento do comutador.

root@linux#macof -i eth0

Você pode usar wireshark ou tcpdump para capturar todo o tráfego.

root@linux#tcpdump -i eth0 -w outputfile

Se você não estiver em uma rede comutada, ative o modo promíscuo e use tcpdump .

    
por 09.04.2017 / 18:35
0

Você está reinventando a roda.

Supondo que você tenha uma rede simples com clientes conectando-se a switches, com um gateway padrão para a Internet, você só precisará monitorar esse dispositivo de gateway padrão. Este será um ponto de estrangulamento para mostrar todo o tráfego entre um cliente de LAN e a Internet.

Estou supondo que o cliente da rede local para o tráfego do cliente da LAN não seja de interesse, porque com todos os endereços IP dentro da mesma sub-rede IP, o tráfego local não toca no gateway padrão.

Se você realmente quer ver todo o tráfego, cada usuário precisa estar em sua própria rede IP e o tráfego para as outras redes é através do gateway padrão. Você poderia alocar um / 28 para cada pessoa e eles podem ter 14 IPs para si mesmos.

Seu roteador de nível doméstico médio não aguenta muito isso, você precisará explorar uma distribuição de firewall dedicada. Pessoalmente pfsense seria meu go-to, mas há muitas opções.

    
por 10.04.2017 / 11:59
-3

A LAN na qual você está falando, de acordo com o meu entendimento, estará cobrindo áreas próximas a você de até 200 metros ou talvez mais e você está apenas conectado a um dos muitos switches que cobrem uma colônia em particular, a fim de obter todo o tráfego que você tem que ter uma conexão com um dispositivo mestre que basicamente processa todas as solicitações de toda a sua LAN, então se você conseguir se conectar nesse hub / switch, então provavelmente você pode fazer um aplicativo que cheira todos os pacotes de entrada e saída de um endereço MAC específico em sua LAN e, portanto, você precisa organizar como seu aplicativo deve mostrar o histórico de cada endereço MAC NA SUA REDE .

    
por 09.04.2017 / 15:45