[工具]Red Hat DHCP客户端命令执行漏洞CVE-2018-1111
0x00 漏洞概述
红帽系统存在高危漏洞,CESI对此漏洞进行了技术分析,认为该漏洞危害等级严重,目前相关利用代码已经公开,建议使用相关用户尽快进行更新。
攻击者可以通过伪造DHCP服务器发送响应包,攻击红帽系统,获取root权限并执行任意命令。
近日,红帽官方发布了修复补丁,修复了编号为CVE-2018-1111的远程代码执行漏洞。
0x01 漏洞影响面
影响版本
Red Hat Enterprise Linux Server 6
Red Hat Enterprise Linux Server 7
CentOS 6
CentOS 7
0x02 修复方案
软件包更新
#yum update dhclient #rpm -qa --changelog dhclient | grep CVE-2018 - Resolves: #1570898 - Fix CVE-2018-1111: Do not parse backslash as escape character
0x03 漏洞详情
DHCP 是一个局域网的网络协议,主要用于内部网络动态IP地址分配。
Red Hat提供的DHCP客户端软件包dhclient的脚本为/etc/NetworkManager/dispatcher.d/11-dhclient
(Red Hat Enterprise Linux 7)和/etc/NetworkManager/dispatcher.d/10-dhclient
(Red Hat Enterprise Linux 6);当NetworkManager组件从DHCP服务器收到DHCP响应时执行该脚本。
NetworkManager是一个Linux程序,在启用DHCP网络模式的情况下,常使用它来管理系统网络。在这种情况下,NetworkManager将启动dhclient来发送DHCP请求,具体如下图所示。
通过NetworkManager运行的dhclient进程
在上面的示例中,读者可能会注意到,NetworkManager还向dhclient传递了另外一个配置文件(/var/lib/NetworkManager/dhclient-eth0.conf)。如下例所示,dhclient在默认情况下被配置为请求多个DHCP数据包选项,其中包括WPAD。
传递给dhclient的配置文件
当dhclient向DHCP服务器发送初始请求时,会在请求中包含这个WPAD(代码252)选项,具体如下图所示:
包含WPAD选项的DHCP初始请求数据包
利用CVE-2018-1111漏洞,攻击者可以通过格式错误的响应对该DHCP请求进行响应。例如,攻击者可以使用以下数据进行响应,具体如下图所示:
xxx'&touch /tmp/test #
攻击者利用DHCP响应中畸形的WPAD选项进行响应
收到该响应后,默认的11-dhclient脚本最终会将该数据传递给eval()语句,进而导致touch命令创建/tmp/test。
0x03 漏洞详情
docker-compose
$ docker-compose up -d
Attacker
$ docker-compose exec attacker bash [root@attacker /]# /scripts/attack.sh Ncat: Version 7.50 ( https://nmap.org/ncat ) Ncat: Listening on :::1337 Ncat: Listening on 0.0.0.0:1337
Victim
$ docker-compose exec victim bash [root@victim /]# /scripts/victim.sh Connection 'eth0' (90e3f2ae-e210-446d-8dfb-3f87510ab736) successfully added. Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
metasploit:CVE-2018-1111-metasploit.zip
利用工具:CVE-2018-1111.zip
解压密码仅提供甲方,工具有一定的攻击性,仅供甲方漏洞验证使用,请勿用于非法用途 。
champire
2018年12月18日 11:12
看了一眼就种草你的博客了,我在南瑞做甲方安全,可以提供一下解压码吗?
hackliu
2018年12月25日 15:52
可以的,资料里是你邮箱吗?我邮箱发你