
摘要
本報告詳細說明了被稱為SADFUTURE的複雜惡意軟體框架及其與XDSpy惡意軟體家族的關聯性。根據最近的數位鑑識證據,SADFUTURE展示了模組化執行、隱匿持久性以及加密的命令與控制(C2)通訊的先進能力。本分析僅專注於惡意軟體架構、執行流程及規避技術,不涉及特定實體的歸因。

1. 簡介
近期惡意軟體分析揭示了XDSpy間諜平台的演進,透過整合SADFUTURE框架實現。這個模組化系統利用合法軟體濫用(DLL sideloading)、加密通訊及插件功能進行針對性操作。本報告基於可觀察的Artifact分解其技術機制。
2. 執行流程與持久性
SADFUTURE通過多階段部署程序啟動:
-
散佈器(Dropper):
初始可執行檔案(例如:被滲透的合法應用程式)透過側載攻擊載入惡意DLL(
api-ms-win-core-memory-l1-1-0.dll
)。此DLL檔案為SADFUTURE載入器(Loader)。 -
載入器功能:
惡意DLL執行關鍵設定:
-
環境檢查:
使用Windows API呼叫(如
IsDebuggerPresent()
)及登錄檔查詢虛擬化Artifact,掃描分析工具(debuggers, VMs)。 -
資源提取:
使用基於XOR的演算法(樣本中觀察到的鍵值為
0x1F
)解密嵌入資源段中的核心SADFUTURE payload(sadfuture.bin
)。 -
記憶體注入程式
:分配可執行記憶體(
VirtualAllocEx
),寫入解密的sadfuture.bin
,並透過CreateThread
轉移執行。
-
環境檢查:
使用Windows API呼叫(如
-
持久性:
透過以下方式實現:
-
登錄檔修改:
建立指向初始散佈器的Run鍵(
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
)。 -
排程任務:
利用
schtasks.exe
建立定期執行散佈器的任務。 - 服務安裝: 部署偽裝成合法組件的Windows服務二進位檔案。
-
登錄檔修改:
建立指向初始散佈器的Run鍵(
3. 命令與控制(C2)通訊
SADFUTURE利用HTTP/S進行C2通訊,並採用客制化二進位協議:
-
資料編碼:
所有傳輸資料(系統資訊、外洩檔案、命令)在HTTP傳輸前均使用客制化演算法編碼。分析顯示為多步驟程序:
- 壓縮(可能是LZ77變體)。
- 使用在beaconing期間協商的每session鍵進行XOR加密。
- Base64編碼,用於HTTP傳輸中的POST資料或cookie值。
-
Beacon結構:
初始beacons包括:
(傳輸前進行編碼/加密)。{ "sysid": "
", "os": "Windows 10 x64", "ver": "SF/1.2", "stat": "ACTIVE" } -
C2回應處理:
伺服器以加密命令回應。SADFUTURE將其解析為操作碼(opcodes)及參數:
-
0x10
:檔案上傳請求 -
0x20
:執行插件 -
0x30
:更新設定 -
0x40
:下載並執行下一階段payload
-
4. 模組化架構與插件系統
SADFUTURE作為核心協調器,管理插件(觀察到為
.xdp
檔案):
-
核心職責:
- C2通訊管理
- 插件載入/卸載
- 系統分析
- 反分析檢查
- 基本檔案系統/程序列舉
-
插件介面:
插件實現由匯出函數定義的標準介面:
-
PluginInitialize(Context *ctx)
:設定,註冊功能。 -
PluginExecute(OpCode op, void *params)
:處理分配任務。 -
PluginShutdown()
:卸載前清理。
-
-
觀察到的插件功能(透過分析
.xdp
檔案):- 認證收集: 提取瀏覽器密碼、Windows認證儲存庫。
-
鍵盤記錄:
透過低階鍵盤hook(
SetWindowsHookEx(WH_KEYBOARD_LL)
)記錄按鍵。 -
螢幕擷取:
使用
BitBlt
API定期或on-demand擷取桌面影像。 -
文件外洩:
搜尋特定目錄(文件、下載、桌面)中的副檔名(
.docx, .pdf, .xlsx
)並透過C2上傳。 -
網路偵察:
執行
ipconfig /all
、arp -a
、netstat -ano
並解析輸出。 -
程序注入:
使用
CreateRemoteThread
將shellcode注入合法程序(例如:explorer.exe
)。
架構圖分析(基於提供的圖形):
參考圖表描繪了分層架構:
- 傳遞層: 初始向量(例如:魚叉式網路釣魚附件、被滲透的安裝程式)傳遞散佈器/載入器。
- 載入器層: 惡意DLL執行解密、注入、反分析檢查及核心模組設定。直接與作業系統介接。
-
核心模組(
sadfuture.bin
): 持久核心。管理:- C2通道: HTTP(S)通訊處理器。
-
插件管理器:
動態載入/卸載
.xdp
插件。 - 任務排程器: 排隊並執行來自C2的命令。
- 設定儲存: 加密設定(C2 IP、睡眠間隔、外洩路徑)。
-
插件層(
.xdp
檔案): 由核心on-demand載入的專用模組。半獨立運作,但透過定義的API將結果/資料回報給核心。除特定任務外,與作業系統的直接互動最少。 - 資料外洩: 從受害者系統(透過插件或核心)->核心->加密->C2伺服器。
這種模組化設計增強了隱匿性(僅啟動必要插件)及可維護性(插件可更新/替換而不影響核心)。
5. 反分析與規避技術
SADFUTURE整合多層防禦以對抗偵測與分析:
-
靜態規避:
- 可執行檔案封裝(觀察到UPX修改標頭)。
- 字串加密(二進位檔案內所有重要字串以簡單XOR或RC4加密)。
-
API Hashing:在執行時動態解析關鍵Windows API,使用hash值(例如:
"CreateFileW"
的ROR13 hash)而非名稱匯入,阻礙靜態IOC。
-
動態規避:
-
除錯器偵測:
IsDebuggerPresent()
、CheckRemoteDebuggerPresent()
、透過GetThreadContext()
檢查硬體斷點。 -
沙箱/虛擬機偵測:
檢查BIOS中的已知虛擬機供應商字串(
WMI Win32_BIOS
)、MAC位址、磁碟驅動器型號及CPU功能(例如:CPUID
虛擬化位元)。 - 使用者互動檢查: 監控滑鼠移動/點擊,若未偵測到則延遲執行,暗示自動化環境。
-
睡眠混淆:
使用
WaitForSingleObject
計時器或加密延遲迴圈,而非直接的Sleep()
呼叫,以繞過簡單的執行時分析hook。
-
除錯器偵測:
-
網路規避:
-
使用者代理偽裝(例如:模擬Chrome:
)。"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36"
- 在相關payload中觀察到域名生成演算法(DGA)用於後備C2。
- 使用竊取/自簽憑證的HTTPS。
-
使用者代理偽裝(例如:模擬Chrome:
6. 防禦考量
緩解策略專注於中斷攻擊鏈並偵測行為模式:
- 防止初始存取: 嚴格的電子郵件過濾、使用者對釣魚的教育、應用程式白名單。
-
強化防範側載:
透過群組原則(
CWDIllegalInDllSearch
)實現強大的DLL搜尋順序強化,稽核並限制允許從使用者可寫位置(例如:%APPDATA%
)載入DLL的應用程式。Microsoft攻擊面縮減(ASR)規則可封鎖常見側載路徑。 -
偵測行為異常:
- 監控載入名稱不符或來自異常路徑的DLL的程序。
-
偵測執行
VirtualAlloc
->WriteProcessMemory
->CreateThread
序列的程序(指示執行時程式碼注入)。 - 標記具有非通用使用者代理字串的HTTP(S)beacon,特別是帶有Base64類資料塊的POST請求,目標為非CDN/雲端基礎設施。
-
搜尋啟動
cmd.exe
/powershell.exe
並執行網路偵察命令(ipconfig
、netstat
、arp
)的程序。
-
記憶體分析:
獲取並分析記憶體dump,尋找注入程式碼Artifact、解封裝的payload(
sadfuture.bin
)或載入的惡意插件(*.xdp
)。 - 網路流量解碼: 根據觀察到的XOR+Base64模式及壓縮,開發解碼器以檢查關鍵網路上的C2流量內容。
7. 結論
SADFUTURE框架代表了與XDSpy惡意軟體家族相關能力的顯著演進。其模組化設計,利用核心協調器及專用插件,提供靈活性和韌性。透過複雜的側載、執行時注入、字串/API隱藏及強大的反分析檢查,極力注重隱匿性,使偵測變得困難。客制化二進位C2協議增加了另一層混淆。防禦者必須優先考慮行為偵測、記憶體鑑識及強化防範DLL側載攻擊,以對抗此類及類似的高級框架。持續監控新的插件功能及C2基礎設施至關重要。