Wireshark 不显示来自其他网络设备的数据包,即使在 Promisc 模式下也是如此

Wireshark 不显示来自其他网络设备的数据包,即使在 Promisc 模式下也是如此

系统设置:

  1. 运行 Mountain Lion 并无线连接到路由器的 MacBook Air。
  2. Wireshark 安装并捕获数据包(我已选中“在混杂模式下捕获所有内容”)
  3. 我使用以下过滤器过滤掉所有带有源 IP 和目标 IP 的数据包(ip.dst != 192.168.1.104 && ip.src != 192.168.1.104
  4. 在与 MacBook 相同的网络上,我使用 Android 设备(通过 WiFi 连接)发出 HTTP 请求。

预期成绩:

  1. 在 MacBook 上运行的 Wireshark 看到来自 Android 设备的 HTTP 请求。

实际结果:

  1. 我只看到来自192.168.1.1

问题:
我需要做什么才能让 Wireshark 像 Firesheep 一样看到和使用来自同一网络上其他网络设备的数据包(特别是 HTTP)?


更新

  1. 如何在 WiFi 网络上使用 Wireshark 捕获其他计算机的流量?似乎意味着这是不可能的
  2. 这似乎描述了我的问题:http://seclists.org/wireshark/2010/Jan/70
  3. 我确信网络接口处于混杂模式,因为当我运行时ifconfig我得到en0: flags=8967<UP,BROADCAST,DEBUG,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500

答案1

如果您没有通过以太网连接到家庭路由器,那么很可能家庭路由器对其 LAN 端口使用交换机而不是集线器,因此每个端口都有自己的冲突域,而在集线器中,冲突域在所有端口之间共享,并且您将在每个端口上看到所有流量。

如果您使用无线连接,可能会出现一些问题。首先,某些无线网卡的驱动程序不支持进入混杂模式。除非您自己编写驱动程序,否则对此无能为力。其次,如果您的网络已加密,并且您只看到来自各种来源的第 2 层流量,而不是预期的更高层协议(似乎并非如此),那么您必须将 WEP 密钥输入 wireshark,以便它能够处理解密。WPA 和 WPA2 解密变得更加复杂,因为旧版本的 wireshark 不支持它,如果支持它,那么您必须捕获路由器和设备之间发生的整个握手(EAPOL packets),因为设备和路由器之间会生成唯一的密钥。

答案2

要捕获其他系统的 Wi-Fi 流量,您必须将网络适配器置于监控模式,这是 Wi-Fi 特有的要求。在 Windows 中,这意味着要购买 AirPcap 等特殊适配器。对于 Linux,请使用 airmon-ng。在 MacBook 中,我不确定该怎么做,但在 Google 上看到了很多关于这个主题的搜索结果。您也确实需要处于混杂模式,但只有以太网才需要集线器。

我将我的 NIC 置于监控模式,我可以看到周围有很多其他流量,但仍然看不到来自我的本地 WiFi 网络的 HTTP/SMTP/等应用程序级流量。

在应用程序级别,流量将被加密,正如 Fred Thomsen 在他的帖子中所说的那样。您需要研究如何设置 WireShark 和您的 AP 来解密此流量。

答案3

如果您的 Macbook 通过以太网连接到 WiFi 路由器,则可能是以下原因:

可能是 WiFi 路由器充当了交换机(而不是集线器)。因此 MacBook 根本看不到 HTTP 数据包。

相关内容