alonebeast002/npmghost

GitHub: alonebeast002/npmghost

一款通过爬取网站 JS 和 Source Map 文件提取 NPM 包名并检测依赖混淆目标的侦察工具。

Stars: 0 | Forks: 0

# NPM Ghost 一款快速的依赖混淆侦察工具,通过抓取 JavaScript 和 source map 文件来提取 NPM 包名,并检查它们是否存在于公共 registry 中。 ![Python](https://img.shields.io/badge/Python-3.8%2B-blue?style=flat-square&logo=python) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ![PyPI](https://img.shields.io/badge/PyPI-npmghost-orange?style=flat-square&logo=pypi) ## 功能 - 抓取目标 URL 并提取所有链接的 `.js` 和 `.map` 文件 - 解析 `require()` 调用和 `node_modules/` 引用以提取包名 - 根据 NPM registry 检查每个包 - 标记不存在的包——潜在的依赖混淆目标 - 处理 gzip、deflate 和 brotli 压缩的响应 - 将结果保存为结构化的 JSON 和纯文本输出文件 ## 模式 | 模式 | 描述 | |------|-------------| | 通配符域名 | 运行 subfinder 枚举子域名,然后抓取所有子域名 | | 单个 URL | 直接抓取单个目标 URL | | 子域名列表 | 从包含子域名的 `.txt` 文件进行批量扫描 | | JS / Map 列表 | 直接扫描包含 JS 或 map 文件 URL 的 `.txt` 文件 | ## 安装 ``` pip install npmghost ``` 从源码安装: ``` git clone https://github.com/alonebeast002/npmghost.git cd npmghost pip install . ``` ``` npmghost ``` ## 依赖项 - Python 3.8+ - `chardet` - `brotli`(可选,启用 brotli 解压) - `subfinder`(可选,通配符模式需要) ## 输出文件 | 文件 | 内容 | |------|---------| | `all_packages.txt` | 所有提取的包名 | | `all_urls.txt` | 所有发现的 `.js` 和 `.map` URL | | `all_urls.json` | 相同 URL 的 JSON 格式 | | `npm_ghost_results.json` | 包含包名、版本、状态和源 URL 的完整扫描结果 | ## 免责声明 仅用于授权的安全测试和漏洞赏金研究。请仅在您拥有测试权限的目标上使用。 ## 作者 alonebeast002 — [GitHub](https://github.com/alonebeast002) ## 许可证 [MIT](LICENSE)
标签:BeEF, Bug Bounty, Cilium, CMS安全, JavaScript, NPM, Python, 依赖混淆, 可自定义解析器, 域名枚举, 实时处理, 数据展示, 文件提取, 无后门, 源映射, 爬虫, 红队, 网络安全, 逆向工具, 隐私保护