首页 > 解决方案 > 无法使用 Scapy 传输/注入 802.11 数据包

问题描述

我正在尝试在台式机和笔记本电脑之间传输数据帧(在 ubuntu 18.04 中使用 scapy)。我希望 MSDU 只是一些原始数据,而不是上层帧。无论出于何种原因,我都无法检测到设备之间传输的数据包。

两个设备都设置为监控模式并连接到相同的频率/频道。例如,我的桌面有无线接口wlp4s0,我设置如下:

sudo ifconfig wlp4s0 down
sudo iwconfig wlp4s0 mode monitor
sudo ifconfig wlp4s0 up
sudo iwconfig wlp4s0 channel n

当我检查iw deviwconfig我可以看到两个无线接口都处于监控模式并且频率相同且发射功率非零时。

我使用以下代码使用 scapy 嗅探频道没有问题:

sniff(iface = "wlp4s0", prn = output)

prn 只是打印出任何数据包的摘要。

当我尝试传输时,我在一台设备上使用以下代码:

    header = Dot11(
        addr1 = "00:16:ea:12:34:56",
        addr2 = "00:16:ea:12:34:56",
        addr3 = "ff:ff:ff:ff:ff:ff",
        type = 2,
        subtype = 0,
        FCfield = 0)

    data = "testtesttesttest"
    packet = header / data
    sendp(data, iface= "wlp4s0", loop = 1, inter = 0.100)

尽管发送设备声明数据包已发送,但其他设备在嗅探信道时看不到任何数据包。同样,在使用“ifconfig”时,接口的tx_count不会增加。

我尝试在这两种设备上切换角色,但也没有运气。

任何帮助将不胜感激,谢谢!

标签: pythonubuntuscapywirelesswifi

解决方案


您似乎正在向自己发送数据包。addr1 用于接收器。addr2 用于发送者。


推荐阅读