我使用scapy函数sniff()来捕获数据包。我只想捕获EAP数据包。我可以使用以下筛选器使用tcpdump筛选EAP数据包:
# tcpdump -i mon0 -p ether proto 0x888e tcpdump: WARNING: mon0: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on mon0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 65535 bytes 13:04:41.949446 80847234901us tsft 48.0 Mb/s 2437 MHz 11g -16dB signal antenna 1 [bit 14] EAP packet (0) v1, len 5 13:04:46.545776 80851831746us tsft 54.0 Mb/s 2437 MHz 11g -13dB signal antenna 1 [bit 14] EAP packet (0) v1, len 5
同时,我有sniff()函数使用相同的过滤器运行,但该函数不捕获任何EAP数据包:
sniff(filter="ether proto 0x888e",iface="mon0", count = 1)
为什么sniff()函数不捕获任何EAP数据包?
编辑:
很抱歉我反应迟钝,我尝试了你的建议:
> conf.iface = 'mon0'
> pkts = sniff(filter="wlan proto 0x888e", count = 1)
tcpdump: WARNING: mon0: no IPv4 address assigned
> pkts
Sniffed: TCP:0 UDP:0 ICMP:0 Other:1
> EAP in pkts[0]
False
但这仍然无法捕获EAP数据包:(
你可能有几个问题,所以让我来谈谈我今天遇到的那个问题。
首先,如下面的错误报告所示:http://trac.secdev.org/scapy/ticket/537--Scapy不接受sniff函数中的iface参数。因此,要正确设置iface,您必须使用:
希望这将允许您添加过滤器,并实际通过网络获取数据包。
如果你在mon0上嗅探,并且它是一个无线接口,你可能想尝试wlan proto而不是ether proto,但是我没有网络来测试EAP包以进一步提供帮助。
我知道这是一年多以后的事了,但是为了让其他人看到这个问题,答案是他捕获了EAPOL包,而不是EAP包。通过使用命令
0x888e是指以太网协议中的EAPOL,它需要使用以太网协议,而不是wlan协议。我不确定0888e是否可以引用wlan proto中的任何内容,但在做了与op几乎相同的事情(除了用“ether”替换“wlan”)之后,我得到了
但是当我进入
我相信OP捕捉到了他的代码正在寻找的东西(2个EAPOL包),但他没有捕捉到他认为他在寻找的东西-2个EAP包。
编辑-即使我用wlan替换了以太网络,我仍然认为EAP为false,EAPOL为true。
你是在和斯凯皮嗅探同时运行tcpdump吗?
Scapy可以很好地模拟TCPDUMP。一次只跑一个。
相关问题 更多 >
编程相关推荐