DHCP原理

工具:ensp,kali,yersinia,wireshark

实验步骤

配置DHCP服务器

[AR1]dhcp enable
[AR1]ip pool a
[AR1-ip-pool-a]dis th
[V200R003C00]
#
ip pool a
gateway-list 192.168.1.1
network 192.168.1.0 mask 255.255.255.0
dns-list 8.8.8.8
#
return

[AR1-GigabitEthernet0/0/0]ip add 192.168.1.111 24
[AR1-GigabitEthernet0/0/0]dhcp select global

成功获取到地址

查看DHCP服务的地址池状态

开始攻击

使用yersinia工具,对DHCP服务器进行攻击

yersinia -G    //打开图形化页面

此时查看DHCP服务器的状态

PC1重新获取地址已经失效,因为已经没有可以使用的地址了

假冒DHCP进行监听

让kali冒充DHCP服务器给主机分配地址,注意需要将路由器的DHCP关闭之后才可以进行

[SW-GigabitEthernet0/0/1]shutdown

注意我们这里的Router要填写kali的IP地址才可以进行监听

这里可以看出PC1获取地址的时候DHCP报文情况

我们使用PC1进行ping命令
这里我们在kali中打开wireshark,监听eth0可以看到PC1的流量

防御技术

构建一个IP-MAC-接口-Vlan的映射表,也就是DHCP Snooping技术。

[SW]dhcp enable
[SW]dhcp snooping enable
[SW]dhcp snooping enable vlan 1
[SW-GigabitEthernet0/0/1]dhcp snooping trusted

我们在kali上重新配置伪造的DHCP,这个时候没有显示任何的报文,PC1也获取不到了地址,成功防御了黑客的伪造DHCP

这个时候把连接路由器的接口开起来

[SW-GigabitEthernet0/0/1]undo shutdown

然后我们再次重新获取地址,发现已经成功获取到了正确的地址

那么我们如何防御DHCP的DOS呢

[SW]dhcp snooping check dhcp-rate enable
[SW]dhcp snooping check dhcp-rate 10 //这个命令确实可以起到限制的作用
[SW-GigabitEthernet0/0/3]dhcp snooping check dhcp-rate enable
[SW-GigabitEthernet0/0/3]dhcp snooping enable
[SW-GigabitEthernet0/0/3]dhcp snooping check dhcp-chaddr enable

效果就是这样,地址虽然没用被占用完,但是其他机器ping不通了