您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)CVE-2017-8570的野外樣本及漏洞分析是怎樣的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
360威脅情報(bào)中心曾在2017年8月發(fā)布了《烏龍的CVE-2017-8570樣本及背后的狗血》(詳見參考資料[1]),當(dāng)時(shí)由于在VirusTotal上發(fā)現(xiàn)了多例標(biāo)注為CVE-2017-8570的Office幻燈片文檔惡意樣本,所以有安全廠商宣稱第一時(shí)間捕獲了最新的Office CVE-2017-8570野外利用漏洞樣本,但經(jīng)過360威脅情報(bào)中心的分析判斷,這批Exploit樣本實(shí)際上是CVE-2017-0199的另外一種利用方式(通過Office幻燈片加載執(zhí)行Scriptletfile腳本),在微軟2017年4月份的補(bǔ)丁中已經(jīng)針對(duì)CVE-2017-0199這種利用方式實(shí)行了修補(bǔ)。
360威脅情報(bào)中心才監(jiān)控到互聯(lián)網(wǎng)上首次出現(xiàn)了真實(shí)的CVE-2017-8570野外攻擊樣本,基于360威脅情報(bào)中心的數(shù)據(jù),以下熱力圖顯示了從2018年1月11日以來CVE-2017-8570樣本量的提交情況,可以看到漏洞Exploit一旦公開使用,馬上就會(huì)進(jìn)入被攻擊者頻繁使用的狀態(tài):
另外,因?yàn)镃VE-2017-0199有天生缺陷(這部分我們會(huì)在隨后的章節(jié)中描述),實(shí)際上目前已公開的CVE-2017-0199利用樣本在Office Word上的利用威脅并不大,而CVE-2017-8570并沒有該缺陷,所以8570在Office Word上利用的實(shí)際效果要比0199好很多,但POC構(gòu)造相對(duì)較難,這也是一開始沒有發(fā)現(xiàn)野外利用的原因之一。
該漏洞還處于未被利用或尚無已知利用的狀態(tài):
直到2018年1月11日左右,360威脅情報(bào)中心才首次發(fā)現(xiàn)野外第一個(gè)利用CVE-2017-8570的RTF樣本,隨后利用CVE-2017-8570漏洞的攻擊樣本逐漸增多,我們選擇最近出現(xiàn)的一個(gè)真實(shí)攻擊樣本進(jìn)行分析。
由于真實(shí)的CVE-2017-8570漏洞攻擊樣本在本月前幾乎未出現(xiàn)過,所以相關(guān)殺軟對(duì)該漏洞的檢出率還不夠理想,以我們接下來分析的攻擊樣本在VirusTotal上的查殺情況來看,57家殺軟中只有11家能夠查殺:
惡意RTF樣本分析:
樣本利用了RTF文檔在VISTA以后的系統(tǒng)中會(huì)自動(dòng)釋放Package對(duì)象到%tmp%目錄的特性,在文檔將惡意Scriptletfile(.sct)腳本文件以Package對(duì)象的方式插入,在受害者打開RTF文檔后,Package對(duì)象中的Scriptletfile(.sct)腳本文件會(huì)自動(dòng)釋放到%tmp%目錄下
樣本插入了兩個(gè)關(guān)鍵的Objdata,其中一個(gè)是Package對(duì)象,包含的其實(shí)是一個(gè)Scriptletfile(.sct)腳本文件:
另一個(gè)則是包含了CVE-2017-8570漏洞的OLE2Link對(duì)象:
打開RTF文檔后,自動(dòng)釋放Package對(duì)象到%tmp%目錄,插入的Package對(duì)象實(shí)際上是一個(gè)惡意Scriptletfile(.sct)腳本文件
另一個(gè)OLE2Link對(duì)象用來觸發(fā)漏洞,漏洞觸發(fā)成功后會(huì)直接加載%tmp%目錄下的MUZTWOWEZTHOBKW.sct腳本執(zhí)行
包含漏洞的OLE2Link對(duì)象中使用了Composite Moniker來將“綁定”一個(gè)File Moniker,而File Moniker顧名思義會(huì)指定一個(gè)文件,漏洞樣本中的File Moniker指定的是本地%tmp%目錄中的sct腳本文件,而該sct腳本文件恰好是Package對(duì)象中釋放出來的:
FileMoniker檢測(cè)到加載的文件后綴是.sct后,通過COM接口加載執(zhí)行Scriptletfile腳本文件
分析發(fā)現(xiàn)樣本使用的Payload是FormBook遠(yuǎn)控軟件,F(xiàn)ormBook是一款以竊密為主的遠(yuǎn)程控制軟件。FireEye曾報(bào)道過有APT組織使用FormBook作為Payload針對(duì)美韓航空航天公司、國(guó)防承包商與部分制造企業(yè)展開網(wǎng)絡(luò)釣魚攻擊。
樣本使用了VB編寫,運(yùn)行后首先以掛起狀態(tài)創(chuàng)建一個(gè)新的自身進(jìn)程,之后解密出真正的惡意代碼,再使用ZwWriteVirtualMemory將惡意代碼寫入到剛創(chuàng)建的傀儡進(jìn)程中,最后啟動(dòng)傀儡進(jìn)程執(zhí)行惡意代碼??苓M(jìn)程首先遍歷進(jìn)程列表查找Explorer.exe,并使用NtMapViewOfSection向Explorer.exe注入ShellCode:
Explorer中注入的ShellCode會(huì)在%systemroot%\system32下隨機(jī)選取一個(gè)exe文件再次以傀儡進(jìn)程的方式注入ShellCode,新的傀儡進(jìn)程會(huì)刪除原始病毒樣本,并重新向Explorer.exe注入ShellCode,該ShellCode 為最終的執(zhí)行的惡意代碼。之后惡意代碼會(huì)連接C&C服務(wù)器,以Get方式發(fā)送連接請(qǐng)求:
通過判斷C&C指令以及特殊的“FBNG”字符串標(biāo)志來執(zhí)行對(duì)應(yīng)的木馬功能:
接收指令以及對(duì)應(yīng)的木馬功能:
功能編號(hào) | 功能說明 |
---|---|
1 | 下載執(zhí)行 |
2 | 木馬版本更新 |
3 | 自清除 |
4 | 利用ShellExecute執(zhí)行命令 |
5 | 清除瀏覽器Cookie |
6 | 重啟 |
7 | 關(guān)機(jī) |
8 | 收集瀏覽器密碼,屏幕截圖 |
9 | 下載ZIP文件 |
木馬執(zhí)行流程
2018年1月9日,有安全研究人員在GitHub上(https://github.com/rxwx/CVE-2017-8570)上傳了CVE-2018-8570的漏洞利用構(gòu)造工具,360威脅情報(bào)中心通過分析確認(rèn)該工具的確為針對(duì)CVE-2018-8570的Exploit構(gòu)造工具,并且捕獲到的攻擊樣本幾乎都是使用該工具生成。
考慮到漏洞相關(guān)的技術(shù)細(xì)節(jié)和驗(yàn)證程序已經(jīng)公開,所以此漏洞接下來極有可能被利用來執(zhí)行大規(guī)模的攻擊。
微軟在2017年7月的安全更新中修復(fù)了這個(gè)針對(duì)Office的遠(yuǎn)程命令執(zhí)行漏洞(CVE-2017-8570),該漏洞實(shí)際上是利用了Office OLE中的Composite Moniker對(duì)象在組合File Moniker對(duì)象的過程中,未做安全性檢測(cè),將File Moniker對(duì)象指定的遠(yuǎn)程/本地的ScriptletFile(.sct)腳本文件在Office中直接執(zhí)行。
微軟修復(fù)CVE-2017-0199實(shí)際上是在Office中禁用了htafile對(duì)象和script對(duì)象,而沒有禁用ScriptletFile對(duì)象,由于通過Composite Moniker的方式可以執(zhí)行ScriptletFile(.sct)腳本,相當(dāng)于繞過了CVE-2017-0199的補(bǔ)丁修復(fù),所以在針對(duì)CVE-2017-8570的補(bǔ)丁修復(fù)中,微軟禁用了ScriptletFile對(duì)象:
2017年4月,修復(fù)CVE-2017-0199,禁用htafile對(duì)象和script對(duì)象
禁用的CLSID | ProgID | CVE |
---|---|---|
{3050F4D8-98B5-11CF-BB82-00AA00BDCE0B} | htafile | CVE-2017-0199 |
{06290BD3-48AA-11D2-8432-006008C3FBFC} | script | CVE-2017-0199 |
2017年7月,修復(fù)CVE-2017-8570,禁用ScriptletFile對(duì)象
禁用的CLSID | ProgID | CVE |
---|---|---|
{06290BD2-48AA-11D2-8432-006008C3FBFC} | ScriptletFile | CVE-2017-8570 |
Composite Moniker對(duì)象的作用是可以將某個(gè)Moniker對(duì)象定義為一個(gè)新的Moniker對(duì)象(NewMoniker),或者將多個(gè)Moniker對(duì)象進(jìn)行組合,比如可以使用Composite Moniker對(duì)象將兩個(gè)File Moniker對(duì)象組合成一個(gè)。假設(shè)Composite Moniker對(duì)象包含了兩個(gè)File Moniker對(duì)象:
File Moniker 1:"c:\work\art"File Moniker 2:"..\backup\myfile.doc"
通過Composite Moniker對(duì)象進(jìn)行組合后,相當(dāng)于得到了一個(gè)帶有完整文件路徑的File Moniker對(duì)象:"c:\work\backup\myfile.doc"。
在觸發(fā)漏洞的樣本中有三個(gè)Moniker對(duì)象,分別是:
Composite Moniker:{00000309-0000-0000-C000-000000000046}File Moniker:{00000303-0000-0000-C000-000000000046}New Moniker:{ECABAFC6-7F19-11D2-978E-0000F8757E2A}
樣本中的Composite Moniker將File Moniker定義為了一個(gè)New Moniker新對(duì)象:
CompositeMoniker在將File Moniker定義為一個(gè)New Moniker新對(duì)象的過程中,會(huì)調(diào)用IMoniker::BindToObject方法將File Moniker進(jìn)行Bind操作,IMoniker::BindToObject函數(shù)原型如下:
HRESULT BindToObject( [in] IBindCtx *pbc, [in] IMoniker *pmkToLeft, [in] REFIID riidResult, [out] void **ppvResult );
pmkToLeft則指向File Moniker,F(xiàn)ile Moniker在樣本中指定的文件為:%tmp%\MUZTWOWEZTHOBKW.sct,而由于FileMoniker需要初始化指定的文件,對(duì)象在檢測(cè)到文件后綴后.sct后,會(huì)自動(dòng)在注冊(cè)表中查找處理.sct文件的接口:
確定.sct后綴
關(guān)聯(lián)scriptletfile的CLISD
定位處理接口
查找到處理.sct文件的處理接口后,調(diào)用對(duì)應(yīng)的接口啟動(dòng).sct腳本執(zhí)行環(huán)境,并執(zhí)行腳本,?;厮蒿@示整個(gè)流程執(zhí)行過程:
0:000> kChildEBP RetAddr 0037abe8 62e048ffjscript!CScriptRuntime::Run <-- 執(zhí)行.sct腳本0037ace4 62e04783 jscript!ScrFncObj::CallWithFrameOnStack+0x15f0037ad3c 62e04cc3jscript!ScrFncObj::Call+0x7b0037ade0 62e13797jscript!CSession::Execute+0x23d0037ae2c 62e10899jscript!COleScript::ExecutePendingScripts+0x16b0037ae48 6c61831fjscript!COleScript::SetScriptState+0x510037ae58 6c618464scrobj!ScriptEngine::Activate+0x1a0037ae70 6c6199d3scrobj!ComScriptlet::Inner::StartEngines+0x6e0037aec0 6c61986escrobj!ComScriptlet::Inner::Init+0x1560037aed0 6c61980bscrobj!ComScriptlet::New+0x3f0037aef0 6c6197d0 scrobj!ComScriptletConstructor::CreateScriptletFromNode+0x260037af10 6c623b7escrobj!ComScriptletConstructor::Create+0x4c0037af3c 6c612946scrobj!ComScriptletFactory::CreateInstanceWithContext+0x1150037af58 53c464bescrobj!ComBuiltInFactory::CreateInstance+0x190037afac 7601b573comsvcs!CNewMoniker::BindToObject+0x14f <--New Moniker0037afe0 76083d8eole32!CCompositeMoniker::BindToObject+0x105 <-- Composite Moniker定義File Moniker0037b04c 31a82c6aole32!CDefLink::BindToSource+0x1bfWARNING: Stack unwind information notavailable. Following frames may be wrong.0037b090 3152f55ewwlib!wdGetApplicationObject+0x6cd2f0037b120 31473477wwlib!DllGetClassObject+0x158a4c0038031c 314667efwwlib!DllGetClassObject+0x9c965003831e03146501f wwlib!DllGetClassObject+0x8fcdd
由于整個(gè)處理過程都沒有進(jìn)行安全檢測(cè)(是否可以執(zhí)行可能包含惡意代碼的腳本),但其中的每一個(gè)步驟單獨(dú)看來都沒有安全問題:Composite Moniker將File Moniker定義為New Moniker、File Moniker按照正常的流程識(shí)別加載.sct文件等等,但是將所有環(huán)節(jié)組合起來卻導(dǎo)致了安全隱患,這是導(dǎo)致該漏洞的問題所在。
CVE-2017-0199漏洞利用的方式有兩種,一種是在Office Word文檔中利用,一種是在Office幻燈片中利用。已經(jīng)公開的Office Word文檔中利用方法主要是通過漏洞執(zhí)行.hta腳本,360威脅情報(bào)中心分析發(fā)現(xiàn),其實(shí)大部分操作系統(tǒng)由于各種原因已經(jīng)在注冊(cè)表中對(duì)ActiveX控件執(zhí)行.hta腳本的COM接口設(shè)置了killbit,也就是即使沒有打上CVE-2017-0199漏洞補(bǔ)丁,在Office Word文檔中也無法執(zhí)行.hta腳本:
這使得CVE-2017-0199漏洞在Office Word文檔中的利用威脅并不大,然而CVE-2017-8570漏洞利用執(zhí)行的.sct腳本對(duì)應(yīng)的COM接口卻并未被禁止,所以CVE-2017-8570在Office Word文檔中的威脅要比CVE-2017-0199大很多。
軟件廠商微軟已經(jīng)發(fā)布了漏洞相應(yīng)的補(bǔ)丁,360威脅情報(bào)中心建議用戶及時(shí)更新Office補(bǔ)丁修復(fù)漏洞:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8570
360威脅情報(bào)中心監(jiān)控到利用RTF文檔自動(dòng)釋放惡意Package對(duì)象到%tmp%目錄的特性進(jìn)行Office漏洞攻擊的樣本越來越多,包括最近的CVE-2017-11882等漏洞利用也使用了該技巧,所以360威脅情報(bào)中心建議用戶如果不需要使用插入Package對(duì)象這類功能,可以在注冊(cè)表中通過設(shè)置killbit的方式禁用,以封堵這類攻擊入口:
執(zhí)行命令行命令 | 說明 |
---|---|
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Common\COM Compatibility\{F20DA720-C02F-11CE-927B-0800095AE340}" /v "Compatibility Flags" /t REG_DWORD /d 0x400 | 32位系統(tǒng)版本或64位系統(tǒng)中的64位版本 |
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\Common\COM Compatibility\{F20DA720-C02F-11CE-927B-0800095AE340}" /v "Compatibility Flags" /t REG_DWORD /d 0x400 | 64位系統(tǒng)中的32位版本 |
從360威脅情報(bào)中心捕獲到的樣本來看,CVE-2017-8570漏洞利用樣本公開使用后,馬上就進(jìn)入被頻繁使用的狀態(tài),并且由于沒有CVE-2017-0199在Office Word中利用的“缺陷”,相信后續(xù)會(huì)有更多攻擊者使用CVE-2017-8570替代CVE-2017-0199進(jìn)行漏洞攻擊。360威脅情報(bào)中心再次提醒用戶,盡量不要打開來源不明的文檔,也可以使用360安全衛(wèi)士之類的防病毒軟件對(duì)文檔進(jìn)行掃描后再打開以盡可能降低風(fēng)險(xiǎn)。
以上就是CVE-2017-8570的野外樣本及漏洞分析是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。