摘要

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

SADFUTURE框架解析:XDSpy進階攻擊背後的心理與技術博弈 | 資訊安全新聞

1. 簡介

近期惡意軟體分析揭示了XDSpy間諜平台的演進,透過整合SADFUTURE框架實現。這個模組化系統利用合法軟體濫用(DLL sideloading)、加密通訊及插件功能進行針對性操作。本報告基於可觀察的Artifact分解其技術機制。

2. 執行流程與持久性

SADFUTURE通過多階段部署程序啟動:

  1. 散佈器(Dropper): 初始可執行檔案(例如:被滲透的合法應用程式)透過側載攻擊載入惡意DLL( api-ms-win-core-memory-l1-1-0.dll )。此DLL檔案為SADFUTURE載入器(Loader)。
  2. 載入器功能: 惡意DLL執行關鍵設定:
    • 環境檢查: 使用Windows API呼叫(如 IsDebuggerPresent() )及登錄檔查詢虛擬化Artifact,掃描分析工具(debuggers, VMs)。
    • 資源提取: 使用基於XOR的演算法(樣本中觀察到的鍵值為 0x1F )解密嵌入資源段中的核心SADFUTURE payload( sadfuture.bin )。
    • 記憶體注入程式 :分配可執行記憶體( VirtualAllocEx ),寫入解密的 sadfuture.bin ,並透過 CreateThread 轉移執行。
  3. 持久性: 透過以下方式實現:
    • 登錄檔修改: 建立指向初始散佈器的Run鍵( HKCU\Software\Microsoft\Windows\CurrentVersion\Run )。
    • 排程任務: 利用 schtasks.exe 建立定期執行散佈器的任務。
    • 服務安裝: 部署偽裝成合法組件的Windows服務二進位檔案。

3. 命令與控制(C2)通訊

SADFUTURE利用HTTP/S進行C2通訊,並採用客制化二進位協議:

  • 資料編碼: 所有傳輸資料(系統資訊、外洩檔案、命令)在HTTP傳輸前均使用客制化演算法編碼。分析顯示為多步驟程序:
    1. 壓縮(可能是LZ77變體)。
    2. 使用在beaconing期間協商的每session鍵進行XOR加密。
    3. 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 )。

架構圖分析(基於提供的圖形):

參考圖表描繪了分層架構:

  1. 傳遞層: 初始向量(例如:魚叉式網路釣魚附件、被滲透的安裝程式)傳遞散佈器/載入器。
  2. 載入器層: 惡意DLL執行解密、注入、反分析檢查及核心模組設定。直接與作業系統介接。
  3. 核心模組( sadfuture.bin ): 持久核心。管理:
    • C2通道: HTTP(S)通訊處理器。
    • 插件管理器: 動態載入/卸載 .xdp 插件。
    • 任務排程器: 排隊並執行來自C2的命令。
    • 設定儲存: 加密設定(C2 IP、睡眠間隔、外洩路徑)。
  4. 插件層( .xdp 檔案): 由核心on-demand載入的專用模組。半獨立運作,但透過定義的API將結果/資料回報給核心。除特定任務外,與作業系統的直接互動最少。
  5. 資料外洩: 從受害者系統(透過插件或核心)->核心->加密->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。

6. 防禦考量

緩解策略專注於中斷攻擊鏈並偵測行為模式:

  1. 防止初始存取: 嚴格的電子郵件過濾、使用者對釣魚的教育、應用程式白名單。
  2. 強化防範側載: 透過群組原則( CWDIllegalInDllSearch )實現強大的DLL搜尋順序強化,稽核並限制允許從使用者可寫位置(例如: %APPDATA% )載入DLL的應用程式。Microsoft攻擊面縮減(ASR)規則可封鎖常見側載路徑。
  3. 偵測行為異常:
    • 監控載入名稱不符或來自異常路徑的DLL的程序。
    • 偵測執行 VirtualAlloc -> WriteProcessMemory -> CreateThread 序列的程序(指示執行時程式碼注入)。
    • 標記具有非通用使用者代理字串的HTTP(S)beacon,特別是帶有Base64類資料塊的POST請求,目標為非CDN/雲端基礎設施。
    • 搜尋啟動 cmd.exe / powershell.exe 並執行網路偵察命令( ipconfig netstat arp )的程序。
  4. 記憶體分析: 獲取並分析記憶體dump,尋找注入程式碼Artifact、解封裝的payload( sadfuture.bin )或載入的惡意插件( *.xdp )。
  5. 網路流量解碼: 根據觀察到的XOR+Base64模式及壓縮,開發解碼器以檢查關鍵網路上的C2流量內容。

7. 結論

SADFUTURE框架代表了與XDSpy惡意軟體家族相關能力的顯著演進。其模組化設計,利用核心協調器及專用插件,提供靈活性和韌性。透過複雜的側載、執行時注入、字串/API隱藏及強大的反分析檢查,極力注重隱匿性,使偵測變得困難。客制化二進位C2協議增加了另一層混淆。防禦者必須優先考慮行為偵測、記憶體鑑識及強化防範DLL側載攻擊,以對抗此類及類似的高級框架。持續監控新的插件功能及C2基礎設施至關重要。

Copyright © 2025 版權所有 翊天科技有限公司