socwitholiver/vex-offensive-toolkit

GitHub: socwitholiver/vex-offensive-toolkit

Vex 是一款模块化渗透测试工具包,提供从侦查到漏洞扫描再到客户级报告生成的完整 pipeline 与 SOC 风格 Web 仪表盘。

Stars: 1 | Forks: 0

VEX — Modular Bug Bounty & Pentest Toolkit

Vex

模块化攻击安全工具包 — 完整的 侦查 → 扫描 → 报告 pipeline, 配备三栏式 SOC 控制台仪表盘。

Python Flask Reports Status

![Vex SOC 控制台 — 三栏式仪表盘:模块控制、流式发现与缓解措施、实时攻击面摘要及扫描控制台](https://static.pigsec.cn/wp-content/uploads/repos/cas/c7/c7503c11652fff7cad1c1bf5b95a9bbfe9502894c9f4d0c5607015e08ed7a693.png) ## 核心亮点 - **8 个链式模块** — 子域名枚举、端口扫描、技术指纹识别、 URL 发现、目录 fuzzing、启发式漏洞扫描、payload 生成以及报告生成 — 可通过单文件 CLI 或 Web 仪表盘使用。 - **发现与缓解引擎** — 原始模块输出会被标准化为 按严重程度排序的发现,每项均包含描述、影响、**逐步 修复**以及 CWE / OWASP 参考 (`mitigations.py`)。 - **三栏式 SOC 控制台** — 目标控制,带有可点击严重程度过滤器的流式发现反馈, 以及实时攻击面摘要,外加实时扫描终端。 - **可直接交付给客户的报告** — 一键生成 **PDF + HTML + Markdown** 评估报告(执行摘要、严重程度概览、发现、参考资料)。PDF 采用纯 Python (`fpdf2`) 生成 — 无需 `wkhtmltopdf` / WeasyPrint 原生二进制文件。 - **授权检查机制** — 在操作员确认授权之前,不会启动任何扫描。 ## 仪表盘 ``` python app.py # → http://127.0.0.1:5000 ``` 该仪表盘是一个三栏式 **SOC 控制台**: - **左侧栏** — 输入目标,选择要运行的模块,确认授权, 并查看每个模块的进度。在确认授权之前,扫描将被阻止。 - **中间区** — 实时严重程度摘要(critical → info);点击任意严重程度卡片即可 **过滤**发现列表。每个**发现**均可展开查看其描述、影响 以及逐步**缓解措施**。发现会在每个模块完成后以流式方式载入。 - **右侧栏** — 实时**攻击面**摘要(主机、开放端口、暴露的 路径、漏洞)、风险特征甜甜圈图、检测到的技术栈以及开放端口。 - **实时扫描控制台** — 底部的流式、彩色化终端抽屉可实时显示 每个模块的活动。 - **生成报告** 会在模态框中打开评估结果,并提供 **PDF / HTML / Markdown** 下载链接。报告将保存至 `reports/` 并可通过 `/reports/` 访问。 ![展开的发现 — 证据、描述、影响以及带有参考资料的逐步缓解措施](https://static.pigsec.cn/wp-content/uploads/repos/cas/b4/b493ec4491ce82496390fd7e3e4d35d75609380a0221b07abff6c23092510f95.png) ## 模块 | 模块 | 阶段 | 功能描述 | | --- | --- | --- | | `SubdomainEnumerator` | Recon | 通过 crt.sh + DNS 暴力破解字典进行被动发现 | | `PortScanner` | Recon | 跨 170+ 常见端口的多线程 TCP connect 扫描 | | `TechFingerprinter` | Recon | 从 headers + HTML 检测 20+ 种 Web 技术 | | `URLDiscoverer` | Recon | Wayback Machine CDX 拉取 + robots.txt / sitemap.xml | | `DirectoryFuzzer` | Recon | 目录/文件暴力破解(80+ 路径 × 扩展名) | | `VulnScanner` | Attack | 启发式检查:XSS, SQLi, LFI, SSRF, 开放重定向, SSTI | | `PayloadGenerator` | Attack | XSS / SQLi / 反向 shell payload 库 | | `ReportGenerator` | Report | Markdown + HTML + JSON 输出 | ## 安装 ``` pip install -r requirements.txt ``` 要求 Python 3.8+。依赖项:`requests`, `flask`, 以及 `fpdf2`(用于导出 PDF)。 ## CLI 用法 ``` # 完整 pipeline (recon -> scan -> payloads -> report) python vex.py -t example.com # 从 URL python vex.py -t https://example.com # 单个 module python vex.py -t example.com -m subdomains python vex.py -t example.com -m vulnscan # 仅为手动测试生成 payloads python vex.py -t example.com --payloads # 自定义输出目录 + 详细日志记录 python vex.py -t https://app.example.com -o ./results -v ``` 单模块名称:`subdomains`, `ports`, `fingerprint`, `fuzz`, `urls`, `vulnscan`, `payloads`。 ## 项目结构 ``` Vex/ ├── vex.py # 8 scanning modules + CLI orchestrator ├── mitigations.py # findings & mitigations engine (VULN_KB, PATH_KB, RISKY_PORTS) ├── pdf_report.py # fpdf2 PDF report renderer ├── app.py # Flask dashboard — API + static serving ├── templates/ │ └── index.html # SOC-console markup ├── static/ │ ├── style.css # console design system │ ├── app.js # front-end controller (scan flow, filters, console, report) │ └── brand/ # official logo, wordmark, favicon ├── docs/ # screenshots ├── mockups/ # design mock (mockA_soc_console.html) └── demo_output/ # sample module JSON + sample PDF report ``` 发现/缓解知识库位于 [`mitigations.py`](mitigations.py) — 扩展 `VULN_KB`、`PATH_KB` 和 `RISKY_PORTS` 即可增加覆盖范围。 ## 报告 `POST /api/report`(或在 UI 中点击 **生成报告**)会将三个产物写入 `reports/`: - **PDF** — 专业、浅色主题且可交付给客户的报告,由 [fpdf2](https://github.com/py-pdf/fpdf2) 渲染。如果未安装 `fpdf2`, HTML/Markdown 导出仍可正常工作,UI 会提示 PDF 不可用。 - **HTML** — 独立且带样式的报告。 - **Markdown** — 便携、易于进行 diff 比对的报告。 每份报告均包含执行摘要、严重程度概览,以及每项发现对应的 描述、影响、修复步骤和参考资料。示例请见 [`demo_output/sample_report.pdf`](demo_output/sample_report.pdf)。 ## 设计与品牌 - **Logo 资源** 位于 [`static/brand/`](static/brand):`vex-logo.png`(完整 Logo), `vex-wordmark.png`(透明顶栏字标),以及 `favicon.png`。 - **配色方案** — 近黑色画布 (`#0a0e14`),面板 (`#12171f`),强调色 (`#58a6ff`), 青色品牌高光,严重程度颜色对应为:critical `#ff4d4d`, high `#f85149`, medium `#e3a72f`, low `#3fb950`, info `#58a6ff`。 - 仪表盘布局的原型位于 [`mockups/mockA_soc_console.html`](mockups/mockA_soc_console.html), 这是一个独立的静态预览文件(可直接在浏览器中打开)。 ## 注意事项与说明 - `VulnScanner` 使用**启发式**信号(反射 payload、数据库错误字符串、 响应时间、`7*7 -> 49`)。请将每项发现视为*潜在*风险并进行人工验证 — 预期会出现误报和漏报。尤其是 SSRF,它会在匹配到反射的 元数据字符串时触发,需要带外确认(例如 interactsh / Burp Collaborator)。 - 扫描请求已禁用 TLS 验证 (`verify=False`),因此自签名 目标不会中断运行;相关的警告已被抑制。 - 针对生产环境目标时,请注意速率限制和线程数。 - 未发现漏洞**并不**代表绝对安全。
标签:Flask, GitHub, Python, 实时处理, 密码管理, 插件系统, 无后门, 逆向工具