Scapy 无法在监控模式下正确解析数据包
Scapy unable to properly parse packets in monitor mode
我目前正在尝试在监控模式下扫描所有可用频道,以查找我周围开放网络上的 IP 流量。我注意到 IP in sniffed_packet
从来都不是真的,经过一些调试后,发现帧没有被正确解析。
我正在使用这个进行嗅探:
ps = sniff(iface="<MyInterfaceName>, timeout=5)
翻了一下,找到了一个我要找的包:
<RadioTap version=0 pad=0 len=21 present=Flags+Channel+dBm_AntSignal+Antenna+RXFlags+MCS Flags=FCS ChannelFrequency=2422 ChannelFlags=2GHz+Dynamic_CCK_OFDM dBm_AntSignal=-17 dBm Antenna=0 RXFlags= knownMCS=guard_interval+HT_format Ness_LSB=1 STBC_streams=0 FEC_type=BCC HT_format=greenfield guard_interval=Long_GI MCS_bandwidth=20MHz MCS_index=9 notdecoded='' |<Dot11FCS subtype=Reassociation Response type=Management proto=0 <redacted> |<Dot11ReassoResp cap=res9+res11+DSSS-OFDM+res15+IBSS+CFP-req+short-preamble+agility status=3 AID=0 |<Dot11Elt ID=8 len=0 info='' |<Dot11Elt ID=69 len=0 info='' |<Dot11Elt ID=SSID len=75 info='E\x88@\x00@\x11\xadc\xc0\xa8cd\xc0\xa8c\x01\x95\xd4\x005\x007S\xa2\xa7\xce\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x11connectivitycheck\x07gstatic\x03com\x00\x00\x01\x00\x01' |>>>>>>
注意结尾附近的 connectivitycheck\x07gstatic\x03com
。这对应于(大致)我使用 Wireshark 发现的流量:
这意味着 DNS 数据报被错误解析为重新关联帧的标记参数。作为双重检查,我在 Wireshark 中过滤了重新关联帧,并且 none 在那段时间被捕获。
因为我知道我在寻找什么流量,我可能能够从嗅探数据包中提取原始字节,然后强制 scapy 将它们重新解释为我正在寻找的流量,但我更喜欢避免这种情况。
有没有办法让 scapy 正确解析此流量?
这是 Scapy 中的一个错误。我举报了,it was just fixed.
如果您遇到此问题,请确保运行以下内容以获取最新版本的 Scapy:
pip install --upgrade git+git://github.com/secdev/scapy
我目前正在尝试在监控模式下扫描所有可用频道,以查找我周围开放网络上的 IP 流量。我注意到 IP in sniffed_packet
从来都不是真的,经过一些调试后,发现帧没有被正确解析。
我正在使用这个进行嗅探:
ps = sniff(iface="<MyInterfaceName>, timeout=5)
翻了一下,找到了一个我要找的包:
<RadioTap version=0 pad=0 len=21 present=Flags+Channel+dBm_AntSignal+Antenna+RXFlags+MCS Flags=FCS ChannelFrequency=2422 ChannelFlags=2GHz+Dynamic_CCK_OFDM dBm_AntSignal=-17 dBm Antenna=0 RXFlags= knownMCS=guard_interval+HT_format Ness_LSB=1 STBC_streams=0 FEC_type=BCC HT_format=greenfield guard_interval=Long_GI MCS_bandwidth=20MHz MCS_index=9 notdecoded='' |<Dot11FCS subtype=Reassociation Response type=Management proto=0 <redacted> |<Dot11ReassoResp cap=res9+res11+DSSS-OFDM+res15+IBSS+CFP-req+short-preamble+agility status=3 AID=0 |<Dot11Elt ID=8 len=0 info='' |<Dot11Elt ID=69 len=0 info='' |<Dot11Elt ID=SSID len=75 info='E\x88@\x00@\x11\xadc\xc0\xa8cd\xc0\xa8c\x01\x95\xd4\x005\x007S\xa2\xa7\xce\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x11connectivitycheck\x07gstatic\x03com\x00\x00\x01\x00\x01' |>>>>>>
注意结尾附近的 connectivitycheck\x07gstatic\x03com
。这对应于(大致)我使用 Wireshark 发现的流量:
这意味着 DNS 数据报被错误解析为重新关联帧的标记参数。作为双重检查,我在 Wireshark 中过滤了重新关联帧,并且 none 在那段时间被捕获。
因为我知道我在寻找什么流量,我可能能够从嗅探数据包中提取原始字节,然后强制 scapy 将它们重新解释为我正在寻找的流量,但我更喜欢避免这种情况。
有没有办法让 scapy 正确解析此流量?
这是 Scapy 中的一个错误。我举报了,it was just fixed.
如果您遇到此问题,请确保运行以下内容以获取最新版本的 Scapy:
pip install --upgrade git+git://github.com/secdev/scapy