作者:K&Nan@知道創宇404高級威脅情報團隊
原文鏈接:https://mp.weixin.qq.com/s/H-ZRvcofbzwZ8Ikyn5Vu4w
隨著各安全廠商對于APT組織及其應用武器的分析越來越徹底,各活躍APT組織自去年底都開始更新自己的攻擊武器庫,甚至有組織完全放棄了去年的一整套攻擊方法,使用新的攻擊方法,因此給分析團隊對攻擊者組織的確定帶來了一定困難,這符合一般網絡攻防活動對抗的發展規律,防御和攻擊在對抗中一起螺旋上升。
我們會持續對各組織的新攻擊武器進行分析和總結,繼上一篇《PatchWork新攻擊武器報告》分析了我們捕獲的PatchWork組織新武器后,本文我們繼續分享Bitter組織的新攻擊工具。
1. Bitter組織基本信息
Bitter,也被稱為蔓靈花,是一個疑似來源于南亞的高級威脅組織。自 2013年以來,一直屬于活躍狀態,該組織行動目標主要是巴基斯坦、孟加拉國和沙特阿拉伯的能源、工程和政府部門。
去年全年我們捕獲到該組織相關釣魚攻擊200+次,捕獲相關仿冒誘導文檔60+,根據去年捕獲情況來看,該組織攻擊依然延續與以往相似的常態化熱點攻擊。Bitter組織針對行業主要集中在航空航天、軍工、大型企業、國家政務、部分高校。
2. 武器基本信息
| 樣本來源 | 持續追蹤 |
|---|---|
| SHA-256 | DD53768EB7D5724ADEB58796F986DED3C9B469157A1A1757D80CCD7956A3DBDA |
| 武器名稱 | ORPCBackdoor |
| 武器類型 | 后門程序 |
| 針對平臺 | Windows |
3. 武器功能模塊圖

4. 武器功能綜述
近期,404高級威脅情報團隊在對Bitter組織的持續追蹤過程中發現其武器庫中出現了一款新型DLL后門,原始名稱為OLEMAPI32.DLL,產品名稱為Microsoft Outlook,本次發現的后門使用的通訊方式較為獨特,與該組織其他武器相比較,本次發現的后門通訊方式采用RPC與服務端交互。
根據已有信息來看,此次新發現的后門極有可能針對Outlook用戶群體,為方便后續追蹤狩獵及區分,故據此特征我們將其命名為ORPCBackdoor。
4.1 ORPCBackdoor功能描述
本次捕獲的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劫持技術,采用白加黑方式用于達到一定的免殺效果,由于調用該DLL的情況較多,我們暫時無法準確確定Bitter組織此次采用的白文件具體是哪一款。
其中ORPCBackdoor惡意入口有兩處,第一處為GetFileVersionInfoBy-HandleEx(void)導出函數,第二處為DllEntryPoint。
ORPCBackdoor從設計思路來看可分為兩個模塊,分別為初始化模塊和交互模塊,整體硬編碼字符采用HEX字符串保存,例如“SYSTEM INFORMATION \n”字符在ORPCBackdoor中保存的字符為"53595354454D20494E464F524D4154494F4E205C6E",該方式可略微達到阻礙反檢測以及對抗分析等目的,根據ORPCBackdoor所支持的功能,我們可以推斷出該后門處于感染鏈前端,用于為后續行動提供基礎環境。
初始化模塊描述
初始化模塊內包含多個功能模塊。多個模塊配合完成與服務端交互執行的前期工作,前期工作包括了字符解析、首次運行測驗、持久化、本機信息收集、C2在線檢測等方面,各部分內容詳述如下:
a) 字符初始化
本文前面有提及ORPCBackdoor內置的關鍵字符均采用TOHEXStr的方式保存,在運行過程中ORPCBackdoor會將即將使用的字符經進行解碼。根據后門中的上下文調用來看,加密的字符中還包含了服務端下發的命令。
b) 持久化
ORPCBackdoor通過判斷文件是否存在來防止多次持久化創建,在進行持久化創建前,ORPCBackdoor會判斷同路徑下是否存在ts.dat文件,當文件不存在時ORPCBackdoor才會創建持久化,持久化創建方式采用COM調用TaskScheduler CLSID,計劃任務名稱為Microsoft Update,創建完成后創建ts.dat文件。
c) 初始信息收集
初始信息收集三個部分數據,分別是進程列表、系統信息、用戶信息,相關信息收集非常詳盡,除基本信息外還會收集OS Build Type、Registered Owner、Install Date等信息。
d) 交互初始化
交互初始化與持久化模塊類似,同樣通過判斷文件是否存在從而防止與服務端同時多進程交互,判斷邏輯為判斷ProgramData路徑下是否存在$cache.dat文件,如果文件存在ORPCBackdoor將不會與服務端建立連接,否則初始RPC調用,ProtSeq采用ncacn_ip_tcp。如果在嘗試RPC調用后服務端無數據返回則休眠5分鐘后繼續嘗試,當服務端返回命令后進入交互模塊。
交互模塊描述
交互模塊與常見的命令處理邏輯相似,通過多層if-else來解析服務端 執行并完成指定功能,ORPCBackdoor所支持的功能并不算多,主要為Get- Shell,其余包含一些文件處理、上傳下載執行等操作。
ORPCBackdoor相關執行及對應功能描述如下:
- ID
ID指令所對應的功能較為少見,其功能是將服務端下發的一段0xF大小的數據暨15位數字(eg: 818040900140701),保存在本地%ProgramData%/$tmp.txt文件中,根據該指令及前面代碼流程中未出現ClientID相關生成操作,故我們猜測此步操作用于賦予受害者ID用于區分不同受害者。
- INF
INF指令用于上傳在初始化模塊-初始信息收集子模塊中所收集的詳盡本機信息。
- DWN
DWN指令所對應的模塊屬于精心設計過的功能模塊,功能為下載文件,根據對代碼的分析來看,DWN功能模塊設計的較為健壯,其支持向服務端反饋每一步操作是否成功或錯誤原因,從而完成既定目標流程,由于ORPCBackdoor屬于感染連前部分故此模塊的穩定性極為重要。
- RUN
RUN指令用于執行指定文件,使用WinExecAPI啟動文件。
- DLY
DLY指令為休眠指令,休眠服務端指定時長后再次運行。
- 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。
4.2 樣本細節描述

















本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.jmbmsq.com/2075/
暫無評論