1、DHCP概念
- DHCP全称:dynamic host configure protocol。
- DHCP作用:自动分配IP地址。
- DHCP地址池:路由器中用于存储可用IP地址的范围。(好比如一个地址池中有多个IP地址,可以分配给使用的用户)
- DHCP作用域:IP、子网掩码、网关、DNS、租期。
- DHCP协议端口:默认端口为67、68,走的是UDP协议。
- DHCP优点:减少工作量,避免地址冲突,提高地址利用率。
2、DHCP原理
四个步骤:
- 客户机发送DHCP discovery广播包。客户机广播请求ip地址(包含客户机的mac地址)。
- 服务器响应DHCP offer包。服务器响应提供的ip地址,但是不提供子网掩码和网关。
- 客户机发送DHCP request包。请把这个ip地址的子网掩码和网关发给我,客户机选择ip(确认ip)。
- 服务器发送DHCP ack广播包,ack代表确认的意思,服务器确定了租约,并提供了网卡所需要的ip、子网掩码、网关、dns、租期等。
3、DHCP续约
- 当租期过了50%后,客户机会再次发送DHCP request包进行续约,如果服务器无响应,则继续使用到87.5%再次发送DHCP request包,进行续约,如仍无响应,并释放地址,重新发送DHCP discovery广播包来获取ip地址,当无任何服务器响应时,自动给自己分配一个169.254.x.x/16,这个ip属于全球统一无效地址,用于临时内网通信。
4、DHCP的搭建
准备一台windows server 2008和一台windows7虚拟机,并把两台虚拟机的网络适配器改为LAN区段并在同一个交换机里面。
LAN区段: 相当于给了一台新的交换机,纯净的网络状态没有其他网络干扰。
给server2008配置静态IP
打开网络和共享中心
点击本地连接,然后点击属性
选择Internet 协议版本 4
给它分配ip和子网掩码
搭建DHCP服务器
添加角色
点击下一步
选择DHCP服务器,点击下一步
点击下一步
点击下一步
这里的IP地址就是在win2008上设置的静态IP。
填写父域和首选服DNS务器(不用去验证)
父域:DNS服务器设置的父域是指在域名系统中,一个域名的上一级域名。父域包含了当前域的所有子域。例如,对于域名example.com来说,.com就是它的父域。在DNS服务器的配置中,需要指定父域的DNS服务器地址,以便进行域名解析和查询。
点击下一步
起始地址与结束地址就是地址池,就是DHCP服务器从其抽出分配给主机的IP地址。在下面就是IP地址租约,这里设置的是8天。使用本机的IP地址做网关。
为什么起始地址是从20起,因为前面预留一些固定IP给路由器、DNS、网关等。
下一步
安装
打开win7查看是否分配到ip地址
win+R>输入cmd>输入ipconfig
给win7分配一个固定IP
在server2008中,点击DHCP
新建保留
注意: 这里MAC地址是win7的MAC地址
打开win7的dos命令窗口,输入ipconfig /renew重新获取一下ip
5、DHCP服务器的删除
删除步骤如下:
6、DHCP地址池耗尽攻击
DHCP是自动分配IP地址的,只要有人向它发送DHCP discover广播包,它就会从地址池中取出一个IP地址而不加验证给发送者,这就会使得黑客利用这一漏洞,不停的伪造MAC地址发送给DHCP服务器请求IP地址,直到地址池里的IP地址耗光,使得有的主机断网。
- 防止这种攻击手段,可以在交换机端口绑定MAC地址。
还有就是攻击者可以在自己的电脑中搭建DHCP服务器,只要有人发出请求DHCP discover广播包获取IP地址,如果攻击者的DHCP服务器抢先收到客户端发出的请求,攻击者的DHCP服务器就会把自己设置的IP地址发送给客户端,那么客户端就会优先接受这个IP地址。可以让DHCP服务端的端口发送offer广播包,其它主机的端口不允许发送此包。
实验
环境:server 2008(DHCP服务器) 、win7(客户机)、kali(攻击机)
在kali中安装软件
apt-get install yersinia
然后将Win7的ip地址进行释放,然后先不去获取,先将网卡禁用
ipconfig /release # 释放IP地址
然后启动攻击
yersinia -G
然后将Win7的网卡启动,输入命令ipconfig。
发现获取不到ip,最后分配了全球统一无效地址。
7、防御措施
第一种攻击方式: 攻击DHCP服务器,频繁发送DHCP求,直到将DHCP地址池中的资源耗尽。
防御: 在管理型交换机上的端口做动态MAC地址的绑定。
解决方式:
在管理型交换机上面做端口与mac地址的绑定,管理型交换机管理哪些mac地址是可以通过这个端口的,哪些是不可以通过。因为在请求discovery包的时候要携带客户机的mac 地址。如果做端口与Kali虚拟机mac地址的绑定,只有对应的mac地址才可以向端口发送数据。
第二种攻击方式: 伪装DHCP服务器攻击,攻击者通过将自己部署的DHCP服务器,为客户提供非法的IP地址。
防御: 在管理型交换机上,除了合法的DHCP服务器所在的接口外,全部设置为禁止发送dhcp offer包。
如果攻击者也搭建DHCP服务器,win7获取的不一定是server 2008分配的ip地址和网关,有可能是Kali分配的。
解决方式:只能在管理型交换机上面的接口发送offer包,其他非DHCP服务器禁止发送offer包。