DHCP攻击及防御

DHCP攻击

原理:
DHCP攻击针对的目标是网络中的DHCP服务器,原理是耗尽DHCP服务器所有的IP地址资源,使其无法正常提供地址分配服务。然后在网络中再架设假冒的DHCP服务器为客户端分发IP地址,从而来实现中间人攻击。

DHCP工作过程:
工作过程分为四个阶段

  1. 发现阶段:首先客户端广播发送DHCP Discover报文来寻找DHCP服务器。
  2. 提供阶段:DHCP服务器接收到DHCP Discover报文后,查看自己的地址池中是否有可用地址,如果有,会在这个IP上做一个标记,并用DHCP Offer报文回复给客户端(广播)。
  3. 请求阶段:客户端在接收到第一个DHCP Offer报文后,会选择此报文中提供的IP地址,并广播发送DHCP Request报文,其他服务器会知道客户端拒绝了自己提供的IP地址。
  4. 确认阶段:服务器接收到客户端的DHCP Request报文后,会发送一个DHCP ACK报文,告诉客户端你可以使用那个IP地址了。

DHCP攻击原理:
DHCP没有认证机制,并不知道接收到的报文是否是同一个主机发送的,所以攻击者可以使用以下两种方式进行攻击。

  1. 攻击者发送大量的DHCP Discover报文,堵塞DHCP服务器处理速度,以至于瘫痪DHCP服务器。
  2. 制造大量的伪造MAC地址来请求地址,导致DHCP服务器中的IP地址耗尽。

DHCP攻击:
DHCP攻击及防御_第1张图片dhcp服务器描述:
网关:192.168.1.1
地址池:192.168.1.0/24
DNS:144.144.144.144

测试PC是否可以获得地址:
DHCP攻击及防御_第2张图片
使用yersinia工具进行攻击,发送大量的DHCP Discover报文来瘫痪DHCP服务器。
DHCP攻击及防御_第3张图片
在服务器接口处抓包查看:
DHCP攻击及防御_第4张图片
可以看到现在有大量的报文发送到服务端,接下来尝试PC是否还可以获得地址
DHCP攻击及防御_第5张图片
可以看到,PC已经无法获得IP地址了,可以判断此时攻击成功了。

接下来让kali冒充DHCP服务器来给主机分配IP地址。
DHCP攻击及防御_第6张图片在kali配置DHCP服务器内容:
DHCP攻击及防御_第7张图片
可以看到地址池段为192.168.100.2~192.168.100.100
网关为192.168.100.1
DNS为8.8.8.8
首先在XP客户端将之前系统自己分配的169.254.196.125地址释放,然后重新获取IP地址
DHCP攻击及防御_第8张图片
可以看到,此时获取的IP地址就是我们冒充DHCP服务器分配的地址。

DHCP攻击防御技术

构建一个ip-mac-接口-vlan的映射表,也就是DHCP Snooping技术,此技术用于保证DHCP客户端从合法的DHCP服务器获取IP地址,并记录DHCP客户端IP地址与MAC地址等参数的对应关系,防止网络上针对DHCP攻击。

DHCP Snooping应用场景:

  1. 防止DHCP Server仿冒者攻击导致用户获取到错误的IP地址和网络参数
  2. 防止非DHCP用户攻击导致合法用户无法正常使用网络
  3. 防止DHCP报文泛洪攻击导致设备无法正常工作
  4. 防止仿冒DHCP报文攻击导致合法用户无法获得IP地址或异常下线
  5. 防止DHCP Server服务拒绝攻击导致部分用户无法上线

配置DHCP Snooping功能(交换机):

  1. 在系统视图执行dhcp snooping enable命令,使能全局dhcp snooping功能(要先开启DHCP功能)。然后在接口或vlan视图下执行dhcp snooping enable命令,开启下方接口的dhcp snooping功能。
  2. 在接口下执行dhcp snooping trusted命令,配置信任接口,这样就不会检查此接口接收到的dhcp报文(offer和ack报文),进而保证客户只能从这个接口连接的合法dhcp服务器获取IP地址。在vlan视图下执行dhcp snooping trusted interface interface-type interface-number命令。

配置DHCP攻击防范功能:

  1. 在接口下执行dhcp server detect命令,用来定位DHCP冒充者的位置。
  2. 在接口或vlan视图下执行dhcp snooping check dhcp-rate enable命令,开启dhcp限速功能,然后执行dhcp snooping check dhcp-raterate命令,设置限制速度。
  3. 在接口或vlan视图下执行dhcp snooping max-user-numbermax-user-number命令,设置绑定表中最大绑定个数。然后执行dhcp snooping check dhcp-chaddr enable命令,使能检测DHCP Request报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能。

你可能感兴趣的:(网络,安全)