針對國內IP發起攻擊的DDoS樣本分析

2019-05-24 56034人圍觀 ,發現 9 個不明物體 網絡安全

一、前言

圖片1.png

近期光通天下團隊捕獲到名為stianke_trojan.bak的惡意樣本,經過樣本初步分析確認該病毒類型Linux.Trojan.Generic.DDos。

樣本md5值等信息如下:

MD5:43a5c08bfac85e097b1eceeafaeeec40

SHA-1:9e9680e492bfcdf894bdedc92dc25848f0474f1d File Type ELF

Magic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.2.5, not stripped

TRiD ELF Executable and Linkable format (Linux) (50.1%)

ELF Executable and Linkable format (generic) (49.8%)

File Size 1.17 MB

此次捕獲到的病毒家族龐大,變種復雜多樣,運用了大量的關鍵字符加密(動態解密過程)。利用linux特性,感染大量系統文件(高效、非臨時性)作為自我保護與持續性攻擊的手段。

利用Linux系統原理巧妙偽裝與隱藏,被感染服務器植入后門,發動DDos網絡攻擊,如果被木馬植入,將會帶來極大的危害及不可預估的損失。

二、行為分析

觀察病毒是否加殼進行了免殺處理,通過查殼并未加殼,如下所示:

圖片2.png 圖片一:查殼

病毒拖入虛擬機或沙箱進行運行,動態觀察病毒對系統惡意行為,如修改配置、網絡操作等,對病毒行為結果做到心中有數,如下所示:

圖片3.png 圖片4.png圖片二:行為監控 

三、樣本詳細分析

(1)樣本執行流程分析

拖入IDA中觀察樣本的復雜程度如下所示: 

圖片5.png圖片三:IDA VIEW

利用字符串交叉引用提取有效的字符串信息,其中提取大量的DDos所攻擊的ip(高達300以上),ip源基本都是中國境內的,如下所示:

圖片6.png 圖片四:目標ip源

定位到病毒入口點,經樣本動態調試,執行流程大體如下:

圖片7.png圖片8.png 圖片9.png 圖片五:病毒執行流程  

(2)動態解密字符串模塊

解密數據賦值給全局變量:

圖片10.png圖片11.png 圖片六:動態解密數據

通過字符串動態解密,最后解密出正確的ip域名端口等數據:

圖片12.png 圖片七:ip/域名/port

最終整理全局變量被賦值的數據,如下所示:

13.png圖片13.png 圖片八:域名解析

(3)MainBeikong模塊

觀察執行流程會發現,當病毒第一次執行的時候,g_iGatesType被賦值為1,則必然會進入到該函數,函數分析如下:

圖片14.png 圖片九:MainBeikong

執行惡意代碼,會先killPid與刪除“/tmp/bill.lock”,,在啟動目錄下存在bash,然后還會判斷一些文件且刪除,保證唯一性(后面還會在創建該文件)。

這時候就用到了前面的全局變量g_strSN(DbSecuritySpt)偽裝在init.d與rc目錄下,通過查看寫入文件數據,是病毒源文件絕對路徑。 

圖片15.png 圖片十:偽裝啟動源

使用自己封裝的函數MkdirPid,創建文件且寫入線程文件,我們通過sysdig或者動態執行代碼后,追蹤惡意行為,這時候創建以全局變量g_strGL(lod)后綴的文件記錄Pid如下所示:

圖片16.png 圖片十一:寫入Pid

MainBeikong函數進入了結尾,函數清理了環境(因為每執行一個函數就會fork()創建新進程,退出當前進程),把自己加入系統服務中,為下一步執行MainBackdoovr做預熱準備,如下所示:

圖片17.png 圖片十二:MainBeikong

(注:windows使用OD等工具可以在新線程創建回調進行附加下斷,也可以在Thread 運行回調時候可以下斷,Linux fork或者processthread配合exit就很難下斷新進程,提供思路,使用IDC寫腳本修改二進制機器碼與匯編指令,達到實現完整的動態調試效果。)

(4)MainBackdoorv模塊

MainBackdoorv函數是病毒中尤為重要一個環節,這里是惡意攻擊的執行點,也是重點分析的函數,如下所示: 

圖片18.png 圖片十三:MainBackdoorv

該函數會判斷是否已存在getty.lock.ak,g_strBDG(selinux)全局變量解密的數據創建的文件,如果不存在則創建該文件且獲取全局變量g_strBDSN,selinux針對getty文件,如下所示:

圖片19.png 圖片十四:selinux偽裝

(5)MainProcess模塊

MainProcess包含了C&C通信,自己也構建了服務端,創建了大量的線程(多線程方式),有著良好的線程鎖與線程池來控制攻擊線程。不同的操作使用了不同封裝類來調用對象執行,用this作為參數,而this作為回調函數列表,以指針偏移方式去尋址調用惡意代碼,是一個非常復雜的函數,重點分析如下:

圖片20.png 圖片十五:MainProcess執行流程

MainProcess先是利用了谷歌公開的服務器更新了域名,網絡抓包如圖八,這個比較有意思,如下所示:

圖片21.png 圖片十六:InitDnsCache

接著初始化了大量的攻擊ip,如圖四所示,感染了/usr/lib/libamplify.so動態鏈接模塊,而且初始化了ATK(攻擊)模塊及this偏移,如下所示:

圖片22.png圖片十七:ATK模塊

動態調試過程中還發現了函數感染了大量的文件,并擁有755的權限,提取被感染的文件名稱,如下所示: 

23.png 圖片23.png 圖片十八:被感染文件

線程創建及類Manager調用,使用Socket創建了服務端,用來接收客戶端(ip組中返回的數據),Send發送大量的數據如下所示: 

圖片24.png圖片25.png 圖片26.png 圖片十九:SocketDDos

這個樣本比較獨特的地方,維護了很多對象,對this指針進行調用列表賦值,作為創建新線程參數傳入。在構造函數里進行了初始化,在析構釋放執行了部分操作,如下所示: 

圖片27.png圖片28.png 圖片29.png 圖片二十:ObjectRef

最后找到了關鍵攻擊函數ProssMain,封裝了各類型的DDoS攻擊,如下所示:

圖片30.png 圖片二十一:DDos攻擊封裝

(Ps:附上一張DDoS攻擊狀態圖(模擬),直觀的感受DDoS對服務器帶來的性能影響與危害。)

圖片31.png 圖片二十二:DDos攻擊感官圖

四、惡意域名,IP及被攻擊IP整理

惡意域名:

Lea.f3322.org  103.73.160.25(中國香港)

微信圖片_20190516144529.png 控制端-惡意IP:

130.73.160.25:2500 (德國柏林州柏林)

被攻擊IP(331 個,大部分在中國):

61.132.163.68

202.102.192.68

202.102.213.68

...

221.7.92.86

221.7.92.98

五、病毒處理及加固措施

根據病毒的行為與樣本分析定性,清理被感染的文件及嘗試恢感染的數據,對服務器進行加固,編寫偽腳本如下(需要配合實際情況):

圖片32.png 圖片二十三:病毒處理及數據恢復腳本

六、總結

經過病毒的全面分析,入侵系統以后,執行了大量的惡意代碼,感染文件、加載內核模塊、偽裝隱藏等惡意行為,目的發動各種形式的DDos攻擊。

單純的觀察行為是很難排查與定位,無法捕獲到病毒執行過程與文件數據感染的具體情況。管理人員應該加強安全防范意識,有良好的網絡監控服務(如DDos監控)日志審計等,第一時間掌控服務器健康狀態,從而及時發現、排查、追蹤、定位、分析、處理,將病毒造成的損害降至最低點。

*本文作者:光通天下,轉載請注明來自FreeBuf.COM

發表評論

已有 9 條評論

取消
Loading...
光通天下

光通天下網絡科技股份有限公司

1 文章數 4 評論數

特別推薦

推薦關注

填寫個人信息

姓名
電話
郵箱
公司
行業
職位
css.php jizzz