[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
tcpdumpe 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 0400e, 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
tcpdumppara capturar um arquivo na máquina com problema, mas depois analise-o usando o Wireshark outsharkem outra máquina. - etc.