“暗云”系列木馬自2015年初被騰訊反病毒實驗室首次捕獲并查殺,至今已有2年多。在這兩年多時間里,該木馬不斷更新迭代,持續對抗升級。
從今年4月開始,該木馬卷土重來,再次爆發,本次爆發的暗云木馬相比之前的版本有比較明顯的晉級特征,因此我們將其命名為暗云Ⅲ。暗云Ⅲ與之前版本相比有以下特點和區別:
第一、更加隱蔽,暗云Ⅲ依舊是無文件無注冊表,與暗云Ⅱ相比,取消了多個內核鉤子,取消了對象劫持,變得更加隱蔽,即使專業人員,也難以發現其蹤跡。
第二、兼容性,由于該木馬主要通過掛鉤磁盤驅動器的StartIO來實現隱藏和保護病毒MBR,此類鉤子位于內核很底層,不同類型、品牌的硬盤所需要的 hook點不一樣,此版本木馬增加了更多判斷代碼,能夠感染市面上的絕大多數系統和硬盤。
第三、針對性對抗安全軟件,對安全廠商的“急救箱”類工具做專門對抗,通過設備名占坑的方式試圖阻止某些工具的加載運行。

圖1. 三代暗云木馬比較

圖2. 暗云Ⅲ 木馬啟動流程
一、由MBR到Windows內核
暗云系列木馬通過感染磁盤MBR來實現開機啟動,三代暗云其啟動過程,基本沒變,都是由MBR開始通過int 15中斷一步步的hook來跟隨系統的引導流程進入系統內核執行,該套代碼可兼容xp、vista、win7、win8等主流操作系統,包括64位和32位。其啟動過程如圖2所示。(具體細節參見:“暗云”BootKit木馬詳細技術分析: http://www.freebuf.com/vuls/57868.html)

圖3. 暗云系列 BootKit啟動過程示意圖
二、內核ShellCode 1 & ShellCode 2行為分析
ShellCode 1
ShellCode 1是木馬進入Windows內核后,通過創建一個線程開始執行的第一段代碼。其功能是通過磁盤鉤子、定時器守護等一系列操作保護惡意的磁盤MBR不被檢測和修改。此外,木馬會在內核中直接聯網下載ShellCode并執行,我們將下載的shellcode稱為ShellCode 2。shellcode2主要功能是向應用層插入apc。
詳細分析:
1) 尋找磁盤驅動器(atapior iaStor or LSI_SAS)對應的驅動對象。

圖4.從文件系統開始查找磁盤驅動對象

圖5.常見的磁盤對象驅動與小端口驅動對應關系
2) 根據磁盤類型和操作系統替換DriverStartIo、 AtapiHwStartIo、RaUnitStartIo等函數,實現阻止其他程序讀取磁盤1-3F 扇區(MBR)。當檢測到讀MBR時, 返回一個構造好的正常的MBR,檢測到寫MBR時,則直接pass 該操作。

圖6.MBR保護掛鉤邏輯示意圖

圖7.根據磁盤驅動對象和小端口驅動設置不同的鉤子
3) 新增一個計時器,在DPCRoutine 中反復檢測磁盤鉤子,如果鉤子被刪除則重新掛鉤,掛鉤超過5次則強制重啟機器。檢測 自身代碼是否被patch,一旦發現自己被patch則藍屏。

圖8.自身代碼完整性校驗相關代碼
4) 對指定設備名進行占坑,對抗急救箱工具

圖9.占坑對抗急救箱代碼
5) 直接在內核以TDI 的方式訪問網絡下載shellcode解密后直接在內核中運行。木馬在TDI層用udp連接訪問**.maimai666.com的8064端口獲取shellcode。如果失敗改用tcp連接**.maimai666.com的8864獲取。且木馬自帶了dns服務器地址用來解析域名。

圖10. 連接網絡下載shellcode2
ShellCode2
shellcode2的功能是解壓尾部數據,得到一個playload.dll ,嘗試以APC的方式向應用層指定進程插入該dll文件。 Shellcode2會遍歷進程,當發現以下某一進程時,進行插入,成功后不再嘗試其它進程。
圖11. 進程列表一

圖12. 進程列表二

圖13. 向指定進程插APC相關代碼
三、playload.dll行為分析
playload.dll
該dll被以APC的形式插入到應用層進程中,根據配置信息執行相應的功能,能夠實現的功能及具體配置情況如下表所示。下載的文件所在的URL為:hxxp://www.**sewle.com:8877/ds/cl.db。
能實現的功能
開關
參數信息
刪除指定的服務
關
刪除指定服務和注冊表
關
下載指定Dll并Load
關
下載Exe并執行
關
下載惡意代碼,注入到傀儡進程執行
開
http://www.**sewle.com:8877/ds/cl.db,解密后創建傀儡進程svchost.exe執行
1) 根據配置(配置信息直接內置在文件中,比暗云Ⅱ減少了一次聯網下載配置的行為)來決定執行哪些操作,可以實現的功能包括刪除指定服務,指定注冊表,下載指定文件加載、運行、注入等

圖14.刪除服務相關代碼

圖15.下載文件并加載、執行、注入的相關代碼
cl.db
該模塊的結構是ShellCode+DLL,ShellCode的功能是在內存中展開執行解密后的DLL,DLL是個簡單下載器,首先會從 hxxp://www.**sewle.com:8877/ds/kn.html下載配置文件,然后根據配置信息下載exe執行或者下載dll,最后創建傀儡進程svchost執行。對比暗云Ⅱ和暗云Ⅲ的配置文件中的Version字段,我們發現當前的版本已經達到624,說明該木馬不僅持續活躍,而且更新頻繁。

圖16. 配置文件格式,IsExe字段標記是否為exe

圖17.創建傀儡進程svchost.exe,并將內置有腳本解釋器的惡意dll注入執行
四、木馬功能模塊
lcdn.db
該木馬是暗云木馬的主要功能模塊,直接在內存中加載執行,該模塊集成了lua腳本解釋器,其主要功能不斷從http://www.**sewle.com:8877/ld/ndn.db處下載lua腳本,并解釋執行,該腳本非常頻繁地變換中,通過跟蹤幾個腳本,發現當前下發的腳本主要功能是刷流量和攻擊網站。控制者可隨時更新服務器上的腳本,做各種惡意行為,對用戶電腦造成嚴重的安全隱患。

圖18.

圖19.腳本內容
安全建議和木馬查殺:
暗云Ⅲ木馬主要通過外掛、游戲輔助、私服登錄器等傳播,此類軟件通常誘導用戶關閉安全軟件后使用,使得木馬得以乘機植入。管家建議大家持續保持安全軟件開啟狀態,不要運行來源不明和被安全軟件報毒的程序。目前騰訊電腦管家已經能夠準確檢測和查殺暗云系列木馬。同時管家已經提供該木馬單獨的專殺工具供用戶下載使用。
|