监控模式下的Scapy 2.7.3

时间:2016-07-20 18:05:52

标签: python wifi monitor scapy sniffer

我正在用scapy写一个简单的WiFi嗅探器:

from scapy.all import *

ap_list = []
def ssid(pkt):
    print(pkt.show())
    if pkt.haslayer(Dot11):
        if pkt.type == 0 and pkt.subtype == 8:
            if pkt.addr2 not in ap_list:
                ap_list.append(pkt.addr2)
                print("AP: %s SSID: %s" % (pkt.addr2, pkt.info))

sniff(iface='en0', prn=ssid)

其中en0是wi-fi接口。

我的目标是查看无线接入点的RSSI,噪声和SSID。当我运行这个脚本(从sudo或不是sudo),当我连接到一些Wi-Fi时 - 捕获了许多数据包(没有人是Beacon)。 WireShark在我的Mac(El Capitan)上以监控模式(机场en0嗅探1)显示RadioTap Headers,但是这个脚本在监控模式下不会产生输出。

有人可以帮我理解这里出了什么问题吗? TIA:)

1 个答案:

答案 0 :(得分:1)

这是Mac特定的问题。您确实是对的,您想捕获此类数据的信标帧。这里的问题是,一旦airport命令完成运行,您的界面就会返回到其标准托管模式,因此,当您运行scapy脚本时,您的wifi界面就不会处于监控模式。据我所知,Mac没有本机命令可以打开并使卡处于监视模式。