Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
agentic-ioc-scanner — 用于自主式 AI 编码工具的 IOC 扫描器——检测 Mini Shai-Hulud、Gemini CLI RCE、Cursor CVE-2026-26268 和 DPRK PromptMink。 | Kitploit
工具/GitHubGitHub/dhawaldesai/agentic-ioc-scanner
危害指标 (IOC) 管理静态分析漏洞扫描器代码分析恶意软件分析威胁情报供应链安全论文与研究学习与教育事件响应精选资源
GitHub
3个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
dhawaldesai/agentic-ioc-scanner

agentic-ioc-scanner

用于自主式 AI 编码工具的 IOC 扫描器——检测 Mini Shai-Hulud、Gemini CLI RCE、Cursor CVE-2026-26268 和 DPRK PromptMink。

查看仓库

agentic-ioc-scanner

针对自主AI编码工具的IOC扫描器——检测 Mini Shai-Hulud、Gemini CLI RCE、Cursor CVE-2026-26268 以及 DPRK PromptMink。

一个检测工具包,用于检测自主AI编码助手(Claude Code、Gemini CLI、Cursor)及其拉入仓库的依赖项是否受到危害。共十一个检查项,涵盖钩子注入、RCE配置、恶意依赖、Git钩子后门以及CI工作流篡改。IOC列表外部化——添加新指标无需修改代码。

配套博客文章:When the Tool Fights Back。

包含内容

1. IOC扫描器 (scanner/ais.sh)

十一个检查项,每个检查项下方均内嵌 What:(目的)和 Fix:(修复措施),使得报告自说明。IOC列表存储在 scanner/iocs.txt 中(受版本控制;可通过 IOC_FILE=/path/to/iocs.txt 覆盖)。

§检查项所覆盖威胁
1Claude Code SessionStart 钩子注入(任何 settings.json 中,基于 jq,低误报率)Mini Shai-Hulud 持久化
2Bun运行时的投放器签名(setup.mjs)Mini Shai-Hulud 安装阶段
3混淆后的 execution.js payload——大小 加上 混淆信号(单行、base64、eval(atob(、child_process)Mini Shai-Hulud 凭证窃取器
4$TMPDIR 中的恶意软件锁文件(名称来源于 IOC 列表)Mini Shai-Hulud 哨兵
5package.json 中引用投放器文件名的 preinstall 脚本通用供应链蠕虫入口点
6AI 作者提交(修改 .github/workflows/,经电子邮件白名单过滤)被入侵AI代理身份导致的CI篡改
7.gemini/ 配置文件中包含 shell 元字符模式Gemini CLI CVSS 10.0 RCE(v0.39.1 之前)
8Cursor 的 AGENTS.md 和 .cursor/ 配置引用 git 钩子 / 裸仓库Cursor CVE-2026-26268
9Git post-checkout / post-merge / post-rewrite / pre-commit 钩子包含获取并执行原语,以及 core.hooksPath 重定向到安全白名单之外CVE-2026-26268 执行原语 + 通用钩子劫持
10全局安装和本地的 node_modules 包与 IOC 列表交叉引用Mini Shai-Hulud SAP CAP 集合、DPRK PromptMink、未来恶意包
11Git 远程仓库匹配已知蠕虫外泄仓库名称(Shai-Hulud、A Mini Shai-Hulud has Appeared)确认入侵信号

用法:

root@kitploit:~
bash scanner/ais.sh
# 根据提示输入项目文件夹路径

# 自定义 IOC 列表:
IOC_FILE=./my-iocs.txt bash scanner/ais.sh

# 自定义报告路径(默认为 ./agentic-ioc-scan-YYYYMMDD-HHMMSS.log):
REPORT_FILE=/var/log/agentic-scan.log bash scanner/ais.sh

输出

  • 发现结果同时输出到终端(彩色)和纯文本报告文件(默认为 agentic-ioc-scan-YYYYMMDD-HHMMSS.log,通过 tee → sed 剥离 ANSI 转义码)。
  • 严重级别标签:[CRITICAL](立即行动)、[WARNING](可能恶意,需验证)、[REVIEW](可能合法使用,需确认)、[OK](干净)。
  • 文件内容发现结果包含指标所在 行号(path:line 格式)。展示行号的检查项:§1 钩子、§2 Bun 签名、§3 混淆信号、§5 preinstall 关键词、§7 Gemini 元字符、§8 AGENTS.md git-hook 引用、§9 可疑钩子内容。
  • §11 蠕虫远程仓库发现结果还会报告存在问题的 .git/config 行 以及匹配的远程 URL,以便直接跳转到需要删除的条目。
  • core.hooksPath 重定向(§9)报告仓库的 .git/config 绝对路径,使重新分配可审计。
  • 工作树感知:当 .git 是一个文件(包含 gitdir: …)时,会在检查前解析出实际的 git 目录。

示例发现

root@kitploit:~
[CRITICAL] 仓库指向已知蠕虫外泄名称
           仓库:   /home/dev/projects/myrepo
           配置:   /home/dev/projects/myrepo/.git/config:9
           URL:    https://github.com/dhawaldesai/A-Mini-Shai-Hulud-has-Appeared

[CRITICAL] 恶意钩子: /home/dev/projects/myrepo/.claude/settings.json:3
[CRITICAL] 可疑 git post-checkout 钩子: /home/dev/projects/myrepo/.git/hooks/post-checkout:2

更新 IOC

编辑 scanner/iocs.txt 并更新 # version: 头部。格式为 TYPE|VALUE|NOTES。支持的类型:

当新 IOC 出现时无需修改代码——扫描器启动时读取并打印加载的版本于横幅中。

依赖项

必需:bash、find、grep、awk、sed、git。可选:jq(§1 首选,缺失时回退到 grep 启发式)、npm(§10 全局包检查必需,不可用时该检查项静默跳过)。

2. 受影响包版本扫描器 (scanner/pkg_version_check.sh)

IOC 扫描器的配套工具。读取受影响的 package,version 对的 CSV(例如 Mini Shai-Hulud IOC 源文件 ~/Downloads/Mini Shai-Hulud - Sheet1.csv——633 个 npm 包/版本对)并检查它们是否出现在:

  1. 用户提供的本地项目目录——扫描 package.json、package-lock.json、yarn.lock、pnpm-lock.yaml 以及已安装的 node_modules/<pkg>/package.json。当 CSV 包含未作用域名称时,也会检查 PyPI 清单(requirements.txt、poetry.lock、Pipfile.lock)。
  2. 用户的 GitHub 仓库——通过 gh CLI:跨锁文件类型进行代码搜索,然后通过依赖图 SBOM API(/repos/{owner}/{repo}/dependency-graph/sbom)进行精确版本验证。

严重性模型: 锁文件、node_modules/ 或 SBOM 中精确匹配 pkg@version → [CRITICAL]。范围指定符(^1.2.3、~1.2.3、>=…)可能包含受影响版本 → [REVIEW]。仅包名匹配但版本不确认 → [REVIEW]。输出同时流向终端和 ./shai-hulud-pkg-scan-YYYYMMDD-HHMMSS.log(剥离 ANSI 转义码),末尾附带严重性分类摘要。

用法:

root@kitploit:~
# 交互式——提示输入项目目录
bash scanner/pkg_version_check.sh

# 完全脚本化(环境变量覆盖)
PROJECT_DIR=/path/to/project \
  IOC_CSV="$HOME/Downloads/Mini Shai-Hulud - Sheet1.csv" \
  REPORT_FILE=/var/log/pkg-scan.log \
  bash scanner/pkg_version_check.sh --skip-node-modules

CSV 格式: 第1列 = 包名(支持作用域名称如 @scope/pkg),第2列 = 精确受影响版本。自动检测并跳过表头行。通过 IOC_CSV=… 覆盖路径。

依赖项: bash、find、grep、awk、sed。可选:jq(提高 node_modules/<pkg>/package.json 解析准确性)、gh(GitHub 阶段必需——若缺失或未认证,该阶段会静默跳过并附带清晰提示)。

已知限制:

  • GitHub 代码搜索会忽略大于384KB的锁文件,且仅索引默认分支——SBOM 路径是权威检查。
  • GitHub 阶段受速率限制(已验证用户10 req/min);大约每7秒处理5个包,因此完整的633行 CSV 在 GitHub 上需要约22分钟。建议先运行本地扫描,再单独运行 GitHub 阶段。
  • 锁文件解析基于 grep,未完全解析——深层嵌套或非常规格式可能导致漏报。最高价值的后续改进是基于 jq 的锁文件解析。
  • SBOM API 要求仓库的依赖图已启用并已索引;未满足条件的仓库回退为 [REVIEW]。

3. Claude Code 安全策略 (claude-code-policy/)

Claude Code 的预防层,补充上述检测层。

  • 阻止项目级钩子运行(allowManagedHooksOnly)
  • 阻止写入 .claude/settings.json
  • 阻止执行已知投放器模式
  • 阻止来自代理工具使用的 curl、wget 和 bun 命令

安装:

root@kitploit:~
# 复制托管设置(项目无法覆盖)
cp claude-code-policy/managed-settings.json ~/.claude/managed-settings.json

# 复制 PreToolUse 钩子
mkdir -p ~/.claude/hooks
cp claude-code-policy/hooks/block_shai_hulud.py ~/.claude/hooks/
chmod +x ~/.claude/hooks/block_shai_hulud.py

路线图 / 已知缺口

  • 相当于 §10 的 PyPI 全局扫描(目前仅连接了 npm ls -g)。
  • 服务端 pre-receive 钩子,拒绝从非白名单作者推送添加 .claude/settings.json、.vscode/tasks.json 或 .gemini/ 文件。
  • 可选集成 GitHub 推送保护 / Advanced Security。

参考

  • When the Tool Fights Back — 配套分析
  • Sophos: Mini Shai-Hulud supply chain attack on SAP npm packages
  • Mend.io: Shai-Hulud strikes SAP — supply chain worm weaponizes Claude Code
  • Wiz: Mini Shai-Hulud supply chain on SAP npm
  • Novee Security: Google Gemini CLI RCE — CVSS 10.0 advisory
  • The Hacker News: Google fixes CVSS 10 Gemini CLI CI/CD RCE (also covers Cursor CVE-2026-26268)
  • ReversingLabs: PromptMink — DPRK malware inserted into codebase via Claude
  • Endor Labs: Mini Shai-Hulud returns — 42 malicious npm packages with fake Sigstore badges in @antv ecosystem attack

贡献

欢迎提交 Issue 和 PR——特别是新的 IOC 提交(添加到 scanner/iocs.txt 并更新版本头)、额外的平台特定扫描根目录,以及相邻自主工具(Continue、Cody、Codex CLI、Aider)的检测模式。

许可

MIT

下载工具
类型使用方示例
FILENAME§5 preinstall 模式setup.mjs
LOCKFILE§4 锁文件扫描tmp.987654321.lock
NPM§10 全局 + 本地包扫描@validate-sdk/v2
PYPI§10(待添加 PyPI 扫描器时交叉检查)lightning
HOOKSTRING§1 钩子内容匹配(当前为内联编码)SessionStart
REPONAME§11 git 远程匹配A Mini Shai-Hulud has Appeared
EMAILSUBSTRING保留给未来提交作者 IOC 匹配—
CONFIGPATH自主工具配置路径的引用列表.claude/settings.json