DHCP协议
DHCP协议
1、掌握DHCP的工作原理
2、会在Windows server上去部署DHCP服务
3、抓流量
- 正常
- 收到攻击后
一、DHCP
1、DHCP基本概念
- dhcp(动态主机配置协议):主要就是给客户机提供TCP/IP参数(IP地址、子网掩码、网关、DNS等)
2、好处
- 减少管理员工作量
- 避免输入错误
- 避免IP冲突
- 提高IP地址利用
3、DHCP的工作原理
- 它是一个应用层的协议,基于UDP,主机是向服务器的67号端口,服务器响应给客户机的68号端口
- 客户机与服务器的交互过程
- 客户机发送dhcp discover,以广播方式
- 网络中所有的DHCP服务器都是会收到,都会响应(DHCPoffer),客户机会向收到的第一个offer报文的服务器发送DHCP request
- 服务器确认,客户机获得TCP/IP参数
二、在Windows server上部署DHCP服务器
- 配置交换机
SW#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SW(config)#no ip routing
SW(config)#
- 配置路由器IP
R1#configure terminal
R1(config)#int f0/0
R1(config-if)#ip add 192.168.50.254 255.255.255.0
R1(config-if)#exit
R1(config)#int f1/0
R1(config-if)#ip add 192.168.120.254 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
- 在Windows Server 2016上配置静态IP地址
服务器管理器—管理—添加角色和功能—下一步直到服务器角色—选择DHCP服务器—添加功能—下一步直到安装
开始菜单—Windows管理工具—DHCP—进入DHCP服务器界面—右键新建作用域—配置IP地址范围—配置作用域
注:169.254.0.0网段表示没有获取到IP地址,被路由器阻挡了。
怎么解决上述问题?
使用DHCP中继
#在路由器中配置
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int f0/0
R1(config-if)#ip helpe
R1(config-if)#ip helper-address 192.168.120.100
1、DHCP的8中报文
- DHCP discover
- DHCP offer
- DHCP request
- DHCP ack
- DHCP release
- DHCP nak:针对于request的拒绝响应报文
- DHCPdecline:当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址
- DHCP inform:客户端已经获得了IP地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS服务器地址等
三、实施DHCP攻击
在kali中手动设置IP地址#vim /etc/network/interfaces
实施DHCP攻击的工具:Yersinia,记得先用本地网络安装好工具再配置实验IP地址。
yersinia -G #显示图形化界面
四、DHCP防御
1、在交换机上配置信任端口
-
开启DHCP监听
-
ip dhcp snooping
-
指定监听vlan
-
ip dhcp snooping vlan 1
-
由于开启监听后,交换机上的接口就全部变成非信任端口(会拒绝DHCP报文),需要将正常的接口添加为信任端口
-
进入接口后,输入命令:ip dhcp snooping trust
-
启用“选项82”
-
Switch(config)#ip dhcp snooping information option
-
限制DHCP的报文数据
ip shcp snooping limit rate 100
- 启用核实MAC地址功能
- 检测非信任端口的请求报文中源MAC地址和DHCP请求报文中的客户端MAC地址是否相同
当交换机开启dhcpsnooping后,所有的接口变成了非信任端口(会拒绝DHCP报文),当把交换机上的某一个接口设置为信任端口后,其他所有接口编程可信任端口(会拒绝DHCPoffer)