关于 Arp/DHCP 的具体问题

网络工程 dhcp ARP
2022-02-26 08:13:12

在我的网络中有:

路由器

客户 1:受害者

客户端 2:攻击者(Raspberry Pi)

客户端 3:我的电脑(SSH 到 Raspberry)

所有客户端都以无线方式连接到路由器。所有客户端都在路由器上注册(IP/MAC 绑定) 路由器设置为仅接受来自已注册客户端的连接。路由器启用了 DHCP。使用的程序:dsniff/arpspoof

我对客户端 1 进行了 arpsoofed 并将客户端 2 设置为充当 MITM 并转发流量。只要路由器刷新 arp 表,它就可以工作。5-10 分钟后,路由器为客户端 1 分配了一个新 IP,但忘记了旧的 IP 地址。

我现在有两个问题:

当很容易操纵一个客户端使用多个 IP 并且路由器接受它时,IP/MAC 绑定是什么?

不应该直接与路由器进行任何通信的欺骗客户端 1 怎么可能在一段时间后获得一个新的 IP?

这仅用于教育目的!谢谢 !

2个回答

罗恩在解释这个概念方面做得很好。我只想为您的特定场景添加 2 美分。您提到您有 arpspoofed 客户端 1(受害者)和客户端 3(攻击者)。为了拦截所有流量(进出受害者),我假设您也在网关和客户端 1(受害者)之间进行了 arpspoof。这种 MITM 攻击的全部目的是操纵网关(路由器)和受害者的 ARP 表(IP-Mac 绑定)。为了维护路由器和受害者的被操纵的 ARP 表,只要您想拦截流量,就需要不断向两者发送欺骗性的 arp 回复。

您所描述的更多是关于网络中断而不是信息窃取。此外,客户端不向路由器注册,并且 DHCP 在您描述的情况下是免费的,因为 DHCP 服务器在这种情况下没有任何作用。

确实不存在您可能认为的 IP/MAC 绑定之类的东西。您需要了解网络层。Layer-2 是本地 LAN,本地 LAN 上的所有流量都通过 LAN(例如 MAC 地址)直接从一台主机传送到另一台主机。有些第 2 层协议使用 MAC 地址(48 位或 64 位 MAC 地址),有些则不使用。第 3 层是网络,第 3 层协议使用第 3 层(例如 IP)地址。

为了使 LAN 上的一台主机向 LAN 上的另一台主机发送流量,该主机需要将目标第 3 层地址解析为目标第 2 层地址以构建帧。这就是 ARP(地址解析协议)的用武之地。

ARP 维护一个表,用于将第 3 层地址转换为第 2 层地址。此表中的条目通常会超时,但这取决于操作系统。要获取或更新其 ARP 表中的条目,主机将使用 ARP 请求。主机还将根据它在 LAN 上看到的任何流量更新其 ARP 表。这意味着当受害者发送其他主机看到的任何流量时,他们将使用新信息更新其 ARP 表。这可能是受害者发送自己的 ARP 请求以发现另一台主机的第 2 层地址、免费 ARP、未知单播流量或向另一台更新其 ARP 表的主机的单播流量。

如果这是交换式以太网 LAN,还需要考虑其他事项。以太网交换机维护 MAC 地址表(不要与 ARP 表混淆)以将 MAC 地址解析为最后一次看到 MAC 地址的接口。每当有帧进入交换机时,交换机将使用帧的源 MAC 地址更新其 MAC 地址表,并且它将使用 MAC 地址表来确定将带有目标 MAC 地址的帧发送到哪个交换机接口。如果目的 MAC 地址不在其 MAC 地址表中,则交换机会将帧泛洪到所有交换机接口,但帧进入交换机的接口除外。

现在,把它们放在一起。如果恶意主机试图劫持 MAC 地址,这只是暂时的,因为其他主机中的 ARP 表会更新,并且交换机会不断更改它向其发送具有该目标 MAC 地址的帧的接口。

真正的中间人攻击需要发生在流量必须通过的链路上,但在大多数 LAN 上并非如此,因为 LAN 上的流量直接从主机到主机传递,而不是通过单点.