yavuzscnplt/vulnpilot
GitHub: yavuzscnplt/vulnpilot
基于 Claude 大模型编排的 Web 应用安全扫描器,通过智能规划、调度 nuclei/subfinder 等工具及内置探针,实现自动化漏洞扫描与结果分类报告。
Stars: 0 | Forks: 0
# 🛡️ VulnPilot
**AI 编排的 Web 应用安全扫描器。**
VulnPilot 使用由 Claude 驱动的“大脑”来规划安全扫描,驱动成熟的开源工具(nuclei, subfinder)以及内置探针,然后将结果分类整理成人类可读的报告——JSON, Markdown 和独立的 HTML 页面。
它是一个**安全编排器**,而不是又一个扫描器:它没有重新发明检测引擎,而是让优秀的引擎协同工作,并在其上添加判断层。
[](https://github.com/yavuzscnplt/vulnpilot/actions/workflows/ci.yml)



## ⚠️ 免责声明 / 法律声明
VulnPilot **仅供授权的安全测试使用。** 仅对您拥有或获得明确书面测试许可的系统运行它。
## 工作原理
```
┌──────────┐ ┌───────────────┐ ┌──────────────┐
│ Hedef │ ──▶ │ 🧠 AI PLAN │ ──▶ │ ▶ EXECUTE │
└──────────┘ │ araç seçimi │ │ araçları koş │
└───────────────┘ └──────┬───────┘
│
┌───────────────┐ ▼
📄 Rapor ◀────── │ 📝 AI TRİAJ │ ◀── bulguları topla
JSON/MD/HTML │ özet + öncelik │
└───────────────┘
```
1. **规划** — Claude 查看目标及该机器上可用的工具,并选择安全的扫描计划(不会建议破坏性/DoS 操作)。
2. **执行** — 选定的工具依次运行。如果没有外部工具,内部的 Python 探针依然能产生真实的发现。
3. **解读** — Claude 将原始发现转化为执行摘要 + 优先处理的修复列表。
## 工具
| 工具 | 类型 | 功能 | 要求 |
|------|-----|----------|------------|
| `http_probe` | 内置 | 安全标头、Cookie 标志、技术信息泄露 | — (始终运行) |
| `tls_probe` | 内置 | TLS 版本 + 证书有效性/过期时间 | — (始终运行) |
| `nuclei` | 外部 | 已知漏洞/CVE 及错误配置扫描 | [`nuclei`](https://github.com/projectdiscovery/nuclei) |
| `subfinder` | 外部 | 被动子域名发现 | [`subfinder`](https://github.com/projectdiscovery/subfinder) |
添加新工具只需一个文件:继承 `Tool` 类,并使用 `@register` 标记。
## 安装说明
```
git clone https://github.com/yavuzscnplt/vulnpilot.git
cd vulnpilot
pip install -e .
# AI beyni için (opsiyonel):
pip install -e ".[ai]"
cp .env.example .env # ve ANTHROPIC_API_KEY doldur
```
外部工具(可选,用于更深入的扫描):
```
# ProjectDiscovery araçları — Go gerekir
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
```
## 用法
```
# Kayıtlı araçları ve durumlarını gör
vulnpilot tools
# Bir hedefi tara (yetki onayı ister)
vulnpilot scan https://ornek.com
# Kendi lokal uygulamanı test et, onayı atla, raporu aç
vulnpilot scan http://localhost:8080 --yes --open
# Rapor klasörünü değiştir
vulnpilot scan https://ornek.com -o ./ciktilar
```
输出: `reports/_.{json,md,html}`
### 终端输出示例
```
╭───────────────────────────╮
│ VulnPilot v0.1 │
│ AI-orkestralı güvenlik... │
╰───────────────────────────╯
Hedef: http://localhost:8080 (lokal/özel)
Kullanılabilir araçlar: http_probe, tls_probe
AI beyni: açık
🧠 AI araç planı çıkarıyor
📋 http_probe, tls_probe
▶ http_probe
✓ http_probe: 4 bulgu
▶ tls_probe
✓ tls_probe: 1 bulgu
📝 AI özet/triaj yazıyor
```
## 架构
```
vulnpilot/
├── cli.py # Typer + Rich terminal arayüzü
├── config.py # ortam değişkeni tabanlı ayarlar
├── scope.py # yetki/kapsam koruması (etik omurga)
├── llm.py # Claude sarmalayıcı + AI-kapalı fallback
├── orchestrator.py # plan → execute → interpret döngüsü
├── models.py # tipli veri modelleri (Finding, ScanReport…)
├── report.py # JSON / Markdown / HTML üretimi
└── tools/ # eklenti araçlar (@register ile kaydolur)
├── base.py # Tool ABC + registry
├── http_probe.py
├── tls_probe.py
├── nuclei.py
└── subfinder.py
```
设计原则:插件架构(新工具 = 一个文件)、优雅降级(即使缺少工具/AI 也能运行)、单文件可共享 HTML 报告,以及**授权优先** — 未经批准绝不发送任何流量。
## 开发
```
pip install -e ".[dev]"
pytest # testler (ağ/harici araç gerektirmez)
ruff check . # lint
```
## 路线图
- [ ] 用于主动扫描的 OWASP ZAP 集成
- [ ] API (REST/GraphQL) endpoint 发现和 fuzzing
- [ ] 并行工具执行
- [ ] 自主代理模式(AI 尝试自己的 payload)
- [ ] SARIF 输出(CI/CD 集成)
## 许可证
MIT — 详情请见 [LICENSE](LICENSE)。
标签:AI编排, Python, Web安全扫描, 主机安全, 动态插桩, 实时处理, 密码管理, 无后门, 自动化安全工具, 逆向工具