首页 > 解决方案 > 如何在 Windows 上使用 scapy 查看空中的所有数据包?

问题描述

我正在尝试在 python 3.4 中嗅探一些数据包scapy

我使用的是 Windows 8.1,并且我知道该socket模块在 Windows 上没有PF_PACKET类似的东西来嗅探数据包,所以我使用了该scapy.sniff功能。我已经安装了 WinPcap 4.1.3 。

我试图嗅探,很惊讶它只从我现在连接的无线网络嗅探数据包,所以如果我没有连接到任何网络,它就不会嗅探任何东西(我已经等了 10 分钟,但它没有'不打印任何东西)。编码:

from scapy.all import sniff, tshark
pkts = sniff(count=30) # iface does not work

tshark与 相同sniff,给出相同的结果。

我有一个ALFA无线realtek接口卡,它支持监控模式。

这里有解决方案吗?wspy(python中的wireshark)在Windows中工作吗?是否支持 WiFi 监控模式?

标签: pythonwifiscapysniffing

解决方案


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)。指定接口会更安全。IFACES.show()您可以在 scapy 的控制台中打印列表。(注意:接口名称iface=参数允许使用完整的接口名称。例如上一条命令提示的“RaLink Adapter (R) Wi-Fi”

monitor 参数很重要,因为它触发了新的嗅探机制。

Wireshark 还需要 Npcap(Winpcap 不支持监控模式)在监控模式下嗅探


推荐阅读