socwitholiver/vex-offensive-toolkit
GitHub: socwitholiver/vex-offensive-toolkit
Vex 是一款模块化渗透测试工具包,提供从侦查到漏洞扫描再到客户级报告生成的完整 pipeline 与 SOC 风格 Web 仪表盘。
Stars: 1 | Forks: 0
Vex
模块化攻击安全工具包 — 完整的 侦查 → 扫描 → 报告 pipeline,
配备三栏式 SOC 控制台仪表盘。

## 核心亮点
- **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/
` 访问。

## 模块
| 模块 | 阶段 | 功能描述 |
| --- | --- | --- |
| `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, 实时处理, 密码管理, 插件系统, 无后门, 逆向工具