gpt4 book ai didi

python - 使用 sniff() 函数的 Scapy 过滤

转载 作者:太空狗 更新时间:2023-10-30 02:22:41 32 4
gpt4 key购买 nike

我正在使用 scapy 函数 sniff() 进行数据包捕获。我只想捕获 EAP 数据包。我可以使用以下过滤器使用 tcpdump 过滤 EAP 数据包:

# tcpdump -i mon0 -p ether proto 0x888etcpdump: WARNING: mon0: no IPv4 address assignedtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on mon0, link-type IEEE802_11_RADIO (802.11 plus radiotap header), capture size 65535 bytes13:04:41.949446 80847234901us tsft 48.0 Mb/s 2437 MHz 11g -16dB signal antenna 1 [bit 14] EAP packet (0) v1, len 513:04:46.545776 80851831746us tsft 54.0 Mb/s 2437 MHz 11g -13dB signal antenna 1 [bit 14] EAP packet (0) v1, len 5

At the same time I have sniff() function running with the same filter, but function doesn't capture any EAP packets:

sniff(filter="ether proto 0x888e",iface="mon0", count = 1)

Why sniff() function doesn't capture any EAP packets?

EDIT:

Sorry for my late reaction, I tried what you proposed:

> 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 数据包:(

最佳答案

我知道这是一年多以后的事了,但为了其他人看这个问题的利益,答案是他捕获了 EAPOL 数据包,而不是 EAP 数据包。通过使用命令

sniff(filter="ether proto 0x888e", count=4)

0x888e指的是以太网协议(protocol)中的EAPOL,需要使用ether proto,而不是wlan proto。我不确定 0888e 是否可以引用 wlan proto 中的任何内容,但是在做了与 op 几乎相同的事情之后(除了用 'ether' 替换 'wlan' 之外)我得到了

>>> EAP in b[0]
False

但是当我进入

>>> EAPOL in b[0]
True

我相信 OP 捕捉到了他的代码正在寻找的东西(2 个 EAPOL 数据包),但他没有捕捉到他认为他正在寻找的东西 - 2 个 EAP 数据包。

编辑 - 即使当我用 wlan 替换 ether 时,我仍然认为 EAP 为 false,EAPOL 为 true。

关于python - 使用 sniff() 函数的 Scapy 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210879/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com