正在使用scapy函数sniff ()进行数据包捕获。 我只想捕获EAP数据包。 您可以使用tcpdump通过以下过滤器过滤EAP包:
# tcpdump-imon0- petherproto0x 888 e
tcpdump :警告: mon 0: noip v4地址分配
tcpdump : verboseoutputsuppressed,use-vor-vvforfullprotocoldecode
列表on mon 0,link-type IEEE 802 _ 11 _ radio (802.11 plusradiotapheader ),capture size 65535 bytes
13:04336041.94944680847234901 usts ft 48.0 MB/s 2437 MHz 11 g-16 dbsignalantenna1[ bit 14 ] EAP packet (0) v1,len 5
13:04336046.54577680851831746 usts ft 54.0 MB/s 2437 MHz 11 g-13 dbsignalantenna1[ bit 14 ] EAP packet (0) v1,len 5
使用相同的过滤器执行sniff (函数,但函数不捕获EAP数据包。
sniff(filter='Etherproto0x888e ',iface='mon0',count=1) ) )。
为什么sniff ) )函数不捕获EAP数据包?
编辑:
对不起后来的反应,我尝试了你的建议:
conf.iface='mon0'
pts=sniff (filter=' WLAN proto0x 888 e ',count=1) ) )。
tcpdump :警告: mon 0: noip v4地址分配
pkts
sniffed : TCP :0 UDP :0 icmp :0 other :1
EAP in pkts[0]
假
但是,这仍然是EAP分组: (
解决方法:
我知道这是一年后,但是为了让其他人看到这个问题,答案是他捕获了EAPOL包而不是EAP包。 通过使用此命令
sniff(filter='Etherproto0x888e ',count=4) ) ) ) ) ) ) ) )。
0x888e指的是以太网协议的EAPOL,必须使用以太网proto而不是wlan proto。 虽然不确定0888e是否能引用wlan proto中的任何内容,但在做了与op几乎相同的事情后,除了用“ether”替换“WLAN”之外,得到了其他内容
EAP in b[0]
假
但是我进去的时候
EAPOL in b[0]
True
我相信OP捕获了他的代码要找的东西(两个EAPOL包),但他认为他要找的东西没有捕获两个EAP包。
编辑-即使将以太网替换为wlan,也会将EAP视为false,将EAPOL视为true。
标签: python,scapy
资料来源: https://codeday.me/bug/2019 06 13/1234291.html