如果 IP 地址错误,ARP 中毒如何起作用?

如果 IP 地址错误,ARP 中毒如何起作用?

TLDR ARP 中毒不会改变表中的 IP dst,那么为什么欺骗另一个 IP 地址下的 MAC 有助于重定向流量?

我发现的任何视频都解释了 ARP 中毒的目的是发送未经请求的消息来“覆盖”主机和路由器的 ARP 表,以便 MitM 攻击者的 MAC 地址与两者相关联,因此它们看起来像这样:

受害者:aa:bb:cc:dd:ee:ff (192.168.1.100) 路由器:aa:bb:cc:dd:ee:ff (192.168.1.1) MitM 机器:aa:bb:cc:dd:ee:ff (192.168.1.199)

这样,两者最终都会发送给中间人,然后中间人会转发到端点 192.168.1.199 和 192.168.1.1,而这两个端点实际上有另一个 MAC 地址。

...我的问题是,这是如何工作的?如果你诱使这些设备将错误的 MAC 与正确的 IP 关联,流量实际上是如何重新路由的?我的意思是,我看到的情况是这样的:

受害者 > 到 192.168.1.1 路由器的数据包 > 到达路由器并打开数据包,发现 MAC 错误?

答案1

如果 IP 地址错误,ARP 中毒如何起作用?

它通常被称为 ARP 欺骗,但也被称为 ARP 毒药路由 (APR) 或 ARP 缓存毒药。

ARP 中毒不会改变表中的 IP 目标,那么为什么欺骗另一个 IP 地址下的 MAC 有助于重定向流量?

  • 集线器、交换机和路由器的局域网侧使用以太网数据帧中包含的 MAC 地址来路由数据。

  • 在攻击期间,受害者 IP 地址的 ARP 表条目将包含攻击者的 MAC 地址。

  • 当任何数据发送到或从受害者的 IP 地址时,它将被路由到攻击者的 MAC 地址。

ARP 中毒的目的是发送未经请求的消息来“覆盖”主机和路由器的 ARP 表,以便 MitM 攻击者的 MAC 地址与两者都相关联。

不,这不正确。

  • 受害者 IP 地址的 ARP 表条目将包含攻击者的 MAC 地址。
  • 路由器 IP 的 ARP 表条目不会改变。
  • 攻击者可以选择将流量从受害者的 IP 地址转发到路由器,但他不必这样做。

接下来发生什么更多信息,请参见下文。


什么是 ARP 欺骗?

ARP 欺骗是一种攻击,恶意行为者通过局域网发送伪造的 ARP(地址解析协议)消息。这会导致攻击者的 MAC 地址与网络上合法计算机或服务器的 IP 地址相关联。

一旦攻击者的 MAC 地址连接到真实的 IP 地址,攻击者将开始接收任何发往该 IP 地址的数据。

ARP 欺骗可使恶意方拦截、修改甚至停止传输中的数据。ARP 欺骗攻击只能发生在使用地址解析协议的局域网上。

来源 VeracodeARP欺骗


它是如何工作的?

ARP 欺骗攻击通常遵循类似的过程。ARP 欺骗攻击的步骤通常包括:

  1. 攻击者打开 ARP 欺骗工具,并将该工具的 IP 地址设置为与目标的 IP 子网匹配。流行的 ARP 欺骗软件包括 Arpspoof、Cain & Abel、Arpoison 和 Ettercap。

  2. 攻击者使用ARP欺骗工具扫描目标子网中主机的IP和MAC地址。

  3. 攻击者选择目标并开始通过 LAN 发送包含攻击者的 MAC 地址和目标的 IP 地址的 ARP 数据包。

  4. 由于局域网上的其他主机缓存了伪造的 ARP 数据包,这些主机发送给受害者的数据将转而发送给攻击者。从这里开始,攻击者可以窃取数据或发起更复杂的后续攻击。

来源 VeracodeARP欺骗


接下来发生什么?

攻击者可能选择检查数据包(监视),同时将流量转发到实际的默认网关以避免被发现,在转发数据之前修改数据(中间人攻击),或者通过导致网络上的部分或全部数据包被丢弃来发起拒绝服务攻击。

来源维基百科ARP欺骗


进一步阅读

答案2

例如,在由交换机连接的 LAN 中,交换机直到网络层(OSI 的第 3 层)才会解封装数据包。它只会从其 CAM 表中检查 MAC 并在正确的端口上转发数据包。这就是为什么不检查 IP 的原因,尤其是当交换机的 CAM 表已经填充时。

答案3

当数据包在链路层网络上发送时,它会被发送到攻击者的 MAC 地址,因此获取数据包的是攻击者,而不是预期的接收者。

让我们通过指定链路层网络来使其更加具体。让我们以以太网为例。以太网网卡只知道它们自己的(以太网)层。它们不知道 IP 是什么,所以它们不知道这些数据包在 IP 层是如何寻址的。对于以太网网卡来说,这些都是一堆不透明的有效负载字节。发送网卡只知道它被交给了一个 aa:bb:cc:dd:ee:ff 的帧,所以它将该目标地址放在该帧上并传输它。只有攻击者的网卡被编程为查看寻址到 aa:bb:cc:dd:ee:ff 的帧,因此只有攻击者的网卡通过将帧传递给其主机操作系统的网络堆栈来接收该帧。

相关内容