1.什么是DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被用在大型局域网环境中,主要作用是集中管理、分配IP地址,使网络环境中的主机动态获得IP地址、Gateway(网关)地址、DNS服务器地址等信息,并能够提升地址的使用率。
2.使用端口
UDP:67
功能:用来接收下级客户请求分配IP
UDP:68
功能 :向客户和发请求成功或失败的响应
3.DHCP服务功能
- 保证任何IP地址在同一时刻只能由一台DHCP客户机使用
- DHCP应当可以给用户分配永久固定的IP地址
- DHCP应当可以同用其他方法获得IP地址的主机共存
- DHCP服务器应当向现有的BOOT客户端提供服务
4.DHCP工作过程
5.DHCP攻击方式
DHCP仿冒者攻击:
在内部网络搭建一台仿冒的DHCP服务器,通过这台服务器将用户的流量按照攻击者的意图走
DHCP报文泛洪攻击:
构造大量DHCP报文向DHCP服务器发送
仿冒DHCP报文攻击:
构造仿冒的DHCP报文,比如构造仿冒的DHCP Release 报文,向DHCP服务器发送,造成用户的异常下线
DHCP Server服务拒绝攻击:
构造DHCP Discover报文向DHCP服务器发送,造成DHCP服务器地址池瞬间消耗完毕,无法向正常用户提供服务
6.攻击演示
环境:
VMware workstation 15 PRO
Windows Server 2003
Kali Linux 2019.2.
yersinia 0.8.2
客户机:
①Windows7
②ReaHat 7
网络环境:LAN区段
测试过程
①搭建DHCP服务器
使用Windows Server 2003 搭建DHCP服务器
②开启客户机Windows 7 、RedHat 7 和 渗透测试机 Kali Linux 使用DHCP获取IP
③进入Kali Linux 使用 yersinia -G启动软件
④将页签切换至DHCP,可以看到构造DHCP数据报文需要:
Source MAC(源MAC地址)
Destination MAC(目的MAC地址)
SIP(源IP)
DIP(目的IP)
Sport(源端口)
Dport(目的端口)
Op、Htype、HLEN、Hops、Xid、Secs、Flags、CI、YI、SI、GI、CH这些参数
⑤打开右上角的Lunch Attack ,选择DHCP页签,并选择Sending DISCOVER packet 后面勾选上DOS
⑥点击OK后发现由大量DHCP DISCOVER 报文
⑦回到DHCP服务器查看,发现DHCP地址池已被占满,无法向正常用户提供服务
⑧再次使用客户机获取IP,可以看到已经无法正常获取IP地址
7.DHCP攻击的防范
开启设备根据DHCP snooping绑定表生成接口的静态AMC表项功能
使设备对DHCP报文上送DHCP报文处理单元的速率进行检测
防止仿冒DHCP报文攻击
防止DHCP Server 拒绝服务攻击
8.免责声明
本文内容涉及程序/技术原理(包括构造DHCP DISCOVER 报文数据包,DHCP拒绝服务攻击方式/原理)可能带有攻击性,仅用于安全研究和教学使用,务必在模拟环境下进行实验,请勿将其用于其他用途。
因此造成的后果自行承担,如有违反国家法律则自行承担全部法律责任,于NowsSec及分享者无关。