我正在为我的项目做一些测试,并且我以无线方式连接到我的接入点(开放的;没有安全性)。
理论上,当我以混杂模式开始捕获时,Wireshark 应该显示我所连接网络的所有数据包,尤其是因为该网络未加密。但实际情况是,Wireshark 只显示以我为源或目标的数据包;它从不显示其他客户端的数据包(除非它们是广播数据包)。
那么问题是什么?我很久以来就一直面临这个问题,它阻碍了我继续我的项目。首先,我试图对 WPA2 加密的无线网络进行嗅探,但没有成功,所以现在我只是试图嗅探一个开放网络来了解问题所在,但我在开放网络上也遇到了同样的问题。
以下是有关我的配置的一些说明:
- 我正在使用 Ubuntu 15.10(Linux 版本 >4);
- 我正在使用 Atheros AR9462 无线网卡;
- 我的接入点使用标准 802.11g(我在 AP 配置界面上自己配置了它)。
- 我距离 AP 有 2 米,并且连接到同一 AP 的其他客户端与我处于同一范围内(2 米)
请不要告诉我有关监控模式的信息,因为我已经可以在该模式下成功嗅探。我的项目是关于在混杂模式下嗅探的,所以这就是我正在尝试做的(但我像个白痴一样失败了)。
编辑:我刚刚在开放的 802.11b 网络上尝试使用无线网卡 Realtek 8187L 芯片组驱动程序,但它也不起作用。我真的不明白这里出了什么问题。
答案1
您需要排除一些可能的原因:
- 也许没有其他单播数据网络上的帧(没有往返于其他无线设备的单播流量)。
- 您的嗅探器超出了无线电范围,无法成功接收网络上的其他单播数据帧。也许其他无线客户端距离 AP 太近,以至于它们能够使用最复杂的调制和编码方案(最高数据速率),但您的嗅探器距离 AP 太远,或者距离本地噪声源太近,以至于其信噪比不够好,无法成功解调这些数据包。
- 您的嗅探器不支持其他客户端使用的相同调制方案。例如,如果您尝试监视的 AP 和客户端都具有 3 个发射和 3 个接收无线电链,并支持 3 个空间流 (3x3:3),但您的嗅探器只有 2x2:2,那么 AP 和客户端可能正在使用 3 个空间流,而您的嗅探器的无线电无法接收这些空间流。或者您的 AP 和客户端是 802.11ac,但您的嗅探器只有 802.11n。
- 当然,这可能只是您的无线芯片组或驱动程序中的一个错误。
答案2
理论上,当我以混杂模式开始捕获时,Wireshark 应该显示我所连接的网络的所有数据包,特别是因为该网络未加密。
但实际上可能并非如此;这取决于适配器和驱动程序如何实现混杂模式。
如果您处于受保护的网络上,适配器可能能够向您显示“第三方”数据包(如果使用 WEP 保护),但它必须执行与 Wireshark 相同类型的解密才能向您显示 WPA/WPA2 的“第三方”数据包,也许他们根本不会理会。(“显示”意味着,如果它要向您显示“假以太网”报头,它必须生成“假以太网”报头,这意味着它需要查看数据包中的 802.2 报头和 SNAP 报头(如果存在),这意味着它需要解密这些报头。)
鉴于此,即使对于开放网络,他们可能也不会费心实现混杂模式。