您好,登錄后才能下訂單哦!
CVE-2018-5002Flash 0day漏洞APT攻擊的分析是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
360企業(yè)安全威脅情報(bào)中心近期捕獲到了一例使用Flash 0day漏洞配合微軟Office文檔發(fā)起的APT攻擊案例,攻擊使用的樣本首次使用了無Flash文件內(nèi)置技術(shù)(Office文檔內(nèi)不包含F(xiàn)lash實(shí)體文件)。我們在確認(rèn)漏洞以后第一時間通知了廠商Adobe,成為國內(nèi)第一個向廠商報(bào)告此攻擊及相關(guān)漏洞的組織,Adobe在昨日發(fā)布的安全通告中致謝了360威脅情報(bào)中心。
Adobe反饋確認(rèn)漏洞存在并公開致謝
整個漏洞攻擊過程高度工程化:攻擊者將Loader(第一階段用于下載Exploit的Flash文件)、Exploit(第二階段漏洞利用代碼)、Payload(第三階段ShellCode)分別部署在服務(wù)器上,只有每一階段的攻擊/檢測成功才會繼續(xù)下載執(zhí)行下一階段的代碼,這樣導(dǎo)致還原整個攻擊流程和漏洞利用代碼變得非常困難。360威脅情報(bào)中心通過樣本的特殊構(gòu)造分析、大數(shù)據(jù)關(guān)聯(lián)、域名分析,發(fā)現(xiàn)本次使用的相關(guān)漏洞攻擊武器疑似與Hacking Team有關(guān)。
由于此漏洞及相應(yīng)的攻擊代碼極有可能被黑產(chǎn)和其他APT團(tuán)伙改造以后利用來執(zhí)行大規(guī)模的攻擊,構(gòu)成現(xiàn)實(shí)的威脅,因此,360威脅情報(bào)中心提醒用戶采取應(yīng)對措施。
漏洞名稱 | Adobe Flash Player遠(yuǎn)程代碼執(zhí)行漏洞 |
---|---|
威脅類型 | 遠(yuǎn)程代碼執(zhí)行 |
威脅等級 | 高 |
漏洞ID | CVE-2018-5002 |
利用場景 | 攻擊者通過網(wǎng)頁下載、電子郵件、即時通訊等渠道向受害者發(fā)送惡意構(gòu)造的Office文件誘使其打開處理,可能觸發(fā)漏洞在用戶系統(tǒng)上執(zhí)行任意指令獲取控制。 |
受影響系統(tǒng)及應(yīng)用版本 | Adobe Flash Player(29.0.0.171及更早的版本) |
不受影響影響系統(tǒng)及應(yīng)用版本 | Adobe Flash Player 30.0.0.113(修復(fù)后的最新版本) |
修復(fù)及升級地址 | https://get.adobe.com/flashplayer/ |
從捕獲到的攻擊樣本語言屬性、CC服務(wù)器關(guān)聯(lián)信息我們推斷這是一起針對卡塔爾地區(qū)的APT攻擊。樣本于5月31日被上傳到VirusTotal以后的幾天內(nèi)為0惡意檢出的狀態(tài),直到6月7日也只有360公司的病毒查殺引擎將其識別為惡意代碼,360威脅情報(bào)中心通過細(xì)致的分析發(fā)現(xiàn)了其中包含的0day漏洞的利用。
通過對樣本執(zhí)行過程的跟蹤記錄,我們還原的樣本整體執(zhí)行流程如下:
包含F(xiàn)lash 0day的惡意文檔整體執(zhí)行流程
攻擊者首先向相關(guān)人員發(fā)送含有Flash ActiveX對象的Excel誘餌文檔,誘騙受害者打開:
而誘餌文檔中包含了一個FlashActiveX控件:
但該FlashActiveX對象中并不包含實(shí)體Flash文件,需要加載的Flash文件通過ActiveX對象中的URL連接地址遠(yuǎn)程加載,這樣能非常好的躲避殺毒軟件查殺:
通過Excel文檔向遠(yuǎn)程加載的Flash傳遞參數(shù),其中包含了第二階段Flash的下載地址以及樣本和CC服務(wù)器的通信地址:
通過FlashActiveX對象中的URL連接地址下載回來一階段的Flash文件,該Flash文件最主要的功能是繼續(xù)和遠(yuǎn)程服務(wù)器通信并下載回來使用AES加密后的第二階段Flash文件:
獲取第一階段Flash文件
由于第一階段的Flash會落地,所以為了避免實(shí)施漏洞攻擊的Flash代碼被查殺或者被捕獲,攻擊者通過第一階段的Flash Loader繼續(xù)從服務(wù)器下載加密的攻擊模塊并內(nèi)存加載。
從服務(wù)器返回的數(shù)據(jù)為[KEY+AES加密數(shù)據(jù)]的形式,第一階段的Flash文件將返回的數(shù)據(jù)解密出第二階段的Flash文件:
獲取AES加密后的第二階段Flash
解密出使用AES CBC模式加密的第二階段的Flash文件:
接著內(nèi)存加載第二階段的Flash文件,第二階段的Flash文件中則包含F(xiàn)lash0day漏洞利用代碼:
Flash 0day漏洞利用代碼執(zhí)行成功后再向服務(wù)器通過POST請求返回第三階段的ShellCode并執(zhí)行最后的攻擊:
如下圖所示漏洞的關(guān)鍵觸發(fā)利用代碼發(fā)生在replace函數(shù)中,漏洞觸發(fā)成功后可以通過交換vector中的兩個對象以轉(zhuǎn)換為類型混淆來實(shí)現(xiàn)代碼執(zhí)行,函數(shù)執(zhí)行前聲明了兩個SafeStr_5,SafeStr_7類型的對象實(shí)例,并將這兩個對象實(shí)例作為參數(shù)交替?zhèn)魅牒瘮?shù)SafeStr_61中,一共256個參數(shù),SafeStr_5,SafeStr_7類型各占128個:
SafeStr_5類如下所示:
SafeStr_7類如下所示:
Jit代碼中生成對應(yīng)的SafeStr_5類實(shí)例:
最終進(jìn)入SafeStr_61前生成的SafeStr_5,SafeStr_7類實(shí)例如下所示,其中前兩個是全局聲明的實(shí)例,后兩個是replace中聲明的實(shí)例,之后作為SafeStr_61參數(shù)傳入:
進(jìn)入SafeStr_61函數(shù)前:
SafeStr_61函數(shù)如下所示,首先創(chuàng)建了一個SafeStr_6的類實(shí)例(用于觸發(fā)漏洞),及SafeStr_5,_SafeStr_7類型的vector,之后將參數(shù)交叉?zhèn)魅雰蓚€vector中:
接著開始vector賦值:
賦值之后如下所示:
現(xiàn)在來看看用于觸發(fā)漏洞的_SafeStr_6類實(shí)例,AS代碼如下:
可以看到,由于Flash解析器處理對應(yīng)的Try-Catch代碼塊時沒有合理處理好異常處理代碼的作用范圍,解析器誤認(rèn)為不會有代碼可以執(zhí)行到Catch語句內(nèi),因此沒有對Catch中代碼對應(yīng)的字節(jié)碼進(jìn)行檢測,而該函數(shù)中的li8(123456)操作由于會觸發(fā)異常并被Catch捕獲,這樣由于對Catch代碼塊中的代碼缺乏檢查,那么代碼中的字節(jié)碼通過setlocal,getlocal操作就可以實(shí)現(xiàn)對棧上數(shù)據(jù)的非法修改,最終將棧上兩個對象指針的位置進(jìn)行的替換,從而轉(zhuǎn)化為類型混淆來實(shí)現(xiàn)任意代碼執(zhí)行!
再來看看觸發(fā)漏洞的代碼上下文,其中_SafeStr_6即為上圖所示觸發(fā)漏洞的類實(shí)例代碼:
如下所示可以看到對應(yīng)SafeStr_5類型的vector中的一個對象的指針被修改為了SaftStr的對象指針,其尋址標(biāo)記為0x1c1=449,即為上圖中g(shù)etlocal操作的變量:
之后將SafeStr_7類型的vector中的一個對象的指針修改為了SaftSt_5r的對象指針:
接著遍歷SafeStr_5中的每個對象的m_p1成員變量,獲取對應(yīng)修改成SafeStr_7指針的成員:
由于SafeStr_5對象被混淆成SafeStr_7,因此對該混淆的SafeStr_5對象的操作,實(shí)際上作用的是SafeStr_7的內(nèi)存空間,此時通過設(shè)置SafeStr_5對象的m_p1變量,即可實(shí)現(xiàn)對SafeStr_7對象對應(yīng)內(nèi)存偏移的操作,而該偏移在SafeStr_7對象中指向了對應(yīng)的SafeStr_5對象,此時相當(dāng)于SafeStr_7.SafeStr_5.m_p1的操作受_SafeStr_5對象的m_p1對象的控制,從而實(shí)現(xiàn)指定地址讀寫,之后轉(zhuǎn)化為任意代碼執(zhí)行:
結(jié)合該漏洞投遞文件(Excel文檔)插入Flash ActiveX控件的技巧(復(fù)合二進(jìn)制bin+遠(yuǎn)程Flash加載),360威脅情報(bào)中心通過大數(shù)據(jù)關(guān)聯(lián)到另外一個使用相同技巧的投遞Flash漏洞利用的文檔控件文件(MD5:5b92b7f4599f81145080aa5c3152dfd9):
其內(nèi)置的用于加載遠(yuǎn)程Flash漏洞攻擊的URL如下:
hxxps://mynewsfeeds.info/docs/P6KMO6/5v1z1p3r1p1o.swf
該域名在2015年到2016年初用于下載多個SWF Payload文件:
而該域名mynewsfeeds.info歷史曾由marchaopn@gmail.com注冊,在HackingTeam 2015年7月的泄露事件后,該域名做了隱私保護(hù):
結(jié)合360威脅情報(bào)平臺,該域名也關(guān)聯(lián)到CVE-2015-5119的漏洞利用樣本,該漏洞同樣也是Hacking Team泄露事件曝光的Flash 0day漏洞!
其中marchaopn@gmail.com郵箱注冊的簽名證書正是Hacking Team所屬:
以及HackingTeam與客戶的交流郵件中提到該域名和郵箱的信息:
360威脅情報(bào)中心通過本次泄露的0day漏洞利用樣本的特殊構(gòu)造方式找到一個高度相似的樣本,而該樣本則指向Hacking Team。
自Hacking Team泄露事件以來,其新的相關(guān)活動及其開發(fā)的間諜木馬也被國外安全廠商和資訊網(wǎng)站多次披露,證明其并沒有完全銷聲匿跡。
360威脅情報(bào)中心結(jié)合多方面的關(guān)聯(lián),列舉本次0day攻擊事件和歷史Hacking Team之間的一些對比:
l Hacking Team長期向多個情報(bào)機(jī)構(gòu)或政府部門銷售其網(wǎng)絡(luò)間諜武器
l 在過去HackingTeam泄露資料中表明其對Flash 0day漏洞和利用技術(shù)有深厚的基礎(chǔ);而本次0day漏洞中的利用手法實(shí)現(xiàn)也是非常通用
l 本次0day漏洞的EXP制作方式和漏洞利用上也與HackingTeam過去的一些利用相似
360威脅情報(bào)中心提醒各單位/企業(yè)用戶,謹(jǐn)慎打開來源不明的文檔,并盡快通過修復(fù)及升級地址下載安裝最新版Adobe Flash Player,也可以安裝360安全衛(wèi)士/天擎等防病毒軟件工具以盡可能降低風(fēng)險(xiǎn)。
看完上述內(nèi)容,你們掌握CVE-2018-5002Flash 0day漏洞APT攻擊的分析是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。