Ich fand heraus, dass RadioTab-Header nicht Teil eines Dot11-Protokolls sind, sondern lediglich von der Netzwerkschnittstelle hinzugefügt werden. Der Grund, warum ich die RadioTab-Header für Beispielpakete von Wireshark.org und nicht von meiner Live-Wireshark-Erfassung erhalten habe, ist, dass einige Netzwerkadapter kein RadioTap hinzufügen, während andere dies tun, und der Netzwerkadapter meines Laptops keine RadioTab-Header hinzufügt. Ich habe dies mit einem neuen externen WLAN-Adapter überprüft und die RadioTap-Header hinzugefügt.
Wenn der Adapter die zusätzlichen Informationen beim Erfassen von Frames nicht einfügt, werden keine Radiotap-Header hinzugefügt.
Also zu meiner Hauptfrage, wie man die Frequenz eines Pakets erhält / einstellt. Ich habe erwartet, dass Scapy diese Option hat, aber das tut es nicht und sollte es auch nicht. Der Grund dafür ist, dass die Frequenz davon abhängt, was am Netzwerkadapter eingestellt ist. Also habe ich die Frequenz / den Kanal meines WiFi-Adapters auf einen anderen eingestellt. Mein externer WiFi-Adapter kann in verschiedenen Kanälen arbeiten, daher habe ich jeden geändert und mit dem RadioTap-Header bestätigt. Es gibt einfache Linux-Befehle / -Tools , mit denen ich die unterstützten Kanäle meiner WiFi-Schnittstelle überprüfen und zu einem bestimmten Kanal wechseln konnte.
Um Pakete mit einer bestimmten Frequenz oder einem bestimmten Kanal zu erfassen / zu senden, müssen Sie den Arbeitskanal Ihrer Schnittstelle ändern und die Sniffer / Sender-Schnittstelle in scapy auf diese Schnittstelle einstellen.
EDIT - Andere Probleme und Lösungen:
Wenn Sie unter Linux arbeiten und den Arbeitskanal Ihrer Schnittstelle ändern möchten, müssen Sie den Netzwerkmanager für diese Schnittstelle deaktivieren und dies tun. Fügen Sie zunächst das folgende Snippet hinzu /etc/network/interfaces
auto $iface
iface $iface inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Ersetzen Sie $iface
durch Ihren Schnittstellennamen. Auf diese Weise können Sie die Schnittstelle selbst steuern. Fügen Sie dann die folgenden Zeilen hinzu/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
}
Beachten Sie, dass 2412 2437 2462
die Frequenzen (in diesem Fall Kanal 1, 6, 11) für Ihre Schnittstelle zur Auswahl stehen. Sie können sie auf die gewünschte Frequenz bearbeiten. Quelle . Aber zuerst müssen Sie überprüfen, ob Ihre Schnittstelle diese Frequenzen unterstützt. Um das zu überprüfen
iwlist channel
Endlich, nachdem alles erledigt ist.
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="wlp3s0")
Dadurch erhalten Sie Pakete mit der eingestellten Frequenz wlp3s0
.