shayr1/shai-hulud-scan
GitHub: shayr1/shai-hulud-scan
一个 Claude Code 技能插件,用于检测工作站是否被 Mini Shai-Hulud 供应链蠕虫感染,通过五阶段诊断扫描排查死人开关、持久化钩子、恶意文件、受污染包版本和 C2 网络连接等危害指标。
Stars: 1 | Forks: 0
# shai-hulud-scan
一个 [Claude Code](https://claude.com/claude-code) 技能,用于扫描机器是否存在 **Mini Shai-Hulud** 供应链蠕虫([CVE-2026-45321](https://nvd.nist.gov/vuln/detail/CVE-2026-45321),CVSS 9.6)的危害指标 (IOCs)。
## 什么是 Mini Shai-Hulud?
一种自我传播的供应链蠕虫,于 2026 年 5 月 11 日感染了 170 多个 npm/PyPI 包——包括 `@tanstack/*`、`@mistralai/*`、`@uipath/*` 和 `@opensearch-project/*`。它会窃取凭据,通过开发者工具进行持久化,并安装一个“死人开关”,如果你在移除它之前撤销了 token,它就会擦除你的主目录。
威胁行为者:**TeamPCP**
## 此技能的功能
运行 5 次诊断扫描,检查蠕虫痕迹。完全透明——每个命令在执行前都会显示,并且未经你的明确批准不会运行任何内容。
| 阶段 | 检查项 | 原因 |
|------|-------|-----|
| 1 | 死人开关 (`gh-token-monitor`) | 如果在移除前撤销 token,将擦除 `~/` |
| 2 | 持久化钩子 (Claude Code、VS Code、GitHub Actions) | 在 IDE 启动时重新执行蠕虫 |
| 3 | 恶意文件 (`router_init.js`、`tanstack_runner.js`) | 包移除后 Payload 仍然存在 |
| 4 | Lockfile 中受损的包版本 | 受影响的 @tanstack、@mistralai、@uipath、@opensearch 版本 |
| 5 | 网络 IOCs(可选) | 活跃的 C2 连接和 DNS 解析 |
### 每个阶段的工作原理
1. 解释它检查的内容及其重要性
2. 向你展示它将运行的**确切 shell 命令**
3. 在运行任何内容之前征求你的批准
4. 报告结果:CLEAN (安全)、INFECTED (已感染) 或 SKIPPED (已跳过)
5. 如果被感染,将按正确顺序打印修复步骤
## 跨平台支持
- **macOS** - LaunchAgents、launchctl、lsof、shasum
- **Linux** - systemd、ss、sha256sum
- **Windows WSL** - Linux 检查 + PowerShell 用于 Windows 侧检查
- **Windows** - PowerShell 原生 (Get-ScheduledTask、Get-FileHash、Resolve-DnsName)
## 安装
### 作为 Claude Code 插件
```
/plugin marketplace add shayr1/shai-hulud-scan
/plugin install shai-hulud-scan
```
然后运行:`/shai-hulud-scan`
### 手动安装
```
git clone https://github.com/shayr1/shai-hulud-scan.git /tmp/shai-hulud-scan
mkdir -p ~/.claude/skills/shai-hulud-scan
cp /tmp/shai-hulud-scan/SKILL.md ~/.claude/skills/shai-hulud-scan/SKILL.md
```
然后运行:`/shai-hulud-scan`
## 示例输出
```
Detected platform: macOS. All commands below are tailored for this environment.
### 阶段 1: Dead-Man's Switch
The worm installs a daemon called `gh-token-monitor` that polls GitHub every
60 seconds. If it detects that your GitHub token has been revoked, it executes
`rm -rf ~/` - wiping your entire home directory.
Commands that will run:
test -f ~/Library/LaunchAgents/com.user.gh-token-monitor.plist && echo "FOUND" || echo "NOT FOUND"
launchctl list 2>/dev/null | grep gh-token-monitor || echo "NOT FOUND"
test -f ~/.local/bin/gh-token-monitor.sh && echo "FOUND" || echo "NOT FOUND"
> Approve running these commands? [Approve / Skip]
Pass 1 - Dead-man's switch: CLEAN
```
```
## Scan Complete - Results
| Pass | Check | Result |
|------|-----------------------|---------|
| 1 | Dead-man's switch | CLEAN |
| 2 | Persistence hooks | CLEAN |
| 3 | Malicious files | CLEAN |
| 4 | Compromised packages | CLEAN |
| 5 | Network IOCs | SKIPPED |
CVE: CVE-2026-45321 | CVSS: 9.6 | Threat Actor: TeamPCP
```
## IOC 参考
### 文件哈希 (SHA256)
- `ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c` - router_init.js
- `2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96` - tanstack_runner.js
- `2258284d65f63829bd67eaba01ef6f1ada2f593f9bbe41678b2df360bd90d3df` - setup.mjs
### C2 基础设施
- `git-tanstack.com` (域名仿冒)
- `api.masscan.cloud` (机密数据渗出)
- `filev2.getsession.org` (Session 协议数据渗出)
- `83.142.209.194` (mistralai 凭据窃取器)
### 持久化路径
- `~/Library/LaunchAgents/com.user.gh-token-monitor.plist` (macOS)
- `~/.config/systemd/user/gh-token-monitor.service` (Linux)
- `~/.local/bin/gh-token-monitor.sh` (macOS/Linux)
- `~/.claude/router_runtime.js`、`~/.claude/setup.mjs`
- `.vscode/setup.mjs`、`.github/workflows/codeql_analysis.yml`
### Lockfile 标记
- `voicproducoes` (攻击者 npm 账号)
- `79ac49eedf` (孤立 commit hash 前缀)
## 来源
- [The Hacker News - Mini Shai-Hulud 蠕虫感染 TanStack、Mistral AI 等](https://thehackernews.com/2026/05/mini-shai-hulud-worm-compromises.html)
- [Wiz Blog - Mini Shai-Hulud 再次来袭](https://www.wiz.io/blog/mini-shai-hulud-strikes-again-tanstack-more-npm-packages-compromised)
- [Snyk - TanStack npm 包遭 Mini Shai-Hulud 攻击](https://snyk.io/blog/tanstack-npm-packages-compromised/)
- [StepSecurity - TeamPCP 的 Mini Shai-Hulud 卷土重来](https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem)
## 许可证
MIT
标签:AI合规, C2通信检测, Claude Code 技能, Claude Code 插件, Cutter, CVE-2026-45321, DNS 解析, GitHub Actions 安全, IOC 扫描, IP 地址批量处理, Mini Shai-Hulud, npm 安全, OpenCanary, PyPI 安全, VS Code 安全, 供应链攻击, 凭据窃取防护, 包管理器安全, 威胁情报, 库, 应急响应, 应用安全, 开发者工具, 恶意软件扫描, 持久化后门检测, 文档安全, 无线安全, 死开关防范, 网络信息收集, 网络安全, 蠕虫病毒检测, 跨平台安全工具, 隐私保护