一、实验拓扑:
二、拓扑描述
1、让图中的DHCP server充当局域网中的真正DHCP服务器,可以供局域网内到达主机正常获取地址。
2、攻击者hacker为kali虚拟机连接
三、实验步骤
1、首先在ensp的交换机上搭建一个DHCP server,可以供局域网内主机正常获取地址。
[dhcp]ip pool s1
[dhcp-ip-pool-s1]dis th
[V200R003C00]
#
ip pool s1
gateway-list 172.24.8.2
network 172.24.8.0 mask 255.255.255.0
dns-list 8.8.8.8
#
return
可以看到无论是主机PC1还是kali虚拟机都可以正常获取到地址
同时,也可ping一下测试连着之间的连通性。
2、让攻击者hacker在局域网内释放大量的discovery包来瘫痪真正的DHCP服务器,让PC1不能正常获取IP
我们这里使用yersinia工具来进行攻击(下载软件sudo install -y yersinia)
sudo yersinia -G //调出图形化界面
点击okay即可以发起攻击了。
通过测试,可以发现,主机PC1已经无法正常获取到IP地址了。
3、同时,也可以进行DHCP的欺骗攻击,可以构造一个假的DHCP server,让PC1获取不到真正的IP,但却可以获取到虚假的IP。
然后,点击ok就可以进行DHCP欺骗功能了。
可以看到PC1获取到了的是攻击者构造的地址池中的IP地址。
四、总结
一般情况下攻击者首先会进行拒绝式服务攻击,先把局域网内真正的DHCP SERVER给搞垮了,让局域网内主机不能从server上获取地址。然后,攻击者再次构造一个虚假的DHCP server,让客户端从攻击者那儿获取地址。攻击者可以将DHCP中网关设置为自己的IP地址,那样的话局域网内主机要上网,每次发送的信息都会经过攻击者,极大的增加了不安全性。
五、防御机制(在交换机上进行防御)
针对第一种发送大量请求的攻击,我们可以通过限速来实施防御。
针对第二种地址的消耗,又可以分以下两种情况:
如果二层src MAC不变,DHCP包中的MAC发生变化;可以检测这两者的一致性,如果不一致则丢弃。
如果二层src MAC和DHCP包中MAC一致,则构建MAC-IP-PORT-VLAN映射表,查看DHCP包中的src MAC与表中的MAC是否一致,不一致则丢弃或关闭接口
[sw1]dHCP enable //开启DHCP服务
[sw1]dhcp snooping enable {vlan 1} //开启DHCP防御功能,一般在vlan里面开启
[sw1-g 0/0/1]dHCP Snooping trusted //在接口上开启对这个接口的DHCP信任功能,如果不配置该命令,那么接口会检测接口是否发出了DHCP的offer与ack包,如果发出关闭该接口
[sw1-g 0/0/1]dHCP Snooping max-user-number 10 //限制用户的数量,即限制从接口发出的不同Mac的请求报文
[sw1]dhcp snooping check dhcp-rate enable //开启限速功能
[sw1]dhcp snooping check dhcp-rate 100 //限制DHCP的发包数量(每秒100个)
[sw1]dhcp snooping check ?
dhcp-chaddr DHCP chaddr
dhcp-giaddr DHCP relay agent ip address
//这两个字段用来检查二层src Mac和DHCP中的Mac是否一致,开启了一致性检查
[sw1]dhcp snooping user-bind autosave flash:/123.tbl //将绑定用户进行保存,这是为了防止设备在重新启动后由于绑定表丢失而导致防御机制失效。