[Atualizado com todas as descobertas da nossa solução de problemas.
Obrigado ao extraordinário Guy Harris, do tcpdump / libpcap / Wireshark.]
tcpdump
compreende apenas o tipo de link de dados do formato de cabeçalho de metadados de rádio "a_k.a LINKTYPE_IEEE802_11_RADIOTAP
, a.k.a DLT_IEEE802_11_RADIO
) para o modo de monitor 802.11.
O IEEE802_11_RADIO
DLT informa ao cartão / driver para preceder cada quadro recebido com um cabeçalho "falso" extra cheio de meta-dados de rádio. Isso é coisa que não foi transmitida como bits no ar, mas foi lida do estado do rádio no momento em que recebeu aquele quadro. Essas informações incluem o RSSI, o canal para o qual o rádio foi sintonizado, a taxa de dados / MCS do pacote e possivelmente muito mais.
Se o seu cartão & suporte ao driver Radiotap, você pode especificar que deseja capturar neste modo adicionando -y IEEE802_11_RADIO
aos seus argumentos tcpdump
. Você pode obter uma lista de tipos de links de dados com suporte para sua interface ra0
com tcpdump -i ra0 -IL
ou possivelmente com tcpdump -i ra0 -D
. Observe que os DLTs do modo de monitor podem não aparecer se você não incluir o -I
para especificar o modo de monitor. Observe também que adicionar -I
para colocar a interface no modo de monitor pode não funcionar em todos os sistemas, portanto, pode ser necessário usar o script airmon-ng
no pacote de software de código aberto aircrack-ng
para ativar o modo monitor.
Parece que o driver / chipset Ralink na máquina que não funciona não suporta cabeçalhos Radiotap. Aparentemente, ele suporta apenas o formato obsoleto de cabeçalho Prism e uma variante menos conhecida dos cabeçalhos Prism.
Você pode confirmar essa teoria verificando o DLT da interface na máquina em funcionamento (no modo monitor) usando os comandos acima e confirmando que é IEEE802_11_RADIO
.
Se confirmado, isso significa que suas opções se resumem a coisas como:
- Atualize o driver da sua máquina que não funciona para que ele corresponda ao driver da sua máquina em funcionamento. Aparentemente, o motorista na máquina de trabalho suporta cabeçalhos Radiotap. Como você disse que as duas máquinas têm o mesmo adaptador USB Wi-Fi de modelo, esperamos que ambos os adaptadores tenham o mesmo chipset Wi-Fi, portanto o melhor driver funcionará.
- Use o Wireshark (ou a ferramenta de linha de comando incluída
tshark
) para fazer as capturas de pacote do modo de monitoração na máquina com o problema. O Wireshark e o tshark devem saber como analisar os cabeçalhos variantes do Prism suportados pelo driver "ruim". - Capture os cabeçalhos da camada de enlace com
tcpdump
e analise o RSSI do cabeçalho Prisma variante. Provavelmente será o Sintt32 little-endian no offset 0x44 (decimal 68). Seria mais confiável procurar a seqüência4400 0400 0000 0400
e, em seguida, pegar os próximos 4 bytes e considerá-los um SInt32. Em seu exemplo de cabeçalho capturado, o valor de RSSI se parece com:b1ff ffff
. Isso seria0xffffffb1
, que é a representação de inteiro assinado de complemento de dois de 32 bits de -79, que é um RSSI válido para uma força de sinal ruim, mas ainda trabalhável. - Use
tcpdump
para capturar um arquivo na máquina com problema, mas depois analise-o usando o Wireshark outshark
em outra máquina. - etc.