Linux系統下的HDD Rootkit分析

wyzsk發表於2020-08-19
作者: 騰訊電腦管家 · 2015/10/22 11:12

0x01 概況


前段時間,卡巴斯基捕獲到Winnti網路犯罪組織在Windows下進行APT攻擊的通用工具——HDD Rootkit。近期,騰訊反病毒實驗室在Linux系統下也捕獲到同類工具。Winnti組織利用HDD Rootkit在Windows和Linux系統下進行持續而隱蔽的APT攻擊。經分析發現,HDD Rootkit先是篡改系統的引導區,然後在進入Linux系統前利用自帶的Ext檔案系統解析模組,將隱藏在硬碟深處的後門檔案解密出來後加入到開機啟動指令碼或系統服務裡。目前受攻擊的系統有Centos和Ubuntu。

(圖1:HDD Rootkit在Linux下的攻擊流程)

0x02 HDD Rootkit在 Linux下的詳細分析


1、過程展示

分析HDD Rootkit:

(圖2:分析HDD Rootkit得到的引數提示)

執行HDD Rootkit:

(圖3:執行HDD Rootkit工具)

透過圖3,能看出HDD Rootkit平臺已經把RKimage和Backdoor解密並寫入扇區裡面,而且計算了他們的Crc16值(這部分後面有更詳細的分析)。接下來我們看看mbr的變化:一是第一扇區已經被改寫(如圖4);二是開機瞬間顯示出HDD Rootkit的除錯資訊(如圖5)。當系統中毒以後,第1扇區存放病毒的MBR,第25扇區存放BootCode,第26與第27扇區存放加密後的原始MBR。

(圖4: 左邊是被修改的mbr,右邊是原始的mbr)

(圖5:開機時RKimage的輸出資訊,注意:debug版本才有資訊輸出)

2、安裝階段詳細分析

(1) 執行安裝方式與引數:

(圖6:hdroot_32_bin安裝方式)

在Linux下執行HDD Rootkit 如 ./root_32_bin inst ./createfile 1。其中第一個引數是安裝型別,第二個引數是後門檔案,第三個引數是啟動型別(共三種開機啟動方式)。

(2) HDD Rootkit的檔案儲存和隱藏:

HDD Rootkit早期的版本是把MBR、Boot Code、RKimage等放在程式資源裡面,在Linux系統下則是把這些檔案加密儲存在安裝器裡面。以下分析HDD Rootkit如何將加密好的MBR、Boot Code、RKimage解密出來,又重新加密寫入到第一個扇區和空閒的扇區裡面。

(圖7:左邊是加密的結構體,右邊是解密過程)

HDD Rootkit將Rkimage 和Backdoor再次加密後寫入扇區,將後門檔案藏得更深。

(圖8:將RKimage和Backdoor檔案寫入扇區)

獲取引導盤,準備寫入MBR和Bootcode,步驟如圖9和圖10所示。

(圖9:步驟一)

(圖10:步驟二)

(3) RKimage 功能分析

RKimage是HDD Rootkit下釋放的子工具。RKimage不依賴於作業系統,直接解析檔案系統,能根據不同的安裝情況,把後門加入開機啟動。

RKimage模組:

  1. 由Bootcode拉起,將真實模式切換到保護模式;
  2. 實現Ext檔案系統解析與讀寫功能;
  3. 把隱藏在扇區的後門寫成檔案,根據不同的情況增加開機啟動項。

(圖11:RKimage的檔案系統解析模組的字串提示)

第一種開機啟動方式:

(圖12:/etc/rc*.d/S7*cdiskmon 型別)

第二種開機啟動方式:

(圖13:/etc/rc.d/rc.local型別)

第三種開機啟動方式:

(圖14:SYSTEMD型別)

(4) 後門檔案

由於獲取的程式樣本有限,在分析過程中並沒有獲取真正有效的Backdoor檔案,所以整個攻擊的完整流程和木馬如何把資訊向外通訊並未分析到。因此,自主構造了一個寫檔案的可執行程式。

3、 除錯 HDD Rootkit的MBR、Bootcode、RKImage關鍵節點

(圖15:中毒後的第一扇區)

(圖16:HDD載入Bootcode)

(圖17:從Bootcode進入到RKimage模組)

(圖18:RKimage模組載入GDTR)

(圖19:RKimage模組裡面準備切換到保護模式)

(圖20:RKimage模組準備執行功能)

(圖21:RKimage模組輸出功能程式碼的調息資訊)

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章