Gh0st RAT變體分析
IOC
病毒名稱:Gh0st RAT變體
來源:https://app.any.run/tasks/1524fa9f-b30b-489e-9e05-7f50f5c37da0/#
C2:ref.tbfull.com:14996和zjml.f3322.org
MD5:3792e81cdddb4a53258d38e5b1010fc9
SHA1:55a414f2cf070f6713e88d4c304483b4585ba92a
SHA256:45a463bcf7b7721acebacfedb178786e5bac4ad9044ada720669a5a4e8c0b445
一、行為分析
通過Process Monitor監控該惡意進程的行為,發現僅有兩條注冊表值設置的操作。

在注冊表中,創建鍵值HKLM\SYSTEM\Select\MarkTime,記錄該木馬運行時間。

在注冊表中,創建鍵值HKCU\Software\Microsoft\ActiveMovie\devenum\Version,記錄版本信息。

存在大量的網絡活動,且流量特征符合常見木馬的上載量遠大于下載量。

二、代碼分析
先從WinMain函數開始分析,該函數首先解密存儲在數據段中的Server.dll,然后將其裝載進內存,并執行其中的Main函數。

sub_45B912函數邏輯如下圖:

Main函數中,先是通過Load函數獲得一段數據,之后對該數據進行異或運算解密,解密后的數據中出現” /AwREtAIs7O0tNAP9Aem”、“.%SystemRoot%\System32\”、“6gkIBfkS+qY=” “2LW20LS2pg==”、“5326ca24fc0b667071fe7092c2418598”,和“Dtldt.exe”等字符串信息。

接著,會在sub_10015CC0函數中解密配置文件,地址為0x101342C4,長度2120個字節,解密函數就是黑客自己設計的異或算法,如下圖。

通過分析發現,該木馬有三種啟動方式:普通模式,創建服務。根據配置文件的配置來選擇哪一種方式啟動。

普通模式下,該惡意進程通過sub_10017F40函數和sub_10017F00函數每隔50毫秒與C2服務器進行交互。

關于接收到的數據如何處理,其邏輯都在sub_100045A0函數中,該協議有點復雜,本文就略過。另外,ida7.5的反編譯該木馬的效果有點差,很多函數的參數都是不準確的,甚至部分指針變量丟失。例如下圖中的recv函數以及sub_100045A0函數的參數列表是殘缺的。

發送給C2的數據都會通過sub_10004810函數進行加密,數據窗口中0x1E60938是加密后的數據。

第二種模式,會在前者的基礎上額外嘗試啟動一個自己的服務。

作為Windows 服務執行的二進制文件為C:\Windows\System32\Dtldt.exe。不過這里,因為該樣本配置的是普通模式,就沒有走這條分支。我通過修改EIP強行跑,發現無法啟動服務,覺得可能是因為找不到Dtldt.exe或者配置文件中沒有其代碼(該樣本來自app.any.run下載)。

“/AwREtAIs7O0tNAP9Aem”這個字符串會在sub_10014B70中解密為第二個C2的域名“zjml.f3322.org”(第一個C2無法正常訪問時)。“6gkIBfkS+qY=” 這個字符串會在sub_10014B70中解密為“Default”。

為了定位與C2交互的代碼,我還用od進行調試,在進程加載完庫后,對socket、send、recv等函數下斷。

對0x10017dd7地址處下斷,該處會調用函數sub_10004300,嘗試解析url并建立TCP連接。經過幾次F9,可以知道其訪問的C2地址有” ref.tbfull.com:14996”和” zjml.f3322.org”,如果在調用幾次Sleep函數睡眠后都無法連接到C2服務器的話就會結束進程。
在通過配置一下網絡,讓虛擬機可以訪問到外網后,惡意進程成功訪問到C2服務器。對該惡意進程抓包分析,發現惡意進程每向C2發送一段數據,C2回復收到后就立即斷開連接。每次都用一段新的連接發送數據。

捕獲的受害者主機向C2服務器發送的數據包,數據部分如下。

似乎還有第二個C2,122.112.199.223這個地址正是“zjml.f3322.org”DNS解析的結果。
該惡意進程與122.112.199.223的交互類似于前一個,傳輸的數據與前者的數據是同一種格式。但是,卻有大量的keep-alive包,并不會主動斷開連接,所以猜測該C2用于持續控制。此外,他們傳輸的數據包中都帶有“NIMABIJIAN”這個字符串。

收集系統信息并向C2服務器發送。

該惡意程序在第三種執行模式中嘗試去打開Windows中的特殊目錄。因為沒有執行這里,所以目錄名字這個參數是空的,未知。此外,該惡意進程在該模式下還會給受害者的主機增加一個DOS設備,取名叫“agmkis2”。這里應該是為了實現設備名欺騙,配置文件中沒有設置映射的對象。

緊接著,訪問該映射出來的磁盤,并向其中寫入數據。寫入的數據是依據“5326ca24fc0b667071fe7092c2418598”生成的。

在sub_10018C10函數處創建進程去執行”cmd.exe /c ping -n 2 127.0.0.1 > nul && del”。

三、總結
Gh0st RAT病毒是攻擊者用來控制受感染節點的遠程木馬,最初被認為是來自中國的apt。由于其有效性,Gh0st RAT及其變體仍然是目前使用最廣泛的RAT工具之一(開源)。Gh0St RAT的一個特性是使用專有網絡協議混淆客戶端-服務器通信的能力。它包含了許多直觀的圖形用戶界面,使惡意遠程控制變得簡單。
修復建議:若發現感染該變體,可以通過可執行文件路徑刪除對應進程和樣本,并查看是否存在“TDtldtl Dumdu”的服務,存在則禁用或刪除。