python - 如何在 Windows 上使用 scapy 查看空中的所有数据包?

标签 python wifi scapy sniffing

我正在尝试在 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

tsharksniff 相同,给出相同的结果。

我有一个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 不支持监控模式)在监控模式下进行嗅探

关于python - 如何在 Windows 上使用 scapy 查看空中的所有数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51916407/

相关文章:

wifi - scapy 中的 RadioTap header

python - queue.get() 仅返回一项

ios - 如何在 iOS7 中以编程方式找到连接 3G 网络或 Wifi 的 iPhone 设备

python - [OpenCV Videocapture]为什么不继续阅读?

python - SFrame 中的字符串对象到日期时间对象

Python文件下载

android - 如何以编程方式在 Oreo 中创建 wifihotspot?

java - Android 10 设备不开始发现 wifi direct

python - 基本授权凭证不会出现在 Scapy 中?

python - Google OR-Tools TSP 跨越多天的开始/停止时间