alonebeast002/npmghost
GitHub: alonebeast002/npmghost
一款通过爬取网站 JS 和 Source Map 文件提取 NPM 包名并检测依赖混淆目标的侦察工具。
Stars: 0 | Forks: 0
# NPM Ghost
一款快速的依赖混淆侦察工具,通过抓取 JavaScript 和 source map 文件来提取 NPM 包名,并检查它们是否存在于公共 registry 中。



## 功能
- 抓取目标 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, 依赖混淆, 可自定义解析器, 域名枚举, 实时处理, 数据展示, 文件提取, 无后门, 源映射, 爬虫, 红队, 网络安全, 逆向工具, 隐私保护