系统设置:
- 运行 Mountain Lion 并无线连接到路由器的 MacBook Air。
- Wireshark 安装并捕获数据包(我已选中“在混杂模式下捕获所有内容”)
- 我使用以下过滤器过滤掉所有带有源 IP 和目标 IP 的数据包(
ip.dst != 192.168.1.104 && ip.src != 192.168.1.104
) - 在与 MacBook 相同的网络上,我使用 Android 设备(通过 WiFi 连接)发出 HTTP 请求。
预期成绩:
- 在 MacBook 上运行的 Wireshark 看到来自 Android 设备的 HTTP 请求。
实际结果:
- 我只看到来自
192.168.1.1
问题:
我需要做什么才能让 Wireshark 像 Firesheep 一样看到和使用来自同一网络上其他网络设备的数据包(特别是 HTTP)?
更新
- 如何在 WiFi 网络上使用 Wireshark 捕获其他计算机的流量?似乎意味着这是不可能的
- 这似乎描述了我的问题:http://seclists.org/wireshark/2010/Jan/70
- 我确信网络接口处于混杂模式,因为当我运行时
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 数据包。