Nimbus Manticore

伊朗駭客利用虛假招聘陷阱,透過 Node.js 跨平台木馬滲透開發者工作站

作者

此攻擊案例展現了極高且精準的心理博弈,將『技術面試』與『時間壓力』作為武器,成功將攻擊面從系統漏洞轉移至人的心理漏洞,評價為『高效且陰險』。然而,其核心依賴受害者主動執行代碼,在面對具備基本沙箱習慣的資安意識開發者時,防禦門檻極低,因此其威脅強度在於『普及性』而非『技術突破性』。

伊朗駭客利用虛假招聘陷阱,透過 Node.js 跨平台木馬滲透開發者工作站

根據俄國資安公司 Kaspersky 的研究報告,一個被稱為 Nimbus Manticore 的伊朗駭客組織近期改變了攻擊策略。該組織採取社交工程手段,偽裝成知名科技公司的招聘人員,在 LinkedIn 等求職平台接觸軟體工程師,誘騙目標下載含有惡意程式的編碼測試題目。這次攻擊最顯著的特點在於其開發了兩款基於 Node.js 與 JavaScript 的跨平台遠端存取木馬(Remote Access Trojans, RAT),分別被命名為 NodeRabbit 與 PollCat,使其能同時威脅 Windows、Linux 以及 macOS 系統。

背景與攻擊路徑

Nimbus Manticore 過去傾向使用 C、C++ 或 Go 等語言編寫惡意軟體,並依賴 DLL 搜尋順序劫持(DLL search-order hijacking,一種利用系統載入動態連結庫之缺陷來執行非法程式的技術)來部署。然而,最新的攻擊模式則轉向針對開發者社群。駭客會以人才招募專員的身分,邀請工程師參與技術評估,並提供一個存放於 AWS 的 ZIP 壓縮檔作為編碼挑戰。

在典型的攻擊情境中,受害者會收到一個名為 Front-Technical-Challenge.zip 的檔案,內容包含一個專案管理工具的原始碼。駭客會要求應徵者在三小時內找出前端程式碼中的漏洞並加以修復,且明確要求不得使用 AI 輔助工具,並強調後端伺服器檔案 server.js 是沒有問題的,請勿修改。這種設定不僅創造了時間壓力,更誘導開發者將注意力集中在前端,而忽略了真正隱藏惡意代碼的後端檔案。

核心技術:NodeRabbit 與 PollCat 的運作機制

NodeRabbit 的滲透方式非常隱蔽。它在 server.js 中導入了一個偽造的 npm 套件(npm 是 Node.js 的套件管理器,用於安裝第三方函式庫)。駭客並沒有將此惡意套件上傳到公開的 npm 官方倉庫,而是直接將其打包在壓縮檔的 node_modules 目錄中。當開發者執行專案時,該套件會悄悄啟動一個隱藏的背景程序,與託管在 Azure 上的指令控制伺服器(Command and Control, C2)建立連線。

NodeRabbit 具備強大的控制能力,支援包括獲取主機詳細資訊、執行任意 Shell 指令、讀寫檔案以及修改信標(Beacon,指惡意軟體定期向 C2 伺服器發送訊號以確認在線狀態的機制)間隔等 11 項指令。為了掩蓋蹤跡,它能將 Base64 編碼的腳本寫入隨機命名的暫存檔執行後立即刪除。此外,它會根據作業系統採取不同的持久化策略:在 Windows 上修改登錄檔,在 Linux 上建立 cron 定時任務,在 macOS 上則設定啟動代理(Launch Agent),且部分變體會偽裝成 Microsoft Edge 或 Intel 驅動更新程式以降低被發現的機率。

另一款木馬 PollCat 則採取了類似的分發方式,但其誘餌被設計成 CTF(Capture The Flag,一種資訊安全競賽,參賽者需尋找隱藏的旗標以得分)風格的 React 平台。Kaspersky 觀察到該專案中出現大量 CTF 相關術語,但指令與實際應用不符,推測駭客可能是利用 AI 助手生成了這個模板。PollCat 提供了更豐富的 22 項指令,除了基礎的檔案操作與指令執行外,還能搜尋特定軟體與資安廠商(如 Google, Microsoft, CrowdStrike 等)的資料夾,將其內容回傳至伺服器,顯示其具有明確的工業間諜或針對資安研究人員的意圖。

影響、實務意義與限制

這次攻擊標誌著伊朗駭客組織在工具鏈上的重大演進。選擇 Node.js 與 JavaScript 作為開發語言,讓攻擊者只需要維護一套程式碼,即可在三種主流作業系統上運行。對於開發者而言,在工作站上執行 Node.js 專案是極其平常的操作,這使得惡意程式能自然地融入開發環境,避開許多傳統僅針對執行檔(EXE)的偵測機制。

此外,該組織將社交工程與專業技術測試結合,利用求職者的心理壓力與對技術挑戰的好奇心,成功繞過了許多技術防禦。儘管 PollCat 嘗試搜尋資安廠商的目錄以偵測環境,但其核心功能依然依賴於受害者的主動執行。

對於企業與開發者而言,此案例提醒我們,即使是看似正常的技術面試作業也可能潛藏風險。在執行來源不明的第三方原始碼前,應優先在隔離的虛擬機(VM)或容器環境中運行,並審查 node_modules 中是否包含未經官方倉庫驗證的本地套件。

本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。