DHCP攻击
原理:
DHCP攻击针对的目标是网络中的DHCP服务器,原理是耗尽DHCP服务器所有的IP地址资源,使其无法正常提供地址分配服务。然后在网络中再架设假冒的DHCP服务器为客户端分发IP地址,从而来实现中间人攻击。
DHCP工作过程:
工作过程分为四个阶段
- 发现阶段:首先客户端广播发送DHCP Discover报文来寻找DHCP服务器。
- 提供阶段:DHCP服务器接收到DHCP Discover报文后,查看自己的地址池中是否有可用地址,如果有,会在这个IP上做一个标记,并用DHCP Offer报文回复给客户端(广播)。
- 请求阶段:客户端在接收到第一个DHCP Offer报文后,会选择此报文中提供的IP地址,并广播发送DHCP Request报文,其他服务器会知道客户端拒绝了自己提供的IP地址。
- 确认阶段:服务器接收到客户端的DHCP Request报文后,会发送一个DHCP ACK报文,告诉客户端你可以使用那个IP地址了。
DHCP攻击原理:
DHCP没有认证机制,并不知道接收到的报文是否是同一个主机发送的,所以攻击者可以使用以下两种方式进行攻击。
- 攻击者发送大量的DHCP Discover报文,堵塞DHCP服务器处理速度,以至于瘫痪DHCP服务器。
- 制造大量的伪造MAC地址来请求地址,导致DHCP服务器中的IP地址耗尽。
DHCP攻击:
dhcp服务器描述:
网关:192.168.1.1
地址池:192.168.1.0/24
DNS:144.144.144.144
测试PC是否可以获得地址:
使用yersinia工具进行攻击,发送大量的DHCP Discover报文来瘫痪DHCP服务器。
在服务器接口处抓包查看:
可以看到现在有大量的报文发送到服务端,接下来尝试PC是否还可以获得地址
可以看到,PC已经无法获得IP地址了,可以判断此时攻击成功了。
接下来让kali冒充DHCP服务器来给主机分配IP地址。
在kali配置DHCP服务器内容:
可以看到地址池段为192.168.100.2~192.168.100.100
网关为192.168.100.1
DNS为8.8.8.8
首先在XP客户端将之前系统自己分配的169.254.196.125地址释放,然后重新获取IP地址
可以看到,此时获取的IP地址就是我们冒充DHCP服务器分配的地址。
DHCP攻击防御技术
构建一个ip-mac-接口-vlan的映射表,也就是DHCP Snooping技术,此技术用于保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。
DHCP Snooping应用场景:
- 防止DHCP Server仿冒者攻击导致用户获取到错误的IP地址和网络参数
- 防止非DHCP用户攻击导致合法用户无法正常使用网络
- 防止DHCP报文泛洪攻击导致设备无法正常工作
- 防止仿冒DHCP报文攻击导致合法用户无法获得IP地址或异常下线
- 防止DHCP Server服务拒绝攻击导致部分用户无法上线
配置DHCP Snooping功能(交换机):
- 在系统视图执行
dhcp snooping enable
命令,使能全局dhcp snooping功能(要先开启DHCP功能)。然后在接口或vlan视图下执行dhcp snooping enable
命令,开启下方接口的dhcp snooping功能。 - 在接口下执行
dhcp snooping trusted
命令,配置信任接口,这样就不会检查此接口接收到的dhcp报文(offer和ack报文),进而保证客户只能从这个接口连接的合法dhcp服务器获取IP地址。在vlan视图下执行dhcp snooping trusted interface
interface-type interface-number命令。
配置DHCP攻击防范功能:
- 在接口下执行
dhcp server detect
命令,用来定位DHCP冒充者的位置。 - 在接口或vlan视图下执行
dhcp snooping check dhcp-rate enable
命令,开启dhcp限速功能,然后执行dhcp snooping check dhcp-rate
rate命令,设置限制速度。 - 在接口或vlan视图下执行
dhcp snooping max-user-number
max-user-number命令,设置绑定表中最大绑定个数。然后执行dhcp snooping check dhcp-chaddr enable
命令,使能检测DHCP Request报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能。