解密Nuclear漏洞利用工具包中的Flash漏洞加密手段
近年來興起的Exploit Kit(簡稱EK)集合了各種漏洞利用工具,可對多種文件格式進行自動化分析、漏洞利用測試。比較有名的EK有Blackhole EK,Phoenix EK,Nuclear EK等。
最近我們收到Nuclear EK的新樣本,隨后在VT上對該樣本進行了檢測,結果如圖所示:
發(fā)現(xiàn)只有5家安全廠商檢出,所以我們做了進一步分析。
Flash文件分析
文件基本信息
注:
SWF文件的文件頭由一個三字節(jié)的標識開始,該標識是以下其中一個:
•0x46 ,0x57, 0x53(“FWS”):FWS標識表明這是一個未壓縮的SWF文件
•0x43, 0x57, 0x53(“CWS”):CWS標識表明整個SWF文件在第一個8字節(jié)之后,也就是在“文件長度”域之后,使用ZLIB開放標準進行了壓縮。CWS文件壓縮只允許出現(xiàn)在SWF 6以及之后的版本。
•0x5a, 0x57, 0x53(“ZWS”):ZWS標識表明整個SWF文件在第一個8字節(jié)之后,也就是在“文件長度”域之后,使用LZMA開放標準進行了壓縮。ZWS文件壓縮只允許出現(xiàn)在SWF 13以及之后的版本。
通過對文件進行格式解析,發(fā)現(xiàn)該文件使用數(shù)據(jù)混淆、加密,采用腳本加載執(zhí)行的方式。腳本信息:
文件解密過程
Brhd5443d腳本負責整體執(zhí)行與調(diào)度,通過AX3腳本中的retustr()進行解密,AX3文件關鍵部分內(nèi)容:
AX3腳本文件主要用來函數(shù)混淆、數(shù)據(jù)混淆、KEY混淆,調(diào)用者通過向該函數(shù)傳遞不同數(shù)值獲取到不同內(nèi)容。采用的混淆方法是在具體內(nèi)容中隨機地加入隨機數(shù)字(0-9)、符號(.),使人不容易辨認具體函數(shù)與數(shù)據(jù)內(nèi)容。
在本腳本中分別解密了數(shù)值為1、2、3、6的函數(shù),解密后函數(shù)loadBytes、addChild 、removeEventListener、fgghtdrsegfgf,其中6為后續(xù)解密數(shù)據(jù)中的KEY,內(nèi)容為fgghtdrsegfgf;而后調(diào)用AX2腳本對數(shù)據(jù)進行解密。AX2腳本關鍵解密內(nèi)容如圖:
AX2的解密過程:
·在該函數(shù)中調(diào)用AX1中的fserggsgg函數(shù)進行Base64解碼。AX1中調(diào)用了AX3腳本文件解密出了混淆的數(shù)據(jù)內(nèi)容,序號為7
·AX2根據(jù)傳入的KEY對加密內(nèi)容進行解密,通過對KEY的每一位與加密內(nèi)容的每一位進行異或,當KEY為最后一位時從KEY的第一位重新算起,直到解密完成。
解密后的文件是一個SWF格式文件。具體分析如下:
文件基本信息
通過對該文件格式進行解析,發(fā)現(xiàn)采用的是腳本加載方式,腳本內(nèi)容如表所示:
文件解密過程
aaaa腳本文件存放了溢出格式代碼,該代碼同樣適用混淆,內(nèi)容如下:
經(jīng)過去混淆后得2,425 字節(jié)如下代碼:
從該圖可以基本判定該樣本是利用漏洞 CVE-2014-0515進行傳播。
結論
Nuclear EK采用異常精密復雜的攻擊方式,對Flash漏洞進行利用,并且具有高度混淆代碼的特點。
通過該樣本,我們還發(fā)現(xiàn)另外一件有趣的事情,該漏洞在溢出成功后,會下載Botnet惡意文件,進一步收集信息發(fā)現(xiàn)該botnet是很有名的Kelihos(也稱HLUX)。Kelihos的傳播過程也挺有趣,具體傳播流程:
受害者在訪問掛馬服務器后會被多次重定向跳轉(zhuǎn)到一臺存在Nuclear EK的服務站點,之后在訪問惡意頁面時,頁面中的Flash文件均會被存儲到受害者的機器上,其中就包括特定的swf文件。當該文件成功溢出后,受害者機器會下載Kelihos惡意文件。
關于Kelihos惡意文件,我們提取了YARA檢測規(guī)則,未進行深入分析,若諸君有意,可自行分析。
Kelihos YARA規(guī)則如下:
import"pe"
rule Trojan_Win32_Hlux
{
meta:
copyright = "WarHead.Team"
description ="Trojan[Backdoor]/Win32.Hlux"
version = "1.0"
last_modified = "2015-03-19"
strings:
$a={74 29 81 7D F0 55 55 55 15 75 20 33 C040 6B C0 00 8B 0D E8 A1 41 00 8D 84 01 50 34
41 00 A3 E8 A1 41 00 8B 0D E8 A141 00 FF E1 6A 64}
condition:
$a at pe.entry_point - 0x1083
}
通過對Flash可疑樣本的分析,我們似乎嗅到了暴風驟雨的味道。但它到底會產(chǎn)生什么樣的動態(tài),還需要大家斟酌關注一下。