是否有可能在不使用监控模式的情况下手动发送 802.11 数据帧?

是否有可能在不使用监控模式的情况下手动发送 802.11 数据帧?

我正在尝试确定是否可以在不先在无线适配器上启用监控模式的情况下手动发送 802.11 数据包。


基本上,我希望能够从没有支持监控模式的无线适配器的计算机发送正常数据包(唯一的区别是伪造的源地址)。理想情况下,解决方案存在于 Linux 平台上的 C 或 Python 中。

我可以在接口处于监控模式时发送这些数据包,例如使用以下代码(我知道变量有一些需要手动操作header,但它可以完成工作):

from scapy.all import Dot11,RadioTap,sendp,hexdump

iface = ''         #Interface name here



header = ('\x60\x98\x00\x00\x0c\x1a\x00\x20\x00\x00\x00\x00')

data = ('\x48\x65\x6c\x6c\x6f\x20\x77\x6f\x72\x6c\x64')


# create new radiotap frame with raw data
frame = RadioTap()/Dot11(type=2, subtype=8, addr1='ff:ff:ff:ff:ff:ff',
addr2='22:22:22:22:22:22', addr3='33:33:33:33:33:33')/header/data


frame.show()
print("\nHexdump of frame:")
hexdump(frame)

sendp(frame, iface=iface)

但是,此代码仅有的只要接口处于监控模式,就可以工作。


我理解为什么许多 RadioTap 功能(例如数据包捕获)都需要监控模式,因为正常目标地址过滤需要被绕过。但是,我不明白为什么没有监控模式就无法进行标准数据包传输。

有没有办法解决这个问题,或者是否总是需要监控模式才能直接与无线驱动程序交互?

相关内容