【问题标题】:How to use pcap in python to capture other's traffic in same wifi?如何在 python 中使用 pcap 在同一个 wifi 中捕获其他人的流量?
【发布时间】:2015-11-13 06:04:52
【问题描述】:

这是我第一次在 pcap 中使用监控模式。我想我成功启动了监控模式,因为我可以看到 wifi 上有一个“眼睛”符号。 但是,我仍然无法捕获未发送给我的数据包:( 我使用句柄,但不确定它是如何工作的,以及如何捕获那些未发送给我的数据包。

【问题讨论】:

    标签: python pcap packet-capture sniffing


    【解决方案1】:

    通常路由器只会将发送给您的数据包发送给您。这包括直接发送给您的数据包或广播消息。发送到网络中其他设备的消息根本没有到达您的机器,因此无法捕获它。

    如果您真的需要监控整个网络流量,您需要在路由器和网络之间找到某个位置。或者你可以尝试一个人在你的 wifi 上进行中间攻击。

    【讨论】:

    • 我觉得有一个monitor mode可以这样做..但是pcap包的文件比较难找...
    • 您的路由器需要监控模式,而不是 pcap。 pcap 可以监视您在计算机上收到的内容。因为您没有收到发给其他人的数据包。通常你可以尝试使用wireshark之​​类的软件来捕获它。使用wireshark 可以看到的所有内容都可以使用pcapy 捕获,仅此而已。用于 pcap 的文档。尝试寻找 libpcap。 pcap 只是它的一个 python 包装器。
    • @Memnon 在无线网络中,您会收到发送给所有人的所有数据包。 WiFi使用全向天线。 WiFi AP 不知道接收设备在哪个方向、距离或高度。它没有物理方法只能将数据包发送到一台计算机。您可能正在考虑使用交换机的有线网络,它只会将非广播数据包发送到 IP-MAC 映射与接收者匹配的端口。此外,这与路由器或 LAN 上的路由没有任何关系。路由器/路由用于由子网掩码确定的非本地流量。
    【解决方案2】:

    PCAP 只会显示发送给您的流量。任何嗅探器都是如此,软件需要能够看到流量。为了查看未发送给您的 WiFi 流量,您需要一个支持监控模式的 WiFi 适配器。大约 90% 或更多的 WiFi 适配器不支持监控模式。硬件必须能够进入 RFMON 模式,并且适配器的驱动程序需要支持监控模式。如果监控模式设置正确,您将看到 802.11 管理流量(信标、探测器等)。我不认为监控模式会显示实际的数据流量,但我不确定,也许只有我的适配器没有显示。如果您可以看到源 MAC 地址和目标 MAC 地址不是适配器的 MAC 地址且不是 FF:FF:FF:FF:FF:FF(广播)的数据,那么您使用的是监控模式。我不知道您使用的是哪个操作系统,也不知道句柄是什么(程序名称?)所以我无能为力。我建议您将适配器设置为监控模式,然后通过在设备上运行 wireshark 并查看流量进行验证。如果可行,您可以返回 PCAP 并从那里进行调试。

    如果您使用的是 Linux 并且您的适配器支持监控模式,您可以通过以 root 身份运行以下命令来启用它

    ip link set wlan0 down iwconfig wlan0 mode monitor ip link set wlan0 promisc on ip link set wlan0 up

    请注意,如果适配器处于监控模式,则无法连接到本地 WiFi 网络。适配器需要处于托管模式,其中 WiFi AP 管理适配器接收的数据类型(频率、信道等)。如果您通过适配器连接到本地 WLAN,则您未处于监控模式。

    哦!我想我记得在某处听说 WinPCAP 不支持监控模式。我不使用 Windows,因此您可能需要验证一下。

    【讨论】:

      猜你喜欢
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 2016-10-29
      • 2017-06-26
      • 2011-01-31
      • 1970-01-01
      相关资源
      最近更新 更多