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

什么是DHCP?

DHCP,动态主机配置协议,前身是BOOTP协议,是局域网的网络协议,使用UDP协议工作,常用的两个端口: 67(DHCP服务器),68 ) DHCP DCP通常用于局域网环境,主要作用是集中管理、分配IP地址,客户端动态获取IP地址、网关地址、DNS服务器地址等信息,提高地址利用率。 简单来说,DHCP是一种自动将IP地址等信息分配给内部网设备的协议,不需要帐户密码登录。

1、发生背景:网络增大,手动配置存在很多问题【人员素质要求高、容易出错、灵活性低、IP地址资源利用率低、工作量大、不利于管理等】

2、DHCP相对于静态手动配置的好处【效率高、灵活性高、容易管理等】

DHCP的工作原理

DHCP的基本工作流程dhcp服务器ip地址池(dhcp有什么缺点-编程之家 ) ) ) )。

发现阶段:在发现阶段,DHCP客户端通过广播向广播域中的DHCP服务器发送DHCP发现消息。 这表示,它的目的是在网络中搜索DHCP服务器,需要获取在网络中的DHCP服务器响应中接收到的DHCP发现消息。 将要提供的IP地址携带在DHCP Offer消息中,通过单播发送到DHCP客户机(注意这里携带在Offer消息中的IP地址客户机还不能直接使用)的请求阶段) DHCP客户机在接收到的所有Offer消息中,选择接收最初到达客户的Offer ) )通常选择最初接收到的Offer )。 然后,通过广播向相应的DHCP服务器发送DHCP请求消息,表明自己接受该报价(该DHCP请求消息中带有r上的DHCP服务器的标记(server identity,服务器id )。 这个双层广播域中的其他DHCP服务器也从DHCP客户机接收DHCP请求消息,它们通过分析这个标志来确认DHCP客户机拒绝了自己的提供。 如果提供阶段拥有的IP地址能够成功分配给DHCP客户机使用,则r将通过单播提供给DHCP客户机,但是如果由于某种原因无法将提供阶段拥有的IP地址分配给DHCP客户机, r向DHCP客户机发送DHCP Nak消息,在DHCP客户机从r接收到DHCP Nak消息时,表示IP地址获取失败,需要返回发现阶段。 DHCP客户机成功获取IP地址后,如下图所示。

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

从DHCP服务器获取的IP地址有租用时间,DHCP协议规定租用时间的默认值为1小时以上。 租赁时间的默认值通常为24小时。

在DHCP协议中,缺省情况下,当DHCP客户机使用IP地址到达T1时(租用时间的1/2 ),DHCP客户机以单播方式向r发送DHCP请求消息,在时间T2 (租用时间的7 ) 也就是说规定达到租赁时间的87.5%。如果没有收到,DHCP客户端在T2点再次广播发送DHCP请求消息,请求重新租赁。 此时,如果DHCP客户机在租赁时间到来之前收到了来自r的DHCP Ack消息,则重新租赁成功,重新开始租赁期间的计时,如果没有收到,则重新租赁失败,DHCP客户机可以继续使用该IP地址

HCP继电器DHCP继电器的使用场景dhcp服务器ip地址池(dhcp有什么缺点-编程之家 ) ) ) ) ) ) ) ) ) ) ) ) )。

正如前面的DHCP的工作原理所示,DHCP客户端必须与DHCP服务器位于同一双层广播域中,才能接收彼此发送的DHCP消息。 DHCP消息不能跨越两层广播域传播。 在这种情况下,有两种方法可以解决这个问题。

) 1、网络内的每个网段设置一台DHCP服务器,但这种方法成本大,不经济,造成资源浪费,所以现实中一般不推荐使用

) 2、只安装一个DHCP服务器,使用DHCP中继技术d

HCP Relay 来实现一个DHCP Server 同时为多个二层广播域中的DHCP Client 服务,这样既节省成本,又便于集中管理

2.DHCP中继的工作原理

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

在DHCP中继的工作原理中和前面的DHCP工作原理基本相同,只是中间DHCP Relay 负责DHCP Client 和DHCP Server 之间的DHCP报文的转发,这里要注意的是:DHCP Relay 与DHCP Client 之间是以广播的方式进行交换DHCP报文的,而DHCP Relay 与DHCP Server 之间是以单播的方式来交换DHCP报文的。

DHCP服务器的防攻击与防御

DHCP服务器面临的安全威胁:DHCP在设计上未充分考虑到安全因素,从而留下许多安全漏洞,使得DHCP很容易受到攻击。在实际网络中,针对DHCP攻击的手段主要有以下三种:

DHCP饿死攻击

1.攻击原理

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

攻击者持续大量地向DHCP服务器申请IP地址,直到耗尽DHCP服务器地址池的IP地址,使DHCP服务器无法再给正常的主机分配IP地址

在PC机给DHCP Server发送的DHCP Discover 报文中有一个CHADDR字段,该字段是由DHCP客户端填写的,用来表示客户端的硬件地址(MAC地址),而DHCP Server 也是根据CHADDR字段来分配IP地址的,对于不同的CHADDR,DHCP Server会分配不同的IP地址,因为DHCP Server 无法识别CHADDR的合法性,攻击者就利用这个漏洞,不断的改变CHADDR字段的值,来冒充不同的用户申请IP地址,使DHCP Server 中IP池枯竭,从而达到攻击目的。

2.DHCP Snooping 技术解决DHCP 饿死攻击

为了防止DHCP受到攻击,就产生了一种DHCP Snooping的技术,但DHCP Snooping不是一种标准技术,还没有统一的标准规范,所以不同品牌的网络设备上实现DHCP Snooping也不尽相同。DHCP Snooping部署在交换机上就相当于在DHCP客户端与DHCP服务器端之间构建了一道虚拟的防火墙。

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

我们前面讲到DHCP饿死攻击是攻击者不断改变CHADDR的字段来实现的,为了弥补这个漏洞,阻止饿死攻击,我们在端口下配置DHCP Snooping技术,对DHCP Request报文的源MAC地址与CHADDR的字段进行检查,如果一致则转发报文,如果不一致则丢弃报文。

配置命令为,进入连接客户端接口视图,输入命令dhcp snooping check dhcp-chaddr enable

如下图:

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

但是还可能存在另一种饿死攻击,就是攻击者不断改变CHADDR,同时改变源MAC,并让CHADDR与源MAC地址相同,这样也可以躲过源MAC地址与CHADDR的一致性检查。

仿冒DHCP Server攻击

1.攻击原理

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

当攻击者私自安装并运行DHCP Server 程序后,可以将自己伪装成DHCP Server,这就是仿冒DHCP Server。它的工作原理与正常的DHCP Server 一模一样,所以当PC机接收到来自DHCP Server 的DHCP报文时,无法区分是哪个DHCP Server 发送过来的,如果PC机第一个接收到的是来自仿冒DHCP Server 发送的DHCP报文,那么仿冒DHCP Server 则会给PC机分配错误的IP地址参数,导致PC客户端无法访问网络。

2.DHCP Snooping 防止仿冒DHCP Server 攻击

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

在DHCP Snooping技术中,将交换机的端口分为两种类型,信任端口(Trusted端口)和非信任端口(Untrusted端口),交换机所有端口默认都是Untrusted端口,我们将与合法DHCP Server 相连的端口配置为Trusted端口,这样交换机从Trusted端口接收到的DHCP 报文后,会正常转发,从而保证合法的DHCP Server能正常分配IP地址及其他网络参数;而其他从Untrusted端口接收到的DHCP Server 的报文,交换机会直接丢弃,不再转发,这样可以有效地阻止仿冒的DHCP Server 分配假的IP地址及其他网络参数。

配置命令如下:进入与DHCP Server 相连的接口视图

[LSW2] int e0/0/2

[LSW2-E0/0/2] dhcp snooping trusted

如果恢复为Untrusted 端口,命令如下:

[LSW2-E0/0/2] undo dhcp snooping trusted

DHCP中间人攻击

1.攻击原理

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

攻击者利用ARP机制,让PC-A学习到IP-S与MAC-B的映射关系,让DHCP Server 学习到IP-A与MAC-B的映射关系,如此一来,PC-A与DHCP Server之间交互的IP报文都要经过PC-B进行中转。我们这里要了解交换机在转发数据包过程中,IP地址与MAC地址的变化过程,这个类似于MAC地址欺骗。由于PC1与DHCP Server之间的IP报文都会经过攻击者PC,攻击者就能很容易窃取到IP报文中的信息,进行篡改或其他的破坏行为,从而达到直接攻击DHCP目的。

2.DHCP Snooping 防止DHCP中间人攻击

dhcp服务器ip地址池(dhcp有什么缺点-编程之家

DHCP中间人攻击从原理上我们可以知道它其实是一种Snoofing IP/MAC攻击(ARP欺骗),所以要防止DHCP中间人攻击,就是要防止ARP欺骗。而运行DHCP Snooping的交换机会侦听(Snooping)往来于用户与DHCP Server之间的信息,并从中收集用户的MAC地址(DHCP消息中的CHADDR字段中的值)、用户的IP地址(DHCP Server分配给相应的CHADDR的IP地址)、IP地址租用期等等信息,将它们集中存放在DHCP Snooping 绑定表中,运行了DHCP Snooping的交换机会建立并动态维护DHCP Snooping绑定表。

如上图所示,DHCP Server给PC-A 、PC-B分别分配IP-A、IP-B,那么IP-A与MAC-A就形成绑定关系,IP-B与MAC-B形成绑定关系,并存入DHCP Snooping绑定表中。这时攻击者想让Server 学习到IP-A与MAC-B的映射关系,会发送不断发送ARP请求报文(ARP报文中源IP地址填为IP-A,源MAC地址填为MAC-B)。交换机接收到这个ARP报文后,会检查它的源IP地址和源MAC地址,发现与DHCP Snooping绑定表中的条目不匹配,就丢弃该报文,这样可以有效地防止Spoofing IP/MAC攻击。

配置命令为:

[LSW2] arp dhcp-snooping-detect enable

DHCP Snooping 与IPSG技术的联动dhcp服务器ip地址池(dhcp有什么缺点-编程之家

针对网络中经常存在对源IP地址进行欺骗的攻击行为(攻击者仿冒合法用户的IP地址来向服务器发送IP报文),我们可以使用IPSG(IP Source Guard)技术来防范这种攻击。在交换机使用IPSG功能后,会对进入交换机端口的报文进行合法性的检查,然后对报文进行过滤(检查合法,则转发;检查非法,则丢弃)。

DHCP Snooping技术也可以与IPSG技术进行联动,即对于进入交换机端口的报文进行DHCP Snooping绑定表的匹配检查,如果报文的信息与绑定表一致,则允许通过,如果不一致则丢弃该报文。

报文的检查项可以是源IP地址、源MAC地址、Vlan和物理端口号等若干组合。如在交换机的端口视图下可支持IP+MAC、IP+Vlan、IP+MAC+Vlan等组合检查,在交换机的Vlan视图下可支持:IP+MAC、IP+物理端口号、IP+MAC+物理端口号等组合检查。

配置命令如下:

在交换机的接口视图或VLan视图下输入命令:ip source check user-bind enable。

总结

1、熟悉DHCP服务器的工作原理,DHCP服务器工作过程中的报文的作用可以让我们对于攻击DHCP服务器的手段能更好的理解;

2、在防范DHCP和各种攻击手段中所用到的技术,其工作原理和工作场景,我们也要非常熟悉。


感谢您的阅读,喜欢的话就转发并关注小编吧。


上一篇:「网络安全」常见攻击篇(21)——路由协议攻击

下篇预告:「网络安全」常见攻击篇(23)——ARP攻击 敬请关注