我正在尝试在 scapy
中嗅探 python 3.4 中的一些数据包。
我使用的是 Windows 8.1,我知道 socket
模块没有 PF_PACKET
或 Windows 上类似的东西来嗅探数据包,所以我使用了 scapy.sniff
函数。我已经安装了 WinPcap 4.1.3。
我尝试嗅探并惊讶地发现它只嗅探来 self 现在连接的无线网络的数据包,所以如果我没有连接到任何网络它不会嗅探任何东西(我已经等了 10 分钟,它没有打印任何东西)。代码:
from scapy.all import sniff, tshark
pkts = sniff(count=30) # iface does not work
tshark
与sniff
相同,给出相同的结果。
我有一个ALFA无线realtek接口(interface)卡,它支持监听模式。
这里有解决办法吗? wspy
(python 中的 wireshark)是否适用于 Windows?是否支持WiFi监听模式?
Scapy 支持监控模式,但它需要几样东西:
- 使用最新开发的 scapy 版本。要下载它,请获取 https://github.com/secdev/scapy/archive/master.zip并通过
python setup.py install
安装
- 使用 Npcap 而不是 Winpcap。您需要先卸载 Winpcap(Winpcap 已被放弃,Nmap 收回了该项目)。下载地址:https://nmap.org/npcap/
- 调用
sniff([...], monitor=True)
。指定接口(interface)会更安全。您可以在 scapy 的控制台中使用 IFACES.show()
打印列表。 (注意:接口(interface)名称 iface=
参数允许使用完整的接口(interface)名称。例如前面命令提示的“RaLink Adapter (R) Wi-Fi”)
monitor 参数很重要,因为它会触发新的嗅探机制。
Wireshark 还需要 Npcap(Winpcap 不支持监控模式)在监控模式下进行嗅探
我是一名优秀的程序员,十分优秀!