一、概述

  “暗雲”系列Bootkit木馬是迄今爲止最複雜的木馬之一,從2015年至今,已感染數以百萬的計算機。暗雲木馬使用了很多複雜的、新穎的技術來實現長期潛伏。其中最大的特點是使用BootKit技術,直接感染磁盤的主引導區(MBR),感染暗雲系列木馬後,可以使用騰訊電腦管家的急救箱進行處理。

  近日,騰訊御見威脅情報中心發現暗雲系列Bootkit木馬又出現多個新變種,其中新發現的變種1會在內核層聯網tj.tagcbm1t.com下載shellcode解密執行,其技術手段和暗雲Ⅲ較爲接近,故將其命名歸類爲暗雲Ⅲ v3.0,友商前段時間披露的”隱匿者”病毒團伙技術上也屬於暗雲Ⅲ系列變種。

  新發現的變種2會嚮應用層插入apc並連接C2服務器upax.ximics.com,下載payload解密執行,其技術手段和暗雲I代較爲接近,故將其命名歸類爲暗雲I v2.0。

  暗雲系列木馬變種木馬的最終載荷不盡相同,不同的病毒運營團伙會有不同的贏利模式,其行爲取決於木馬連接C2服務器下載的ShellCode。騰訊御見威脅情報中心監測到暗雲系列木馬幾乎涉獵所有病毒木馬黑色產業贏利模型:從鎖定主頁、劫持流量、彈出廣告、推廣軟件、安裝挖礦木馬、發起DDoS攻擊,幾乎無惡不作。

  暗雲系列Bootkit木馬版本對比如下:

  

  暗雲系列發現時間及主要特性

  

  騰訊安圖高級威脅溯源系統可查詢暗雲系列木馬的家族圖譜

  二、暗雲系列木馬新變種詳細分析

  暗雲系列木馬新變種 ,1扇區爲劫持後的MBR引導代碼,2扇區爲原始MBR的備份,3-63扇區爲加密的payload,其感染後的扇區佈局如下:

  

  感染暗雲之後磁盤引導扇區內容被改寫

  2.1MBR引導代碼劫持分析

  MBR引導代碼被劫持階段的執行流程如下

  a)BIOS完成自檢和硬件檢測後,將安裝有操作系統的磁盤的第一個扇區的內容讀到內存的0000:7C00處執行,由於MBR引導代碼已經被劫持修改,病毒代碼獲得執行

  b)7C00處病毒代碼主要功能是將3-63扇區的加密payload讀取到內存解密並執行,payload會被拷貝到內存8F00:0000處

  c)8F00:0000處代碼獲得執行後,會劫持系統中斷表hook int15中斷,劫持後的int15中斷例程地址被修改爲8F00:247

  d)讀取第二扇區備份的原始MBR到內存地址0000:7c00處繼續執行原始的MBR

  

  被劫持後的MBR引導代碼

  

  被劫持後的int15系統中斷例程地址

  

  跳轉到原始MBR繼續執行

  2.2 INT 15中斷例程劫持分析

  INT 15中斷被調用後木馬獲得了執行機會,在int15 中斷例程劫持中其主要功能是根據特徵碼搜索引導啓動文件,根據不同的系統版本hook不同的地方,具體執行流程如下:

  a) 搜索特徵碼E9D501EB0490000000528BC30E076633來判斷是否是引導啓動文件(注:引導啓動文件在系統盤根目錄下,vista之前是ntldr,Vista之後是bootmgr,引導文件前16字節爲該特徵碼),如果匹配上則繼續執行下一步搜索,否則結束

  b) 搜索到引導啓動文件特徵碼後,繼續搜索特徵碼665266556633ED666A20665366CB66(注:該特徵爲bootmgr文件偏移0xA8c處的代碼),如果搜索到後會在此偏移處開始patch bootmgr,被patch後會跳轉到8F51B處執行,如果搜索不到則繼續執行下一步搜索。

  c) 搜索特徵碼FF73F883E103F3A4E88BF085F6741F(注:該特徵碼爲ntldr文件內的代碼特徵),搜索到則進行patch

  

  搜索bootmgr特徵碼

  

  搜索ntldr模塊內特徵碼

  

  bootmgr被patch後的代碼對比

  2.3 保護模式patch代碼分析

  木馬對不同的操作系統進行兼容處理,vista之前patch bootmgr ,之後patch ntldr,下面以patchbootmgr爲例進行分析。

  通過上文分析,bootmgr加載執行到偏移0xA8c處後木馬再次得到執行機會,此時會跳轉到8F51b處執行。這時已經由16位實模式轉到保護模式執行。其執行流程如下:

  a)通過代碼特徵搜索bootmgr!Archx86TransferTo32BitApplicationAsm和bootmgr!Archx86TransferTo64BitApplicationAsm,搜索到則進行相應的patch(注:對x86和x64做兼容處理,分別對應32位系統和64位系統中bootmgr到winload.exe的跳轉)

  b)通過代碼特徵566A1041554BCBC3搜索OslArchTransferToKernel,搜索到則進行相應的patch, 該函數被patch後會跳轉到8F7A5處執行(注:在BootMgr.exe加載Winload.exe時pathc OslArchTransferToKernel,爲hook ntoskrnl.exe做準備)

  c)hookntoskrnl的導出函數ZwCreateSection,該函數被hook後會跳轉到8440ed00處執行,其主要功能是調用PsSetCreateThreadNotifyRoutine註冊一個線程創建的回調例程(注:該回調例程完成了木馬主要的惡意功能)

  

  通過代碼特徵進行搜索

  

  OslArchTransferToKernel被patch後

  

  ZwCreateSection被patch後

  2.4 線程創建回調例程分析

  木馬調用PsSetCreateThreadNotifyRoutine註冊一個線程創建的回調例程,該回調例程完成了木馬主要的惡意功能。包括保護前62扇區數據, 聯網拉取shellcode等。

  由於這次發現的暗雲系列木馬變種從MBR感染代碼到hookwinload, 到hook nt內核,其過程基本一致, 主要差別是在註冊創建線程回調例程後,其回調例程內的惡意代碼不一致,下面再簡單分析其回調例程。

  2.4.1暗雲Ⅲ v3.0

  暗雲III v3.0其線程回調例程執行流程如下:

  a) 調用RtlInitUnicodeString初始化csrss.exe

  b) 查找進程csrss.exe,檢測到csrss.exe後則繼續下一步

  c) 感染MBR,並保護1到62扇區的數據,如果試圖讀前62扇區的數據則會返回正常的數據,如果試圖寫前62扇區的數據則返回寫入的數據進行欺騙,實際沒有被寫入;

  d) 調用CreateSystemThread創建系統線程,該線程函數主要完成了shellcode下載執行等功能,下載地址爲tj.tagcbm1t.com,目前該域名已經失活,不排除後期重新活躍,可拉取任意功能惡意代碼進行執行

  

  線程創建回調例程

  

  系統線程函數完成shellcode下載執行等功能

  2.4.2 暗雲I v2.0

  暗雲I v2.0其線程創建回調例程執行流程如下:

  a)調用RtlInitUnicodeString初始化svchost.exe,查找進程svchost.exe, 如果找到則設置標誌位爲1

  b)查詢到svchost.exe後向其中插入APC,該APC的功能是下載addata64.db/addata64.db對應的文件並解密執行, 這部分行爲和暗雲I 差別不大,詳細的分析可參考附錄中暗雲的分析

  目前域名已失活,url地址爲:

  http://upax.ximics.com/update/addata.db

  http://upax.ximics.com/update/addata64.db

  

  線程創建回調例程

  

  聯網拉取payload

  

  插入apc

  三、安全建議

  1.暗雲系列木馬主要是通過外掛、第三方流氓軟件、軟件下載器、破解工具、盜版軟件等進行傳播,建議用戶到官網下載或者通過電腦管家的軟件管理功能下載應用,避免從高風險的網站下載安裝軟件。

  

  急救箱查殺圖

  IOC:

  域名:

  upax.ximics.com

  tj.tagcbm1t.com

  Url:

  參考鏈接:

  暗雲Ⅲ BootKit 木馬分析(http://www.freebuf.com/articles/system/134017.html)

  暗雲”BootKit木馬詳細技術分析(http://drops.xmd5.com/static/drops/binary-4788.html)

  暗雲Ⅱ BootKit 木馬分析(https://slab.qq.com/news/kuaixun/1286.html)

  “暗黑流量”超大規模DDoS溯源分析(https://slab.qq.com/news/kuaixun/1286.html)

  專欄

查看原文 >>
相關文章