🚨 紧急!Axios 供应链投毒已爆发:你的电脑/WSL/macOS 可能已被植入远程木马,立即自查!

今天(2026年3月31日)确实发生了 Axios 供应链投毒事件:恶意版本 [email protected] 和 [email protected] 被发布(通过维护者账号被劫持),它们偷偷引入了一个假依赖 [email protected],其 postinstall 脚本会在 npm install 时自动下载并执行跨平台远程访问木马(RAT)。恶意脚本执行后会自我删除痕迹,伪装成系统进程连接 C2 服务器。

受影响平台包括 Windows(含 WSL)、macOS 和 Linux。npm 已下架恶意版本,但如果你在事件窗口内(大致今天早些时候)执行过 npm install(或 yarn、pnpm、bun 等)并拉到了这两个版本,就可能已中招。

1. WSL(Windows Subsystem for Linux)如何自查是否运行了恶意脚本?

WSL 里的 Linux 环境会受到 Linux 版本的 payload 影响(常见落地在 /tmp/ld.py 等临时路径),同时可能影响宿主 Windows。

立即执行以下检查命令(在 WSL 的终端里运行):

# 1. 检查项目中是否安装了恶意 axios 版本
npm list axios 2>/dev/null | grep -E "1.14.1|0.30.4"
# 或检查 lockfile(推荐)
grep -E "axios.*(1.14.1|0.30.4)" package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null

# 2. 检查恶意依赖是否存在(即使被删,也可能残留)
ls -la node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ 发现可疑依赖!"

# 3. 检查 Linux payload 落地痕迹
ls -la /tmp/ld.py /tmp/*.py 2>/dev/null && echo "⚠️ 可能中招"
ls -la /tmp/ 2>/dev/null | grep -E "ld|setup"

# 4. 检查进程(看是否有可疑的 Python 或持久化进程)
ps aux | grep -E "python|node|ld.py|setup.js"
netstat -tuln | grep -E "8000|unknown"  # C2 可能用 8000 等端口(参考 IOC:sfrclak.com:8000)

# 5. 检查可疑启动项或 cron
crontab -l
ls -la /etc/cron.* /var/spool/cron 2>/dev/null

额外 WSL 宿主检查(在 Windows PowerShell / CMD 中运行):

  • 检查 WSL 是否有异常分发或进程:wsl --list --verbose
  • 查看是否从 WSL 访问了 Windows 文件(恶意脚本可能跨边界)。

如果发现异常:

  • 立即停止相关进程。
  • 删除项目 node_modules 并用安全版本重装:npm install [email protected](或更早安全版),并锁定版本。
  • 考虑重建 WSL 分发(wsl --unregister <Distroname> 后重新安装)。
  • 轮换所有凭证(SSH key、npm token、云密钥等),因为 RAT 可能已窃取。

2. macOS 如何自查?

macOS payload 主要落地在 /Library/Caches/com.apple.act.mond(伪装成 Apple 系统进程),并可能用 launchctl 持久化。

立即执行以下命令(在 Terminal 中):

# 1. 检查恶意 axios 版本(同上)
npm list axios 2>/dev/null | grep -E "1.14.1|0.30.4"
grep -E "axios.*(1.14.1|0.30.4)" package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null

# 2. 检查恶意依赖
ls -la node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ 发现可疑依赖!"

# 3. 检查 macOS 专属 payload(最重要)
ls -la /Library/Caches/com.apple.act.mond 2>/dev/null && echo "⚠️ COMPROMISED!发现恶意文件"

# 4. 检查 launchd 启动项(持久化机制)
launchctl list | grep -i "com.apple.act|mond"
ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons 2>/dev/null | grep -i "act|mond"

# 5. 检查可疑进程
ps aux | grep -E "com.apple.act.mond|mond|setup"
netstat -an | grep -E "8000"  # 检查 C2 连接

# 6. 检查最近的 npm/yarn 执行历史(辅助)
history | grep -E "npm install|yarn|pnpm"

如果发现 /Library/Caches/com.apple.act.mond 或相关启动项:

  • 立即删除:sudo rm -f /Library/Caches/com.apple.act.mond
  • 移除启动项:launchctl bootout system /Library/LaunchDaemons/xxx.plist(替换对应文件)
  • 重启 macOS。
  • 强烈建议:用 Malwarebytes、XProtect(系统自带)或 Little Snitch 等工具全盘扫描;轮换所有密码和密钥;考虑 Time Machine 恢复到事件前状态,或重装系统(如果高度怀疑已持久化)。

以下是更新后的完整自查与清理指南(2026年3月31日 Axios 供应链投毒事件),已新增 原生 Windows 平台 的自查和删除命令。

恶意版本 [email protected] 和 [email protected] 通过劫持维护者账号发布,引入假依赖 [email protected],其 postinstall 脚本会自动下载并执行跨平台远程访问木马(RAT)。恶意脚本执行后会自我删除大部分痕迹,仅留下少量持久化 artifact。C2 服务器为 sfrclak.com:8000(IP: 142.11.206.73)。npm 已下架恶意版本。

受影响平台:Windows(原生)、WSL、macOS、Linux。

3. Windows(原生)如何自查与清理?

Windows payload 会将 PowerShell 复制到 %PROGRAMDATA%wt.exe(伪装成 Windows Terminal),并通过临时 VBS + PowerShell 脚本执行 RAT。临时文件通常自删,但 wt.exe 是主要持久化痕迹。

在管理员权限的 PowerShell 或 CMD 中立即执行以下命令:

# 1. 检查项目中是否安装了恶意 axios 版本
npm list axios 2>$null | Select-String "1.14.1|0.30.4"
# 或检查 lockfile(推荐)
Get-Content package-lock.json, yarn.lock, pnpm-lock.yaml -ErrorAction SilentlyContinue | Select-String "axios.*(1.14.1|0.30.4)"

# 2. 检查恶意依赖
if (Test-Path "node_modulesplain-crypto-js") { Write-Host "⚠️ 发现可疑依赖!" -ForegroundColor Red }

# 3. 检查 Windows 专属 payload(最重要)
if (Test-Path "$env:PROGRAMDATAwt.exe") { Write-Host "⚠️ COMPROMISED!发现恶意 wt.exe" -ForegroundColor Red }

# 检查临时残留文件(即使被删,也可能有痕迹)
Get-ChildItem $env:TEMP -Filter "*6202033*" -ErrorAction SilentlyContinue | ForEach-Object { Write-Host "⚠️ 可疑临时文件: $($_.FullName)" -ForegroundColor Yellow }

# 4. 检查可疑进程(伪装的 PowerShell 或 RAT)
Get-Process | Where-Object { $_.Path -like "*wt.exe*" -or $_.ProcessName -match "powershell|cmd" } | Select-Object Id, ProcessName, Path

# 5. 检查网络连接(C2)
netstat -ano | findstr ":8000"
# 或用 PowerShell 查看
Get-NetTCPConnection | Where-Object { $_.RemotePort -eq 8000 } | Select-Object LocalPort, RemoteAddress, RemotePort, State

# 6. 检查持久化(Run 注册表项等)
Get-ItemProperty "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" -ErrorAction SilentlyContinue | Select-Object *MicrosoftUpdate*
Get-ItemProperty "HKLM:SoftwareMicrosoftWindowsCurrentVersionRun" -ErrorAction SilentlyContinue | Select-Object *MicrosoftUpdate*

如果发现 %PROGRAMDATA%wt.exe 或可疑进程:

# 立即停止相关进程
Get-Process -Name "wt" -ErrorAction SilentlyContinue | Stop-Process -Force

# 删除恶意文件
Remove-Item "$env:PROGRAMDATAwt.exe" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:TEMP6202033*" -Force -ErrorAction SilentlyContinue

# 检查并清理注册表持久化(如果存在)
Remove-ItemProperty "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" -Name "MicrosoftUpdate" -ErrorAction SilentlyContinue

额外建议:

  • 重启电脑后再次检查。
  • 用 Windows Defender 全盘扫描,或推荐 Malwarebytes / ESET 等工具。
  • 强烈建议:轮换所有凭证(GitHub、npm、云密钥、SSH 等),因为 RAT 可能已窃取数据。
  • 删除项目 node_modules,清理 npm 缓存:npm cache clean --force,然后锁定安全版本重装。

通用修复建议(无论 WSL 还是 macOS)

  • 锁定安全版本:在 package.json 中固定 "axios": "^1.14.0"(或更早确认安全的版本),删除 node_modules 和 lockfile 后重新 npm install --ignore-scripts(避免再次触发 postinstall)。
  • 检查全局 npm:npm list -g axios
  • 未来防护:始终用 --ignore-scripts 安装未知包;在 CI/CD 中强制;用 npm audit 或 Snyk 等工具扫描。
  • 如果项目用了依赖链(很多前端框架间接依赖 axios),务必检查 package-lock.json 等 lockfile。
  • 已中招的话,立即隔离机器,轮换所有敏感凭证(GitHub、npm、云账号、SSH 等),因为 RAT 可能已外传数据。

事件刚发生,IOC 和清理脚本可能还会更新,建议关注腾讯云安全、慢雾、StepSecurity 或国内安全社区的最新通告。

Comments

No comments yet. Why don’t you start the discussion?

    Leave a Reply

    Your email address will not be published. Required fields are marked *