Wireshark可以读取正在发送到其他计算机的数据吗?

假设WireShark安装在计算机A上。假设我在计算机B上查看Youtubevideo。

WireShark可以看到计算机B在做什么?

一般来说,不,Wireshark无法检测到stream量。 ErikA描述了为什么。

但是,如果您的networking支持它,networking本身可以向计算机A显示计算机B的stream量,并从那里Wireshark可以抓住它。 有几种方法来实现它。

  • 相同的交换机,好的方法如果两台计算机都在同一个networking交换机上,并且交换机是被pipe理的,那么可能将其configuration为将计算机B的端口跨越/镜像/监视(这些条款随供应商改变)到计算机A的端口。 这将允许计算机A上的Wireshark查看stream量。
  • 相同的交换机,邪恶的方法如果两台计算机在同一个networking交换机上,并且交换机的安全性不是很高,那么可能会发生所谓的ARP欺骗攻击。 计算机A发出一个ARP数据包,告诉子网它实际上是网关地址,即使它不是。 接受ARP数据包的客户端重写他们的IP:MAC地址查找表,并在其中包含不良地址,然后继续将所有的子网外数据发送到计算机B.为此,计算机B必须将其发送到真正的网关。 这在所有交换机上都不起作用,有些networking堆栈拒绝这种事情。
  • 相同的子网,邪恶的方法如果路由器不是非常安全的,ARP欺骗攻击将适用于整个子网!
  • 完全不同的子网如果计算机B 完全在不同的子网上,唯一的办法就是如果路由器核心支持远程监控解决scheme。 同样,名称也不尽相同,networking拓扑结构也必须恰到好处。 但是这是可能的。

ARP欺骗是没有特殊networking权限的计算机嗅探另一个networking节点的stream量的唯一方法,这取决于networking交换机是否防御这种行为。 简单地安装Wireshark是不够的,需要采取其他一些行动。 否则,只有在networking被明确configuration后才会发生。

如果您使用的是交换networking(很有可能),并且除非计算机A作为计算机B的默认路由(不太可能),否则计算机A将无法看到发往计算机B的数据包。

正如Farseeker提到的,你曾经能够。 十年前,很多networking使用集线器,就像交换机一样,但却是笨重的,因为它们将每个数据包反映到每个端口上,而不是找出每个数据包需要发送到哪里,只发送到那里。 在此之前,一些networking使用同轴以太网和普通电缆(并且没有集线器或交换机),每个电台广播和收听。

在以上两种情况下,一台Ethereal(Wireshark的旧名称)的机器确实可以在整个networking上窥探。

虽然这种情况现在只适用于很less的networking,但我提到它的上下文,并理解为什么使用Wireshark窥探他人的想法仍然在许多人的头上。

皮特

如果我们提到邪恶的方法:一些非托pipe的交换机重载CAM表可以工作,并logging在tcpdump文档IIRC的某处。