我使用802.11 QoS
捕获了一些WLAN Wireshark
数据包,我正在尝试使用Scapy
以下是捕获数据包的屏幕截图。如果有更多屏幕截图有帮助,请与我们联系。
以下是我用于生成包含4个字节虚拟数据的数据包的scapy
命令。
dot11=Dot11(type=2, subtype=8, addr1='11:11:11:11:11:11', addr2='22:22:22:22:22:22', addr3='33:33:33:33:33:33')
frame = RadioTap()/dot11/Dot11QoS()/"abcd"
如果我使用Wireshark使用wireshark(frame)
命令查看数据包,它会将数据包标识为802.11 QoS
数据包。但在Data
字段上方,它会显示Logical Link Control
字段。
另一方面,如果我使用sendp(frame, iface='wlan0')
在接口上发送数据包,wireshark会将数据包捕获为LLC
数据包。我的问题是为什么在两种不同情况下相同的数据包显示不同?
我的想法是复制完全相同的数据包,将其发送到IoT
设备并获得响应。是否有可能为此伪造数据包?如果可能,使用scapy
答案 0 :(得分:0)
要复制数据包,最简单的方法是直接在Scapy上嗅探它们。 sniff 函数就是这样:它有两个主要参数, filter 和 prn 。
filter 根据BPF syntax指定要捕获的数据包。
prn 指定要应用于已过滤数据包的函数。
例如:
def f(pkt):
pkt.show()
filt="src host 1.2.3.4"
sniff(prn=f,filter=filt)
此代码将捕获来自具有IP地址 1.2.3.4 的计算机的所有数据包,并显示其字段。
但如果您绝对想通过Wireshark进行嗅探,可以检查是否复制了所有字段,这要归功于显示层构造函数的所有字段名称的scapy ls 函数:
>>> ls(ARP)
sport
dport
len
chksum
祝你在尝试做任何事情都好运