O filtro Scapy BPF não funciona

9

Estou usando o Scapy e gostaria de filtrar com base no endereço MAC de destino.

No entanto, estou recebendo pacotes exibidos onde o endereço MAC de destino não é o endereço especificado no filtro.

Aqui está um snippit de código:

from scapy.all import *

sniff(iface="eth1", filter="ether dst host 91:e0:f0:01:00:00", 
      count=3, prn=lambda x: x.show())

Estou executando o Scapy 2.2.0

Alguma idéia sobre o assunto aqui?

    
por user1607606 17.08.2012 в 20:15
fonte

4 respostas

2

Scapy requer numerosas dependências para muitos sistemas diferentes. É possível que você não tenha a dependência necessária para que os filtros BPF funcionem.

link

    
por RyPeck 18.06.2013 / 17:38
fonte
1

É scapy falha !!! Parece que scapy começa a receber pacotes antes de aplicar o filtro BPF (argumento filter da função sniff ). Demora um tempo para começar o trabalho corretamente! Dois métodos para se livrar disso:

  1. Use lfilter para definir sua função de filtragem dentro do script. Não é eficiente no link ocupado porque o filtro é aplicado no seu script, em vez do kernel. Considere usar pypy para acelerar.
  2. Para alguns primeiros pacotes, verifique o endereço MAC de destino dentro do seu script e, em seguida, não verifique mais; Por exemplo, verifique a exatidão do pacote no início do sniffing para passar a fase instável de scapy e, em seguida, confie em scapy para filtrar os pacotes indesejados.
por SuB 15.03.2015 / 08:43
fonte
1

Instalar o tcpdump resolveu o problema para mim - agora o filtro sniff funciona

    
por elotic 25.06.2015 / 15:14
fonte
1

No meu caso, atualizando para o 2.3.3dev (versão github), consertei

    
por Cukic0d 08.02.2018 / 03:27
fonte