作者:K&NaN@知道創宇404高級威脅情報團隊
時間:2023年8月4日

2023年3月知道創宇404高級威脅情報團隊全球率先捕獲到一個全新APT組織的武器后門,我們稱為“ORPCBackdoor”,并在2023年5月對外發布了該武器后門的詳細分析:Bitter 組織新攻擊武器分析報告 - ORPCBackdoor 武器分析

在該報告里我們把該武器后門定位為 BITTER(“蔓靈花”)使用的最新武器,然而我們留意到近日卡巴斯基發布報告稱他們于第二季度發現了一個全新的APT組織,該組織的主要攻擊目標為巴基斯坦,將其命名為“Mysterious Elephant(神秘象)”。此外還發布了兩篇非公開報告,第一篇報告主要描述了該組織過去幾年的主要技戰術(TTPS),第二篇描述了該組織對巴基斯坦外交相關部門的攻擊行動。

該組織主要特點是使用了一個全新的后門,該后門通過惡意RTF文檔傳遞到受害者機器上。惡意RTF文檔通過釣魚郵件進行投遞。這個全新的后門通過RPC與C2服務器進行通信,并有在受控機器上執行文件或者命令的能力,同時該后門也可以從C2服務器上接收文件和命令并執行。經過確認,卡巴斯基發現的后門與我們率先捕獲的“ORPCBackdoor”是同一個后門程序。考慮到歸因存在分歧差異,由此知道創宇404高級威脅情報團隊把使用“ORPCBackdoor”的“新”組織啟用全新編號:APT-K-47,中文名稱“神秘象”

本文我們也會從樣本整體攻擊鏈及同源關系分析等進一步擴線分析,且我們也通過知道創宇遙測大數據觀察到該組織攻擊的目標除了巴基斯坦外,還有攻擊其他國家的痕跡。同時經過回溯分析,我們發現該組織最早攻擊活動應當開始于2022年3月份左右。本文將公布該APT組織攻擊細節及相關IOC。

1. 整體攻擊鏈

圖1

在APT-K01的一次攻擊活動中,攻擊者通過釣魚郵件向攻擊目標發送CHM文件,CHM文件使用“俄中友好、和平與發展委員會”為誘餌,相關誘餌內容如下所示。

圖2

從釣魚文件的內容可以看到,該組織的攻擊目標不只是卡巴斯基描述的僅針對巴基斯坦,根據前期知道創宇遙測大數據顯示,該組織攻擊目標為多個國家。

CHM文件惡意部分為doc.html,該文件中存在一個OBJECT對象,該對象用于創建一個每隔15分鐘運行一次的計劃任務,任務用于下載并執行存放在二階服務器中的二階惡意程序,二階程序為MSI文件。

圖3

二階MSI文件中存放著一對白加黑文件,黑文件為卡巴斯基報告中提到的ORPCBackdoor,白文件為微軟官方服務文件,用于啟動黑文件(OLMAPI32.dll)。

圖4

2. 同源性分析

ORPCBackdoor攻擊鏈條與印度方向所使用的技戰術相重疊,其中 BITTER 組織的技戰術與代碼結構尤為相像,相關對比分析如下:

BITTER 組織在往期的攻擊活動中使用的 CHM 文件結構如下:

圖5

本次捕獲到的 ORPCBackdoor 初始階段的 CHM 文件結構如下:

圖6

兩者doc.htm文件對比,下圖為 BITTER 的doc.htm文件:

圖7

下圖為ORPC的CHM文件中的doc.htm文件:

圖8

CHM文件從代碼邏輯、功能和規避技巧等方面來看幾乎一致,后續下載的二階文件均為msi文件。

ORPCBackdoor攻擊鏈條與南亞方向所使用的技戰術相重疊,分析發現該木馬曾在confucious組織使用過的網絡資產里面出現過,同時我們發現同類木馬也在 BITTER 組織使用過的資產上出現過。南亞方向的APT組織一直以來都存在資產方向的交叉使用,我們甚至發現過confucious與Patchwork組織出現過部分特殊字符串的重用,很難完全將某一個組織徹底同其他組織分開,目前的主要區分依據還是整個木馬攻擊鏈條的區別以及部分網絡資產的區別。綜合我們對其他南亞組織Sidewinder、Patchwork、cnc、confucious、BITTER、APT-K-47的分析情況來看,這幾個黑客組織可能是同一組織下的不同小組,存在攻擊工具、攻擊目標、網絡資產方面不少重疊情況。

3. ORPCBackdoor描述

3.1 樣本功能綜述

ORPCBackdoor共計17個導出函數,相關導出函數名稱如下所示:

GetFileVersionInfoA

GetFileVersionInfoByHandle

GetFileVersionInfoExW

GetFileVersionInfoSizeA

GetFileVersionInfoSizeExW

GetFileVersionInfoSizeW

GetFileVersionInfoW

VerFindFileA

VerFindFileW

VerInstallFileA

VerInstallFileW

VerLanguageNameA

VerLanguageNameW

VerQueryValueA

VerQueryValueW

GetFileVersionInfoByHandleEx(void)

DllEntryPoint

從導出函數來看ORPCBackdoor使用了version.dll模版,version.dll是一個Windows操作系統的動態鏈接庫文件,它主要用于管理可執行文件或者DLL文件的版本信息。故我們有理由猜測ORPCBackdoor使用DLL劫持技術,采用白加黑方式用于達到一定的免殺效果,本次發現的調用文件為MicrosoftServices,但由于調用該DLL的情況較多后續BITTER組織可能會使用其他款白文件進行調用。

ORPCBackdoor惡意入口有兩處,第一處為GetFileVersionInfoBy-

HandleEx(void)導出函數,第二處為DllEntryPoint。

ORPCBackdoor從設計思路來看可分為兩個模塊,兩個模塊分別為初始化模塊以及交互模塊,整體硬編碼字符采用HEX字符串保存,例如“SYSTEM INFORMATION \n”字符在ORPCBackdoor中保存的字符為"53595354454D20494E464F524D4154494F4E205C6E",該方式可略微達到阻礙反檢測以及對抗分析等目的,根據ORPCBackdoor所支持的功能,我們可以推斷出該后門所處感染鏈前端,用于為后續行動提供基礎環境。

3.1.1 初始化模塊描述

初始化模塊內包含多個功能模塊。多個模塊配合完成在與服務端交互執行的前期工作,前期工作包括了字符解析、首次運行測驗、持久化、本機信息收集、C2在線檢測等方面,各部分內容詳述如下:

  1. 字符初始化

    本文前面有提及ORPCBackdoor內置的關鍵字符均采用TOHEXStr的方式保存,在運行過程中ORPCBackdoor會將即將使用的字符經進行解碼。根據后門中的上下文調用來看,加密的字符中還包含了服務端下發的命令。

  2. 持久化

    ORPCBackdoor通過判斷文件是否存在,從而防止多次持久化創建,在進行持久化創建前,ORPCBackdoor會判斷同路徑下是否存在ts.dat文件,當且文件不存在ORPCBackdoor才會創建持久化,持久化創建方式采用COM調用TaskScheduler CLSID,計劃任務名稱為Microsoft Update,創建完成后創建ts.dat文件。

  3. 初始信息收集

    初始信息收集三個部分數據,分別是進程列表、系統信息、用戶信息,相關信息收集非常詳盡,除基本信息外還會收集OS Build Type、Registered Owner、Install Date等信息。

  4. 交互初始化

    交互初始化與持久化模塊類似,同樣通過判斷文件是否存在,從而防止與服務端同時多進程與服務端交互,判斷邏輯為判斷ProgramData路徑下是否存在$cache.dat文件,如果文件存在ORPCBackdoor將不會與服務端建立連接,否則初始RPC調用,ProtSeq采用ncacn_ip_tcp。如果在嘗試RPC調用后服務端無數據返回則休眠5分鐘后繼續嘗試,當服務端返回命令后進入交互模塊。

3.1.2 交互模塊描述

交互模塊與常見的命令處理邏輯相似,通過多層if-else來解析服務端執行并完成指定功能,ORPCBackdoor所支持的功能并不算多,主要為Get- Shell,其余包含一些文件處理、上傳下載執行等操作。

ORPCBackdoor相關執行及對應功能描述如下:

  1. ID

    ID指令所對應的功能較為少見,其功能是將服務端下發的一段0xF大小的數據即15位數字(eg: 818040900140701),保存在本地%ProgramData%/$tmp.txt文件中,根據該指令及前面代碼流程中未出現ClientID相關生成操作,故我們猜測此步操作用于賦予受害者ID用于區分不同受害者。

  2. INF

    INF指令用于上傳在初始化模塊-初始信息收集子模塊中所收集的詳盡本機信息。

  3. DWN

    DWN指令所對應的模塊屬于精心設計過的功能模塊,功能為下載文件,根據對代碼的分析來看DWN功能模塊設計的較為健壯,其支持在向服務端反饋每一步操作是否成功或錯誤原因,從而完成既定目標流程,由于ORPCBackdoor屬于感染鏈前部分故此模塊的穩定性極為重要。

  4. RUN

    RUN指令用于執行指定文件,使用WinExecAPI啟動文件。

  5. DLY

    DLY指令為休眠指令,休眠服務端指定時長后再次運行。

  6. CMD

    CMD指令為ORPCBackdoor核心指令,功能為GetShell,其所使用的處理邏輯為,解析服務端所下發的Shell指令,獲取到服務端下發的Shell指令后進行指令拼接,拼接格式為cmd.exe /c |服務端下發的指令|>> c:\Users\Public\cr.dat。

    后續通過WinExec()API執行該條執行,執行完成后將cr.dat的內容發送至服務端,后續刪除cr.dat文件從而達到一次與服務端Shell交互效果。

    在分析過程中,我們捕獲到服務端首先會下發systeminfo命令再次獲取系統信息,緊接著第二條指令為whoami。

    通過對ORPCBackdoor整體分析我們可以得出以下結論:ORPCBackdoor后門是一款較為精簡且設計較為成熟的后門程序。無論是對自身字符的處理,拋棄常用的Socket調用轉而使用RPC調用,還是為規避終端檢測所采用的version.dll劫持模板,域名、程序、描述等整體一致性,我們可以看出本次攻擊活動可以算得上是一次經過精心設計策劃的行動,同時為了防止自身暴露也使用了新型攻擊武器從而變更了其慣用的TTP。

3.2 樣本細節描述

從ORPCBackdoor相關原始信息中可以看到最早的樣本創建時間是2022年2月份和3月份:

圖9

圖10

圖11:正常version.dll

圖12:ORPCBackdoor

圖13:通過文件判斷是否進行持久化流程

圖14:主機當前運行的進程信息收集

圖15——18:極為詳盡的系統信息收集

圖19:服務端指令初始化

圖20:RPC初始化

圖21:生成ClienID

圖22:生成的ClienID

圖23:上傳前期收集的系統信息

圖24:文件下載模塊

圖25:RUN指令-運行指定程序

圖26:休眠模塊

圖27:核心模塊-Shell模塊

圖28:服務端下發的命令一

圖29:服務端下發的命令二

圖30:通過NdrClientCall2API收發服務端消息

4.IOC

ORPCBackdoor

8AEB7DD31C764B0CF08B38030A73AC1D22B29522FBCF512E0D24544B3D01D8B3

88ecbe38dbafde7f423eb2feb6dc4a74

f4cea74c8a7f850dadf1e5133ba5e396

C&C

msdata.ddns.net

outlook-services.ddns.net

msoutllook.ddns[.]net

outlook-updates.ddns[.]net

outlook-services.ddns[.]net

108.62.118.125:443

msdocs.ddns.net

5.參考鏈接

  1. APT trends report Q2 2023
  2. Bitter組織新攻擊武器分析報告-ORPCBackdoor武器分析
  3. PatchWork組織新型攻擊武器報告- EyeShell武器披露

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/3000/