Eu tenho tentado capturar pacotes WIFI com Linux e ver a frequência / canal em que o pacote foi capturado. Eu tentei o Wireshark e não houve sorte nem ajuda . Embora esteja usando pacotes de amostra do Wireshark, posso ver a frequência / canal.
Então agora estou experimentando Scapy. Eu queria descobrir a frequência / canal de um pacote farejado, mas ainda sem sorte. Existe uma maneira de fazer isso com Scapy.
PS Se houver uma ferramenta melhor que Scapy ou Python, agradeço comentários
python
python-3.x
wireshark
scapy
Baby desta
fonte
fonte
Respostas:
Eu descobri que os cabeçalhos RadioTab não fazem parte de nenhum protocolo Dot11, mas são apenas adicionados pela interface de rede. E o motivo pelo qual obtive os cabeçalhos do RadioTab em pacotes de amostra do Wireshark.org e não da minha captura ao vivo do wireshark é porque alguns adaptadores de rede não adicionam RadioTap enquanto outros o fazem e o adaptador de rede do meu laptop não adiciona cabeçalhos RadioTab. Eu verifiquei isso com um novo adaptador WiFi externo e ele adicionou os cabeçalhos do RadioTap.
Então, para a minha pergunta principal, como obter / definir a frequência de um pacote. Eu esperava que o Scapy tivesse essa opção, mas não, e não deveria. O motivo é que a frequência depende do que está definido no adaptador de rede. Então, o que eu fiz foi definir a frequência / canal do meu adaptador WiFi para outro. Meu adaptador WiFi externo pode funcionar em vários canais, então mudei cada um e confirmei com o cabeçalho RadioTap. Existem comandos / ferramentas simples do linux que me ajudaram a verificar os canais suportados da minha interface WiFi e mudar para um canal específico.
EDIT - Outros problemas que enfrentei e soluções:
Se você estiver no linux e quiser alterar o canal de trabalho da sua interface, precisará desativar o gerenciador de rede para essa interface e fazer isso Primeiro Adicione o seguinte trecho a
/etc/network/interfaces
substitua
$iface
pelo seu nome de interface. Isso permitirá que você controle a interface sozinho. E adicione as seguintes linhas a/etc/wpa_supplicant/wpa_supplicant.conf
Observe que
2412 2437 2462
são as frequências (canal 1, 6, 11 neste caso) para a sua interface escolher. Você pode editá-los na frequência desejada. Fonte . Mas primeiro você precisa verificar se sua interface suporta essas frequências. Para verificar issoFinalmente, depois que tudo estiver pronto.
Isso enviará pacotes na frequência
wlp3s0
definida.fonte
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth1")
você pode definir sua interface para uma determinada frequência que desejar, se ela suportar.Esta resposta tem como escopo o título e o conteúdo da pergunta: Fornecendo getters e setters para a frequência e o canal de um pacote.
Para esta solução, use o arquivo wpa-Induction.pcap em Amostras de captura do Wireshark .
Bisbilhotando
É útil vasculhar um pacote para ver a quais campos o Scapy tem acesso no interpretador do Scapy.
Enquanto 2412 é uma frequência e NÃO um canal , esses são os dados que queremos. RadioTap é a camada por
pkts[0].summary()
. Juntar as peças,Scapy não fornece acesso ao canal, mas é trivial converter a frequência em canal.
Juntar as peças
Obtendo a frequência
Dado um número de arquivo e pacote, agora podemos obter o canal e a frequência de um pacote.
Definir a frequência
Digamos que desejássemos alterar a frequência para 5300 e salvá-la. Isso exigiria apenas iteração na lista de pacotes, alteração da frequência de cada pacote e salvamento do resultado. No intérprete scapy:
fonte