主机似乎与网络上的其他主机隔离

主机似乎与网络上的其他主机隔离

我遇到了一个奇怪的问题,我需要帮助来找出问题所在,或者至少缩小搜索范围。我会给出一个大概的见解,但我可以根据要求提供详细信息。

我有一台运行 kali 的 HP 笔记本电脑,我时不时地会用它来检查我的网络;我在无线接口上启用了混杂模式,启动了 Wireshark,但除了 HP 笔记本电脑外,没有捕获任何流量,就像混杂模式甚至没有启用一样。重新获取我的 Wireshark 设置后,一切似乎都很好。

所以我拿了另一台运行 Ubuntu 的笔记本电脑,打开一个配置了桥接器的 kali VM(因此 kali VM 与 kali 笔记本电脑和 Ubuntu 笔记本电脑位于同一网络中),在 eth0 接口上启用了混杂模式(ofc 与 Ubuntu 笔记本电脑 NIC 无线连接并模拟以太网连接);

我能够从许多主机、kali VM、托管它的 Ubuntu 笔记本电脑、我的手机、我女朋友的笔记本电脑捕获数据包……但从 kali 笔记本电脑什么也捕获不到,这很奇怪。

TLDR:第一台笔记本电脑只能捕获自己的流量,第二台笔记本电脑可以捕获除第一台笔记本电脑之外的所有流量。混杂模式已启用,是的,它们在同一个网络中。

什么原因导致这种奇怪的行为?

答案1

简单地将网络接口置于混杂模式(允许它查看不发往自己的流量)并不是捕获网络上所有流量所需的全部操作。在过去我们使用网络枢纽这使得所有设备都能看到所有的流量,这是可行的,但今天事情变得更加复杂,因为网络开关在交换网络中,交换机的设计目的是检测哪些端口设备插入,并仅有的将该设备的流量发送到该交换机端口。(交换机通过检测并记住插入每个端口的设备的 MAC 地址来实现这一点。)因此,使用现代网络交换机,如果您将计算机插入端口 1、2 和 3,则端口 3 上的计算机通常不会看到端口 1 和 2 上的计算机之间的任何流量,即使它启用了混杂模式。更高级的“托管”交换机通常会有一个端口镜像选项,允许管理员明确指定一个端口将获取发送到某些或所有其他交换机端口的数据包的副本。如果您想嗅探所有网络流量,也需要使用这样的选项。

无线网络使这一过程变得更加复杂。无线网络旨在在一定程度上模拟常规有线以太网,但具体细节会因设备品牌、无线接入点上启用的选项以及网络类型而有很大差异。大多数廉价的消费级无线“路由器”实际上更像是无线端的集线器,因此只需在同一无线网络上的另一台无线设备上打开混杂模式,就可以嗅探到无线设备之间的某些流量。其他通常更昂贵的无线接入点更像是无线客户端的交换机,因此在设备上启用混杂模式并不一定能让您看到更多流量。

但还有更复杂的情况;大多数消费级无线路由器还集成了物理以太网交换机端口。因此,无论您在无线客户端上做什么,您都不会看到插入这些端口的设备之间的流量(除非您有可以将流量发送到无线设备的端口镜像选项)。

实际情况比这还要复杂。如果您的无线接入点有多个频段,例如 2.4GHz 和 5GHz,那么频段之间的连接可能更像是一个开关。我猜这就是您的 HP 笔记本电脑看不到任何其他流量的原因:它连接到的频段与您的大多数其他设备不同。

但还有更多!如果您有多个无线接入点,例如“网状”配置,则很有可能您无法嗅探连接到其他接入点的设备的流量,因为接入点之间的连接就像一个交换机。

最后,还有另一个复杂因素。许多消费者接入点的处理能力非常有限,因此它们会采取捷径(通常被称为“优化”)来让自己看起来更快。一种常见的捷径就是简单地丢弃一些处理密集型流量,而这些流量对于大多数设备的工作来说可能不是必需的。例如,许多消费者无线路由器会丢弃某些类型的广播流量,这样你就无法嗅探到它。

因此,简而言之,实际上不可能嗅探现代消费者网络上的所有网络流量,特别是如果网络有无线组件的话。因此,将一个无线设备置于混杂模式并不能让您全面了解正在发生的事情。为了真正做到这一点,您可能需要专业级或更高级别的硬件,并且所有硬件(接入点、交换机、路由器)可能需要是同一品牌并作为一个有凝聚力的单元进行“管理”。

相关内容