dhcp报文_成为黑客克星! 系列一:DHCP攻击原理及防范

一、什么是DHCP?

一般终端设备的地址分配可以有两种方式,如静态配置,也就是通过管理员手动为终端添加相应的IP地址,子网掩码等;另外一种方式就是通过DHCP服务器来划分了,DHCP服务器可以为客户端自动分配IP地址、掩码、默认网关、DNS服务器等网络参数,简化了网络配置,提高了管理效率。

58b9f5e2f43a6ee136764c5298ae86b1.png

二、DHCP工作的过程

根据工作过程,我们可以分成两端:

DHCP Client:也就是DHCP客户端,通过DHCP协议请求IP地址的客户端。DHCP客户端 是接口级的概念,如果一个主机有多个以太接口,则该主机上的每个接口都可以配置成一个DHCP 客户端。交换机上每个Vlan接口也可以配置成一个DHCP客户端。DHCP Server:即DHCP 服务端,负责为DHCP客户端提供IP地址,并且负责管理分配的IP地址。
c8919ec0177d393a55fbec7cfe6d1c51.png

DHCP工作原理图

如图所示,DHCP的工作过程可以划分成六个阶段,下面一一阐述:

发现阶段:

即DHCP客户端寻找DHCP服务端的过程,对应于客户端发送DHCP Discovery数据包,因为DHCP Server对应于DHCP客户端是未知的,所以DHCP 客户端发出的DHCP Discovery报文是广播包(注意),源地址为0.0.0.0目的地址为255.255.255.255。网络上的所有支持TCP/IP的主机都会收到该DHCP Discovery报文,但是只有DHCP Server会响应该报文。如果网络中存在多个DHCP Server,则多个DHCP Server均会回复该DHCP Discovery报文。

DHCP Server 提供阶段:

DHCP Server提供阶段,即为DHCP Server响应DHCP Discovery所发的DHCP Offer阶段DHCP Server收到DHCP Discovery报文后,解析该报文请求IP地址所属的Subnet。并从dhcpd.conf文件中与之匹配的subnet中取出一个可用的IP地址。DHCP从地址池中选择IP地址,以如下优先级进行选择:1、当前已经存在的Ip Mac的对应关系2、Client以前的IP地址3、读取Discovery报文中的Requested Ip Address Option的值,如果存在并且IP地址可用4、从配置的Subnet中选择IP地址:DHCP Server解析DHCP Discovery请求的IP所属的Subnet,首先看该DHCP Discovery报文中giaddress是否有DHCP Relay,如果有,则从giaddress所述的subnet中可用IP地址段中获取,并分配IP。如果giaddress没有IP地址,则从该DHCP Server绑定的接口的IP地址所属的网段分配IP地址。

DHCP Client 选择阶段:

DHCP Client收到若干个DHCP Server响应的DHCP Offer报文后,选择其中一个DHCP Server作为目标DHCP Server。选择策略通常为选择第一个响应的DHCP Offer报文所属的DHCP Server。然后以广播方式回答一个DHCP Request报文,该报文中包含向目标DHCP请求的IP地址等信息。之所以是以广播方式发出的,是为了通知其他DHCP Server自己将选择该DHCP Server所提供的IP地址。

DHCP Server确认阶段:

当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP Client提供的IP地址后,便想该DHCP Client响应一个包含该IP地址以及其他Option的报文,来告诉DHCP Client可以使用该IP地址了。然后DHCP Client即可以将该IP地址与网卡绑定。另外其他DHCP Server都将收回自己之前为DHCP Client提供的IP地址。

DHCP Client重新登录网络:

当DHCP Client重新登录后,发送一个包含之前DHCP Server分配的IP地址信息的DHCP Request报文,当DHCP Server收到该请求后,会尝试让DHCP客户端继续使用该IP地址。并回答一个ACK报文。但是如果该IP地址无法再次分配给该DHCP Client后,DHCP回复一个NAK报文,当DHCP Client收到该NAK报文后,会重新发送DHCP Discovery报文来重新获取IP地址。

DHCP Client更新租约:

DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,所以如果DHCP Client如果想继续使用该IP地址,则必须更新器租约。更新的方式就是,如果当前租约期限过了一半后,DHCP Client都会发送DHCP Renew报文来续约租期。

三、DHCP存在的问题

  1. DHCP Server的冒充
 由于DHCP服务器和客户端之间没有认证机制,所以如果在网络上随意添加一台DHCP服务器,它就可以为客户端分配IP地址以及其他网络参数。只要让该DHCP服务器分配错误的IP地址和其他网络参数,那就会对网络造成非常大的危害。

2.DHCP Server的拒绝服务攻击

 通常DHCP服务器通过检查客户端发送的DHCP请求报文中的CHADDR(也就是Client MAC address)字段来判断客户端的MAC地址。正常情况下该CHADDR字段和发送请求报文的客户端真实的MAC地址是相同的。攻击者可以利用伪造MAC的方式发送DHCP请求,但这种攻击可以使用Cisco 交换机的端口安全特性来防止。端口安全特性(Port Security)可以限制每个端口只使用唯一的MAC地址。但是如果攻击者不修改DHCP请求报文的源MAC地址,而是修改DHCP报文中的CHADDR字段来实施攻击,那端口安全就不起作用了。由于DHCP服务器认为不同的CHADDR值表示请求来自不同的客户端,所以攻击者可以通过大量发送伪造CHADDR的DHCP请求,导致DHCP服务器上的地址池被耗尽,从而无法为其他正常用户提供网络地址,这是一种DHCP耗竭攻击。DHCP耗竭攻击可以是纯粹的DOS攻击,也可以与伪造的DHCP服务器配合使用。当正常的DHCP服务器瘫痪时,攻击者就可以建立伪造的DHCP服务器来为局域网中的客户端提供地址,使它们将信息转发给准备截取的恶意计算机。甚至即使DHCP请求报文的源MAC地址和CHADDR字段都是正确的,但由于DHCP请求报文是广播报文,如果大量发送的话也会耗尽网络带宽,形成另一种拒绝服务攻击。

3.客户端随意指定IP地址

 客户端并非一定要使用DHCP服务,它可以通过静态指定的方式来设置IP地址。如果随便指定的话,将会大大提高网络IP地址冲突的可能性。

四、DHCP Snooping技术

DHCP监听(DHCP Snooping)是一种DHCP安全特性。Cisco交换机支持在每个VLAN基础上启用DHCP监听特性。通过这种特性,交换机能够拦截第二层VLAN域内的所有DHCP报文。

DHCP监听将交换机端口划分为两类:

●非信任端口:通常为连接终端设备的端口,如PC,网络打印机等

●信任端口:连接合法DHCP服务器的端口或者连接汇聚交换机的上行端口

 通过开启DHCP监听特性,交换机限制用户端口(非信任端口)只能够发送DHCP请求,丢弃来自用户端口的所有其它DHCP报文,例如DHCP Offer报文等。而且,并非所有来自用户端口的DHCP请求都被允许通过,交换机还会比较DHCP 请求报文的(报文头里的)源MAC地址和(报文内容里的)DHCP客户机的硬件地址(即CHADDR字段),只有这两者相同的请求报文才会被转发,否则将被丢弃。这样就防止了DHCP耗竭攻击。信任端口可以接收所有的DHCP报文。通过只将交换机连接到合法DHCP服务器的端口设置为信任端口,其他端口设置为非信任端口,就可以防止用户伪造DHCP服务器来攻击网络。DHCP监听特性还可以对端口的DHCP报文进行限速。通过在每个非信任端口下进行限速,将可以阻止合法DHCP请求报文的广播攻击。DHCP监听还有一个非常重要的作用就是建立一张DHCP监听绑定表(DHCP Snooping Binding)。一旦一个连接在非信任端口的客户端获得一个合法的DHCP Offer,交换机就会自动在DHCP监听绑定表里添加一个绑定条目,内容包括了该非信任端口的客户端IP地址、MAC地址、端口号、VLAN编号、租期等信息。

五、实例操作(注意:Cisco模拟器无法实现)

单交换机(DHCP服务器和DHCP客户端位于同一VLAN)

64771ea56c0f8c60b972c3ec418ef1f9.png

环境:Windows2003 DHCP服务器和客户端都位于vlan 10;服务器接在fa0/1,客户端接在fa0/2

2960交换机相关配置:

ip dhcp snooping vlan 10ip dhcp snoopinginterface FastEthernet0/1description : Connect to Win2003 DHCP Serverswitchport access vlan 10switchport mode accessspanning-tree portfastip dhcp snooping trustinterface FastEthernet0/2description : Connect to DHCP Clientswitchport access vlan 10switchport mode accessspanning-tree portfastip dhcp snooping limit rate 15

说明:

●本例中交换机对于客户端的DHCP 请求报文将插入选项82 信息;也可以通过配置no ip dhcp snooping information option命令选择不插入选项82信息。两种情况都可以。

●客户端端口推荐配置spanning-tree portfast命令,使得该端口不参与生成数计算,节省端口启动时间,防止可能因为端口启动时间过长导致客户端得不到IP地址。

●开启DHCP监听特性的vlan并不需要该vlan的三层接口被创建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值