SakshamSrivastava92110/VulnHawk

GitHub: SakshamSrivastava92110/VulnHawk

一款覆盖 OWASP Top 10 的全栈 Web 漏洞扫描器,集成 ML 严重性分类、威胁情报富集和自动化 PDF 报告生成。

Stars: 1 | Forks: 0

# 🛡️ VulnHawk — OWASP Top 10 Web 漏洞扫描器

VulnHawk 是一款先进的全栈 Web 应用程序漏洞扫描器,它使用主动探测、基于 ML 的严重性分类、CVE 富集以及自动化 PDF 报告来测试所有 OWASP Top 10 (2021) 漏洞类别——所有这些都封装在一个实时终端风格的 Web 仪表板中。

## 📸 仪表板预览 ``` ╔══════════════════════════════════════════════════════════╗ ║ 🛡 VULNHAWK STATUS: ACTIVE FINDINGS: 14 ║ ╠══════════════════════════════════════════════════════════╣ ║ TARGET: http://testphp.vulnweb.com ║ ║ ████████████████████████░░░ 87% ║ ║ 🤖 Running ML severity classifier... ║ ╠══════════════╦═══════════════════════════════════════════╣ ║ RISK: HIGH ║ FINDINGS TABLE ║ ║ CRIT: 2 ║ # Vulnerability Severity Score ║ ║ HIGH: 5 ║ 1 SQL Injection CRITICAL 95 ║ ║ MED: 4 ║ 2 Reflected XSS HIGH 78 ║ ║ LOW: 3 ║ 3 Missing HSTS MEDIUM 52 ║ ╚══════════════╩═══════════════════════════════════════════╝ ``` ## ✨ 主要特性 ### 🔍 扫描模块 | 模块 | OWASP | 检测内容 | |--------|-------|-----------------| | **SQL 注入** | A03:2021 | 基于错误、基于时间盲注、布尔盲注、NoSQL | | **跨站脚本攻击** | A03:2021 | 反射型、基于 DOM、过滤器绕过载荷 | | **安全头** | A05:2021 | 缺少 HSTS、CSP、X-Frame-Options、cookie 标志 | | **SSRF** | A10:2021 | 内部端点、云元数据 (AWS/GCP/Azure) | | **路径遍历 / LFI** | A01:2021 | Unix/Windows 遍历、编码变体 | ### 🤖 ML 严重性分类器 - 在漏洞特征向量上训练的 **Gradient Boosting** 模型 - 特征:漏洞类型、CVSS 分数、检测置信度、参数上下文、OWASP 排名 - 输出:`ml_severity`、`ml_confidence`、`exploitability_score` (0–100) - 在首次运行时自动训练并缓存模型 (`ml/vulnhawk_model.pkl`) ### 🌐 威胁情报 - **NIST NVD API v2.0** — 根据 CWE/漏洞类型获取相关的 CVE - **AbuseIPDB** — 对目标 IP 的恶意活动历史进行评分 - **HaveIBeenPwned** — 检查目标域名是否出现在已知的数据泄露中 ### 📊 实时仪表板 - 实时 WebSocket 进度更新 - 交互式严重性条形图、OWASP 环形图 - 带有可利用性评分且可过滤的发现结果表 - 点击展开的详细模态框,包含 CVE、MITRE ATT&CK 映射、修复建议 ### 📄 PDF 报告 - 自动生成、专业样式的 PDF,包含: - 执行摘要和风险评级 - 每项发现结果的详细区块,包含证据和修复建议 - MITRE ATT&CK® 覆盖矩阵 - 优先级修复路线图 - 威胁情报数据(IP 信誉、违规记录) ## 🏗️ 架构 ``` VulnHawk/ ├── api/ │ └── main.py ← FastAPI app + WebSocket engine + scan orchestrator ├── scanner/ │ ├── crawler.py ← Async BFS web crawler (URLs, forms, params) │ ├── sqli.py ← SQL Injection scanner (3 detection methods) │ ├── xss.py ← XSS scanner (Reflected + DOM-based) │ ├── headers.py ← HTTP headers + cookie + TLS auditor │ └── ssrf.py ← SSRF + Path Traversal scanner ├── ml/ │ └── classifier.py ← Gradient Boosting severity classifier ├── intel/ │ └── cve_lookup.py ← NVD CVE + AbuseIPDB + HIBP integration ├── report/ │ └── pdf_gen.py ← ReportLab PDF generator + MITRE mapper ├── dashboard/ │ └── templates/index.html ← Terminal-style live dashboard (vanilla JS) ├── config/ │ └── settings.py ← All config, OWASP categories, severity maps ├── tests/ │ └── test_scanner.py ← pytest unit tests ├── Dockerfile ├── docker-compose.yml ├── requirements.txt └── .env.example ``` ## 🚀 快速开始 ### 选项 1 — Docker (推荐) ``` # 克隆 repo git clone https://github.com/Sakshamsrivastava92110/VulnHawk.git cd VulnHawk # 配置 API keys(可选但推荐) cp .env.example .env nano .env # 构建并运行 docker-compose up --build # 打开 dashboard open http://localhost:8000 ``` ### 选项 2 — 本地 Python ``` # 克隆 git clone https://github.com/Sakshamsrivastava92110/VulnHawk.git cd VulnHawk # 创建 virtual environment python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # 安装 dependencies pip install -r requirements.txt # 配置环境 cp .env.example .env # 使用你的 API keys 编辑 .env # 运行 python -m api.main # 或者 uvicorn api.main:app --host 0.0.0.0 --port 8000 --reload # 打开 dashboard open http://localhost:8000 ``` ## 🔑 API 密钥 (可选) 所有 API 集成都是可选的 —— VulnHawk 没有它们也能运行,但它们能显著丰富结果。 | 服务 | 用途 | 获取密钥 | |---------|---------|---------| | NIST NVD | CVE 富集 (免费) | [nvd.nist.gov/developers](https://nvd.nist.gov/developers/request-an-api-key) | | AbuseIPDB | IP 信誉 (免费套餐) | [abuseipdb.com/register](https://www.abuseipdb.com/register) | | HaveIBeenPwned | 违规数据 ($3.50/月) | [haveibeenpwned.com/API/Key](https://haveibeenpwned.com/API/Key) | ## 📡 API 参考 ### 启动扫描 ``` POST /api/scan Content-Type: application/json { "target_url": "http://testphp.vulnweb.com", "scan_modules": ["sqli", "xss", "headers", "ssrf", "traversal"], "generate_pdf": true, "enrich_cve": true } ``` ### 获取扫描状态 ``` GET /api/scan/{scan_id} ``` ### 下载 PDF 报告 ``` GET /api/scan/{scan_id}/report ``` ### WebSocket 实时更新 ``` const ws = new WebSocket('ws://localhost:8000/ws/{scan_id}'); ws.onmessage = (e) => { const { type, progress, message, findings } = JSON.parse(e.data); // type: "progress" | "complete" | "error" }; ``` ## 🧠 ML 模型详情 ML 分类器使用包含 8 个手工特征的 **Gradient Boosting** 集成模型: | 特征 | 描述 | |---------|-------------| | `vuln_type_enc` | 编码的漏洞类别 (0–19) | | `cvss_score` | 来自扫描器的基础 CVSS 分数 | | `detection_method` | 检测的置信度 (0=被动, 2=主动) | | `has_payload` | 是否使用了主动载荷 | | `has_evidence` | 是否捕获了直接证据 | | `param_is_url` | 检测 URL 类注入参数 | | `param_is_file` | 检测文件类注入参数 | | `owasp_rank` | OWASP 类别排名 (A01=1 → A10=10) | 训练数据:460 个带有高斯噪声的合成样本,用于泛化。 在保留测试集上的模型准确率:**~89%** (5 类严重性分类)。 ## ⚖️ 合法与合乎伦理的使用 - ✅ 扫描您自己的应用程序 - ✅ 在明确的书面授权下进行扫描 - ✅ 在允许自动扫描的 CTF / 漏洞悬赏目标上使用 - ✅ 针对故意设置漏洞的应用程序使用:[DVWA](https://dvwa.co.uk/)、[WebGoat](https://owasp.org/www-project-webgoat/)、[VulnHub](https://www.vulnhub.com/) - ❌ 切勿在未经授权的情况下扫描目标 - ❌ 切勿在未经许可的情况下对生产系统使用 作者不对本工具的滥用行为负责。 ## 🧪 运行测试 ``` pip install pytest pytest-asyncio pytest tests/ -v ``` ## 🗺️ MITRE ATT&CK® 覆盖范围 | 漏洞 | 战术 | 技术 | |--------------|--------|-----------| | SQL 注入 | 初始访问 | T1190 – 利用面向公众的应用程序 | | XSS | 执行 | T1059 – 命令和脚本解释器 | | SSRF | 发现 | T1083 – 文件和目录发现 | | 路径遍历 | 收集 | T1005 – 来自本地系统的数据 | | 缺少 HSTS | 凭证访问 | T1557 – 中间人攻击 | | 不安全的 Cookie | 凭证访问 | T1539 – 窃取 Web 会话 Cookie | ## 🛠️ 使用的技术 | 层级 | 技术 | |-------|-----------| | 后端 | Python 3.11, FastAPI, Uvicorn | | 异步 HTTP | httpx, asyncio | | HTML 解析 | BeautifulSoup4, lxml | | 机器学习 | scikit-learn (Gradient Boosting, StandardScaler) | | 威胁情报 | NIST NVD API, AbuseIPDB API, HaveIBeenPwned API | | PDF 生成 | ReportLab | | 前端 | 原生 JS, Chart.js, WebSocket API | | 容器化 | Docker, Docker Compose | | 测试 | pytest, pytest-asyncio | ## 📄 许可证 MIT 许可证 — 详见 [LICENSE](LICENSE)。 ## 🙏 参考文献 - [OWASP Top 10 (2021)](https://owasp.org/www-project-top-ten/) - [MITRE ATT&CK® 框架](https://attack.mitre.org/) - [NIST 国家漏洞数据库](https://nvd.nist.gov/) - [PortSwigger Web 安全学院](https://portswigger.net/web-security) - [OWASP 测试指南 v4.2](https://owasp.org/www-project-web-security-testing-guide/)
标签:Apex, AV绕过, CISA项目, Cloudflare, CVE漏洞库, Docker, FastAPI, LFI检测, MITRE ATT&CK, NVD API, OWASP Top 10, Python, scikit-learn, SQL注入检测, SSRF检测, WebSocket, Web漏洞扫描器, XSS检测, 代码生成, 依赖分析, 威胁情报, 安全防御评估, 实时仪表盘, 开发者工具, 异步爬虫, 文件查看, 无后门, 机器学习, 渗透测试工具, 漏洞严重性分类, 网络安全, 自动化PDF报告, 计算机取证, 请求拦截, 运行时操纵, 逆向工具, 隐私保护