janderik/vuln-forge
GitHub: janderik/vuln-forge
一款集端口扫描、服务检测、Web 漏洞探测和 CVE 匹配于一体的并发漏洞扫描器,支持生成专业 HTML 和 JSON 报告。
Stars: 0 | Forks: 0
# VulnForge 🔍
[](https://github.com/vulnforge/vulnforge/actions/workflows/ci.yml)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
[]()
**VulnForge** 是一款针对网络服务和 Web 应用的全面、并发漏洞扫描器。它将端口扫描、服务指纹识别、Web 漏洞测试和 CVE 匹配整合到一个单一的 CLI 工具中,并提供丰富的输出和专业的报告。
## 功能
- **端口扫描器** — TCP connect 扫描和模拟 SYN 扫描,支持可配置的端口范围和并发
- **服务检测** — 对 HTTP、SSH、FTP、MySQL、PostgreSQL、Redis 等进行 Banner 抓取和指纹识别
- **Web 漏洞扫描器** — 反射型 XSS 检测、SQL 注入探测、目录枚举、安全标头分析、cookie 审计
- **CVE 检查器** — 内置约 50 条针对 Apache、Nginx、OpenSSH、MySQL、PostgreSQL、Redis、IIS 等的真实 CVE 数据库;可选的 CIRCL API 丰富功能
- **报告生成** — 专业的 HTML(包含严重程度徽章、表格、摘要卡片)和 JSON 输出
- **丰富的 CLI** — 通过 `rich` 库实现彩色输出、进度提示和基于严重程度的格式化
- **并发架构** — 完全支持 async/await 和信号量限制的并发
## 架构
```
vuln-forge/
├── src/
│ ├── cli.py # CLI entry point (click + rich)
│ ├── scanners/
│ │ ├── base.py # Abstract BaseScanner + ScanResult dataclass
│ │ ├── port_scanner.py # TCP/SYN port scanning
│ │ ├── service_detector.py # Banner grabbing + service fingerprinting
│ │ ├── web_vuln.py # XSS, SQLi, directory busting, header analysis
│ │ └── cve_checker.py # CVE matching (local DB + CIRCL API)
│ ├── report/
│ │ └── generator.py # HTML & JSON report generation
│ └── db/
│ └── cve_cache.py # SQLite-backed CVE cache with ~50 built-in entries
├── tests/ # pytest test suite
├── data/payloads/ # XSS payload library
└── Dockerfile # Containerized deployment
```
## 安装说明
```
# 从 source
git clone https://github.com/vulnforge/vulnforge.git
cd vulnforge
pip install -r requirements.txt
pip install -e .
# 使用 Docker
docker build -t vulnforge .
docker run --rm vulnforge --help
```
## 使用说明
```
Usage: vulnforge scan [OPTIONS] TARGET
Options:
-p, --ports TEXT Port range (e.g. 22,80,443 or 1-1000)
--scan-type [tcp_connect|syn]
--timeout FLOAT Timeout per port in seconds
--concurrency INTEGER Max concurrent connections
--service-detect Enable service detection
--web-scan Enable web vulnerability scan
--cve-check Enable CVE matching
--circl-api Use CIRCL API for CVE lookups
-o, --output TEXT Output file path
-f, --format [html|json] Output format
-v, --verbose Enable debug logging
--help Show help
```
### 示例
```
# 包含所有模块的完整扫描
vulnforge scan example.com
# 快速端口扫描
vulnforge scan 192.168.1.1 -p 22,80,443,3306 --service-detect
# 仅进行 Web 漏洞扫描
vulnforge scan https://example.com --web-scan -o report.html
# 结合 CVE 匹配 + CIRCL API 进行扫描
vulnforge scan target.local --cve-check --circl-api
# 查找特定产品的 CVE
vulnforge cves Apache --version 2.4.49
# 列出可用的 XSS payloads
vulnforge list-payloads
# JSON 输出
vulnforge scan example.com -f json -o scan.json
```
## CVE 数据库
VulnForge 内置了一个基于 SQLite 的 CVE 数据库,包含约 50 条记录,涵盖:
| Product | Sample CVEs |
|------------|------------------------------------------------|
| Apache | CVE-2023-25690, CVE-2022-26377, CVE-2024-24795 |
| Nginx | CVE-2023-44487, CVE-2021-23017, CVE-2024-24989 |
| OpenSSH | CVE-2024-6387 (regreSSHion), CVE-2023-38408 |
| MySQL | CVE-2023-21971, CVE-2023-22053, CVE-2023-22102 |
| PostgreSQL | CVE-2023-2454, CVE-2023-2455, CVE-2024-0985 |
| Redis | CVE-2022-0543, CVE-2023-41056, CVE-2023-45145 |
| IIS | CVE-2023-38171, CVE-2023-36418 |
| 及更多 | SMB, RDP, VNC, MongoDB, WinRM, FTP, SMTP |
## 测试
```
pytest tests/ -v
pytest tests/ -v --coverage --cov=src
```
## 许可证
MIT 许可证 — 见 [LICENSE](LICENSE)。
标签:CISA项目, Claude, CVE检测, Python, Web安全, 加密, 安全规则引擎, 密码管理, 异步并发, 插件系统, 数据统计, 无后门, 漏洞扫描器, 端口扫描, 蓝队分析, 请求拦截, 逆向工具