1. 概述
360互聯(lián)網(wǎng)安全中心近期監(jiān)測(cè)到“我愛(ài)卡”網(wǎng)站(51credit.com)出現(xiàn)掛馬情況,進(jìn)一步分析發(fā)現(xiàn),訪問(wèn)該網(wǎng)站會(huì)加載跳轉(zhuǎn)到漏洞攻擊包(Exploit Kit)頁(yè)面的惡意Flash廣告,沒(méi)有專業(yè)安全防護(hù)的訪問(wèn)者電腦會(huì)感染號(hào)稱勒索軟件“集大成者”的Sage2.0,造成文件被加密勒索的慘重?fù)p失。相比以往的漏洞攻擊包,此次整個(gè)攻擊鏈完全使用Flash文件實(shí)現(xiàn),不再需要HTML與Javascript腳本交互功能,呈現(xiàn)出新的攻擊形式和較高的技術(shù)水平。
2. 技術(shù)分析
2.1 廣告掛馬點(diǎn)

圖1 整體掛馬流程
我愛(ài)卡網(wǎng)站采用了較為常見(jiàn)的OpenX開(kāi)源廣告系統(tǒng),該廣告系統(tǒng)具備較完整的商業(yè)生態(tài),被很多大型網(wǎng)站采用。但是因?yàn)閷徍瞬粐?yán)格,已有多次漏洞攻擊包通過(guò)該廣告系統(tǒng)進(jìn)行傳播[1]。

圖2 返回掛馬廣告內(nèi)容
瀏覽我愛(ài)卡網(wǎng)站任意頁(yè)面時(shí),會(huì)插入了一個(gè)廣告Flash文件hxxp://conxxxxxxxxx.info/admedia/player.swf。而在另外一個(gè)被掛馬網(wǎng)站中,這個(gè)Flash則被直接托管在掛馬網(wǎng)站上。顯然,攻擊者將這個(gè)Flash文件偽裝成廣告提供給廣告運(yùn)營(yíng)商,廣告運(yùn)營(yíng)商審核不嚴(yán)直接在投放網(wǎng)站上上線。打開(kāi)該Flash文件,其實(shí)是沒(méi)有任何可以顯示的內(nèi)容,實(shí)際功能則是利用AS3代碼實(shí)現(xiàn)了獲取Flash版本號(hào)并進(jìn)行相關(guān)判斷、加載Flash文件功能,使得只有是IE瀏覽器并且安裝了Flash11~21版本才會(huì)進(jìn)一步加載第二個(gè)Flash文件。通過(guò)該文件攔住了所有無(wú)法觸發(fā)漏洞的用戶訪問(wèn),減少了實(shí)際攻擊頁(yè)面的暴露,同時(shí)這個(gè)文件非常簡(jiǎn)潔并且沒(méi)有明顯特征,易于躲過(guò)查殺。

圖3 Flash加載代碼
2.2 第二個(gè)Flash加載器
接下來(lái)加載的第二個(gè)Flash文件仍然是一個(gè)加載器,功能與第一個(gè)Flash文件相同,實(shí)現(xiàn)了版本判斷、加載下一個(gè)Flash的功能。但是與第一個(gè)Flash不同,這個(gè)文件是動(dòng)態(tài)生成的,根據(jù)該文件的網(wǎng)絡(luò)請(qǐng)求響應(yīng)頭,可以猜測(cè)該文件是利用php動(dòng)態(tài)生成,對(duì)比變化的樣本,發(fā)現(xiàn)每隔一段時(shí)間要加載下一個(gè)Flash的地址都會(huì)發(fā)生變化。這個(gè)Flash網(wǎng)址使用了Exploit Kit所常見(jiàn)的域名生成算法,并不停的變換三級(jí)域名地址,這樣確保對(duì)實(shí)際攻擊文件的網(wǎng)址難以再次訪問(wèn)。另外,由于該文件是動(dòng)態(tài)生成的,所以Content-Type被有意或者無(wú)意設(shè)置成默認(rèn)的text/html,這可以讓部分依賴Content-Type進(jìn)行文件類型判斷的網(wǎng)絡(luò)檢測(cè)設(shè)備忽略,從而降低被發(fā)現(xiàn)的概率。

圖4 動(dòng)態(tài)返回Flash內(nèi)容

圖5 生成的不同域名
2.3 Flash漏洞攻擊文件
直到這時(shí),訪問(wèn)的第三個(gè)網(wǎng)址才真正引入了攻擊Flash文件。但是攻擊者的防范措施仍然不止于此,在訪問(wèn)最終的Flash漏洞文件網(wǎng)址時(shí),有時(shí)會(huì)出現(xiàn)無(wú)緣無(wú)故無(wú)法訪問(wèn)的情況,猜測(cè)攻擊者使用了IP屏蔽或者隨機(jī)阻攔請(qǐng)求的策略,增加了分析重現(xiàn)的難度。并且根據(jù)用戶Flash版本信息,服務(wù)器會(huì)返回不同的漏洞利用腳本,這種手段與我們之前分析過(guò)的一起廣告掛馬事件中的方法一致,并且也利用了相同的漏洞攻擊代碼[2],唯一不同的是這次并沒(méi)有進(jìn)行代碼的混淆,能夠較為容易的分析攻擊代碼。
具體分析該文件代碼,發(fā)現(xiàn)漏洞攻擊代碼被使用RC4加密后切分保存在了Flash的BinaryData字段中,根據(jù)不同的發(fā)起請(qǐng)求的Flash版本號(hào),解密后獲得的漏洞攻擊腳本分別是CVE-2015-8651 [3]、CVE-2016-1019 [4]、CVE-2016-4117 [5]的攻擊代碼,這幾個(gè)漏洞也是目前各個(gè)攻擊包常用的方式,具備較高的攻擊成功率。

圖6攻擊代碼類型
2.4 釋放載荷
在利用漏洞之后,會(huì)直接執(zhí)行一段Shellcode代碼,不過(guò)與常見(jiàn)的基于VBS或者Powershell下載方式不同,該Shellcode會(huì)再次向當(dāng)前網(wǎng)址發(fā)送請(qǐng)求,下載一個(gè)二進(jìn)制數(shù)據(jù)到Internet臨時(shí)目錄,解密轉(zhuǎn)換后得到要運(yùn)行的payload,因此進(jìn)程鏈上會(huì)看到一個(gè)index[1].htm的進(jìn)程被啟動(dòng)。注意到此時(shí)請(qǐng)求的網(wǎng)址與Flash攻擊代碼的網(wǎng)址一致,但是返回內(nèi)容卻不一樣,可猜測(cè)在服務(wù)端會(huì)自動(dòng)根據(jù)請(qǐng)求來(lái)源返回不同的內(nèi)容,僅當(dāng)包含F(xiàn)lash請(qǐng)求信息的時(shí)候才返回Flash攻擊代碼,而默認(rèn)則直接返回加密后的二進(jìn)制數(shù)據(jù)。

圖7 攻擊進(jìn)程鏈
最終運(yùn)行的Payload是Sage2.0勒索軟件,該勒索軟件選擇的密鑰交換算法與加密算法都比較巧妙,并且基于IP地址生成算法來(lái)生成數(shù)據(jù)回傳ip,是目前勒索軟件的集大成者[6]。一旦感染,用戶的所有文件都會(huì)被加密,桌面被替換為提醒壁紙,同時(shí)也會(huì)執(zhí)行一個(gè)vbs腳本間隔一段時(shí)間發(fā)出文件被加密的提醒聲音。

圖8 用戶感染后的桌面

圖9 播放語(yǔ)音的腳本
3. 數(shù)據(jù)重放
在研究掛馬事件中,我們經(jīng)常會(huì)將抓到的數(shù)據(jù)包使用Fiddler工具進(jìn)行數(shù)據(jù)重放,便于反復(fù)研究,但是該Exploit Kit卻在同一網(wǎng)址分別返回Flash和二進(jìn)制內(nèi)容,使得Fiddler無(wú)法區(qū)分這兩種請(qǐng)求并返回對(duì)應(yīng)的數(shù)據(jù)包。因此,在無(wú)法依賴Fiddler的情況下,我們簡(jiǎn)單編寫了一個(gè)基于Tornado的Web服務(wù)器,提取出抓包得到的返回內(nèi)容,根據(jù)每次請(qǐng)求的不同網(wǎng)址和請(qǐng)求頭來(lái)返回對(duì)應(yīng)的數(shù)據(jù)。使用時(shí),在某個(gè)端口開(kāi)啟服務(wù),并將IE的代理設(shè)置到該端口,訪問(wèn)對(duì)應(yīng)的網(wǎng)址就可以進(jìn)行數(shù)據(jù)重放。

圖10 重放功能代碼
4. 總結(jié)
本次掛馬使用廣告系統(tǒng)發(fā)布掛馬Flash文件,使用域名生成算法隱藏攻擊代碼域名,使用勒索軟件來(lái)獲取經(jīng)濟(jì)收益,是目前較為常見(jiàn)的Exploit Kit框架和最流行的Flash漏洞攻擊技術(shù)。整體而言攻擊者技術(shù)水平較高,雖然沒(méi)有利用常見(jiàn)的IE漏洞,但是所使用的Flash漏洞均是目前最新最流行的,并且一個(gè)比較特別的地方是Shellcode沒(méi)有采用常見(jiàn)的調(diào)用VBScript或者Poweshell下載執(zhí)行文件,而直接下載文件并解密執(zhí)行文件,這樣直接下載也無(wú)法得到PE文件,顯示出比較高的技術(shù)水平。
此次掛馬攻擊的弱點(diǎn)是Flash代碼沒(méi)有使用代碼混淆,保護(hù)程度較低,容易被反編譯,并且相關(guān)攻擊網(wǎng)址,沒(méi)有使用更為常見(jiàn)的參數(shù)驗(yàn)證形式,而是直接簡(jiǎn)單的采用了簡(jiǎn)單的動(dòng)態(tài)接口,尚未達(dá)到流行的幾個(gè)經(jīng)典Exploit Kit的地步。這次掛馬事件最重要的創(chuàng)新點(diǎn)是整個(gè)攻擊流程中完全采用Flash文件作為載體,沒(méi)有任何交互頁(yè)面,不易察覺(jué),可以躲過(guò)目前常見(jiàn)的針對(duì)HTML與Javascript腳本的檢測(cè)與保護(hù)。
我愛(ài)卡網(wǎng)站每天用戶訪問(wèn)量較大,一旦用戶感染勒索軟件被加密難以挽回?fù)p失。針對(duì)目前流行的漏洞攻擊包和勒索軟件,建議用戶及時(shí)打上系統(tǒng)補(bǔ)丁,并且及時(shí)更新Flash到最新版本,也可以安裝一些廣告屏蔽軟件來(lái)避免訪問(wèn)類似這樣傳播的惡意攻擊頁(yè)面。目前360安全衛(wèi)士采用了全面多層次的防護(hù)體系,使用動(dòng)態(tài)行為檢測(cè)、結(jié)合QEX非PE引擎靜態(tài)掃描功能,能夠做到對(duì)此類攻擊行為的有效攔截,防止用戶感染病毒,并且用戶在開(kāi)通反勒索軟件服務(wù)的情況下仍然中毒造成損失,360會(huì)負(fù)責(zé)賠付最高3比特幣的贖金,并協(xié)助還原加密軟件。
本文由360QEX團(tuán)隊(duì)撰寫,360QEX團(tuán)隊(duì)專門負(fù)責(zé)非PE類病毒的分析和查殺,文中所述惡意非PE樣本QEX引擎均可以查殺。
IOC信息
URL/IP:

Flash:
418b81d6371bf5e41deaf244c2813479
9558a62c2198709cd8f4cbace3b3d33f
d5b20d0755e3bdfdbdfd13ddfd477f7f
c1d426fbdd0ccb06b8882089dcbfd755
33a0e632b37dea78a808d5c197a01404
d415c88480d64f7beefb8e2ceab0923a
b0849abe0d436dba8862f0dcbda93aae
c8fced7d0489e930f48cef70f6695e01
01e1cdd0f97215c5421d0358179f8af3
PE
005b3f47b1a6b06053d2cce7473b6256
37f6a4715c24ab1c8e5efd95440d3440
|