DHCP 枚举
在我们之前的文章中,我们分享了 DHCP DNS 欺骗背后的理论。实际上,需要几条信息才能有效地执行我们描述的攻击。对于攻击者来说幸运的是,发现DHCP 服务器并了解其配置的能力是 DHCP 协议的一部分,这使得侦察过程变得微不足道。
在以下章节中,我们将描述攻击者可以从未经身份验证的环境中使用来收集这些不同信息的不同方法和技巧。
识别 DHCP 服务器
DHCP DNS 攻击中最重要的部分是目标 DHCP 服务器,因此第一步是识别一个 DHCP 服务器。识别网络中的活跃 DHCP 服务器非常简单。攻击者可以发送 DHCP Discover 广播并检查服务器的 Offer 响应。
要发送 DHCP 消息,我们可以运行dhclient Linux 实用程序 — 一个可配置的 DHCP 客户端,允许与 DHCP 服务器交互。我们可以通过编辑其配置文件来配置dhclient,该文件位于**/etc/dhcp/dhclient.conf**。
当我们运行它时,dhclient将从 DHCP 服务器请求网络配置并将其应用于我们的机器 - 覆盖我们当前的 IP 地址。为了避免这种情况,我们可以使用以下语法在虚拟接口上运行它:
dhclient <interface_name>:<virtual_interface_name>
复制
运行此命令后,我们可以看到我们的原始IP地址(172.25.14.55)保持不变,而我们的虚拟接口从DHCP服务器接收到了一个新的IP地址(图1)。
如果我们记录流量并检查 DHCP Offer 消息,我们将能够识别所有活动的 DHCP 服务器(图 2)。
图 2:发送 DHCP Discover 来识别网络中的活动 DHCP 服务器
获取 DHCP 服务器的域和 DNS 服务器
在识别网络中的 DHCP 服务器后,我们需要知道哪些记录可以通过每个服务器进行伪造。DHCP 服务器只能在其关联的 ADI 区域内创建记录 - 与“aka.test”域关联的服务器只能写入具有相同后缀的 DNS 记录:.aka.test。要了解我们可以伪造哪些记录,我们需要识别此后缀。
此外,我们想知道哪个 DNS 服务器将托管新记录,这将使我们能够查询它们并验证攻击是否成功。
攻击者可以使用一种技巧来找出这两个参数,即参数请求列表选项,该选项允许查询 DHCP 服务器以获取特定设置。对于我们的目的,我们可以查询服务器关联的域名和域名服务器选项。
我们可以再次使用dhclient 。为了将参数请求列表选项添加到我们的发现消息中,我们在**dhclient的配置文件中包含以下行:
request domain-name, domain-name-servers;
复制
当我们运行dhclient(像以前一样,在虚拟接口上)并检查我们的发现消息时,我们看到它包含带有我们请求的字段的参数请求列表选项(图 3)。
图 3:DHCP Discover 消息中的参数请求列表
监听的 Microsoft DHCP 服务器应向此 Discover 消息发送带有所请求参数的 Offer 响应(图 4)。图 4:DHCP 服务器响应我们请求的设置
推断名称保护状态
尝试滥用 DHCP DNS 动态更新时,另一个重要的设置是名称保护,因为此设置将决定某些