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

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

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

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

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

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

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

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

圖8 用戶感染后的桌面

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

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

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