gpt4 book ai didi

Python 数据包嗅探/数据包捕获 - pcapy 不捕获数据包

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:24 27 4
gpt4 key购买 nike

我的无线接口(interface)处于监控模式,我能够成功地嗅探网络数据包并使用 Wireshark 对其进行分析。我一直在尝试用 pcapy 实现类似的东西和 impacket .看起来 pcapy 没有捕获与 Wireshark 相同的数据包。我目前在 Mac OS X 10.9 和 2012 Macbook Pro 上运行,但注意到在 Ubuntu 上使用 TP-LINK TL-WN722N 无线 usb 适配器的行为相同。

这是我编写的一个显然不起作用的脚本示例。我没有使用 pcapy 接收到探测请求,尽管我在 Wireshark 中看到了它们。

import pcapy
import impacket

DECODER = impacket.ImpactDecoder.RadioTapDecoder()


def packet_handler(header, data):
radio_packet = DECODER.decode(data)
dot11 = radio_packet.child()
if dot11.get_subtype() == impacket.dot11.Dot11Types.DOT11_SUBTYPE_MANAGEMENT_PROBE_REQUEST:
management_base = dot11.child()
if management_base.__class__ == impacket.dot11.Dot11ManagementFrame:
print management_base.get_source_address(), management_base.get_destination_address()


p = pcapy.open_live("your_interface_here", 2000, 0, 1000)
p.loop(-1, packet_handler)

在本例中,en1 处于监控模式。使用从 Wireshark 生成的 pcap 文件可以正常工作,只需将 open_live 更改为 open_offline:

p = open_offline('path_to_file')

我没有正确设置 pcapy 吗?

最佳答案

如果您捕获了一些数据包但不是您在 Wireshark 中看到的所有数据包,请尝试启用混杂模式(应捕获所有数据包,甚至是校验和错误的数据包):

1) 为pcapy设置混杂模式

promiscuous = True
p = pcapy.open_live("your_interface_here", 2000, promiscuous, 1000)

2) 为您的界面设置混杂模式。不确定如何在 Mac 上执行此操作,在 Linux 上是:

os.system('sudo ifconfig eth0 promisc')

然后关闭并关闭您的界面。

pcapy 和铜以太网有同样的问题。上面的技巧已经解决了我的问题。

关于Python 数据包嗅探/数据包捕获 - pcapy 不捕获数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22737192/

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