Linux下的APT攻擊工具HDD Rootkit分析
一、概況
前段時間,卡巴斯基捕獲到Winnti網絡犯罪組織在Windows下進行APT攻擊的通用工具——HDD Rootkit。近期,騰訊反病毒實驗室在Linux系統下也捕獲到同類工具。Winnti組織利用HDD Rootkit在Windows和Linux系統下進行持續而隱蔽的APT攻擊。經分析發現,HDD Rootkit先是篡改系統的引導區,然后在進入Linux系統前利用自帶的Ext文件系統解析模塊,將隱藏在硬盤深處的后門文件解密出來后加入到開機啟動腳本或系統服務里。目前受攻擊的系統有Centos和Ubuntu。
圖1:HDD Rootkit在Linux下的攻擊流程
二、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:步驟二
#p#
(3)RKimage 功能分析
RKimage是HDD Rootkit下釋放的子工具。RKimage不依賴于操作系統,直接解析文件系統,能根據不同的安裝情況,把后門加入開機啟動。
RKimage模塊:
◆由Bootcode拉起,將實模式切換到保護模式;
◆實現Ext文件系統解析與讀寫功能;
◆把隱藏在扇區的后門寫成文件,根據不同的情況增加開機啟動項。
圖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模塊輸出功能代碼的調息信息