I descubrí que los encabezados RadioTab no son parte de cualquier protocolo Dot11 sino que simplemente se añaden por la interfaz de red. Y la razón por la que obtuve los encabezados RadioTab en paquetes de muestra de Wireshark.org y no de mi captura de cables vivos es porque algunos adaptadores de red no agregan RadioTap mientras que otros lo hacen y el adaptador de red de mi computadora portátil no agrega encabezados RadioTab. Verifiqué esto con un nuevo adaptador WiFi externo y agregó los encabezados RadioTap.
Si el adaptador no inyecta la información adicional mientras captura cuadros, entonces no se agregarán encabezados de radiotap.
Entonces, a mi pregunta principal, cómo obtener / establecer la frecuencia de un paquete. Esperaba que Scapy tuviera esta opción, pero no la tiene, y no debería. La razón es que la frecuencia depende de lo que esté configurado en el adaptador de red. Entonces, lo que hice fue configurar la frecuencia / canal de mi adaptador WiFi a uno diferente. Mi adaptador WiFi externo puede funcionar en varios canales, así que cambié cada uno y lo confirme con el encabezado RadioTap. Hay comandos / herramientas linux simples que me ayudaron a verificar los canales compatibles de mi interfaz WiFi y cambiar a un canal en particular.
Para capturar / enviar paquetes a una determinada frecuencia o canal, debe cambiar el canal de trabajo de su interfaz y configurar la interfaz de sniffer / remitente de manera escasa para esa interfaz.
EDITAR - Otros problemas que enfrenté y soluciones:
Si está en Linux y desea cambiar el canal de trabajo de su interfaz, debe deshabilitar el administrador de red para esa interfaz y para hacer esto Primero agregue el siguiente fragmento a /etc/network/interfaces
auto $iface
iface $iface inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
reemplace $iface
con el nombre de su interfaz. Esto le permitirá controlar la interfaz usted mismo. Y luego agregue las siguientes líneas a/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="Your_AP_SSID"
psk="Your_Passphrase"
freq_list=2412 2437 2462
}
Tenga en cuenta que 2412 2437 2462
son las frecuencias (canal 1, 6, 11 en este caso) para que su interfaz elija. Puede editarlos a la frecuencia deseada. Fuente . Pero primero debe verificar que su interfaz sea compatible con estas frecuencias. Para comprobar eso
iwlist channel
Finalmente después de que todo esté hecho.
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="wlp3s0")
Esto le enviará paquetes a la frecuencia wlp3s0
establecida.