own2pwn-fr/oob-poc
GitHub: own2pwn-fr/oob-poc
一个极简的 Rust 带外交互服务器,通过权威 DNS 和 HTTP catch-all 捕获渗透测试中的盲漏洞回调并实时展示。
Stars: 2 | Forks: 1
# oob-poc
一个极简的**带外 (OOB) 交互服务器**,使用 Rust 从零构建 —
这种工具用于在渗透测试中捕获*盲*漏洞
(blind SSRF、blind XSS、带外 RCE、通过 DNS 进行 SQLi 数据外发…)。
它是 [Burp Collaborator](https://portswigger.net/burp/documentation/collaborator) 和 [interactsh](https://github.com/projectdiscovery/interactsh) 的一个微型、易读的同类替代品:
一个通过共享的内存存储运行**权威 DNS 服务器**、**HTTP catch-all** 和**实时仪表板**的单体二进制程序。
没有数据库,没有框架 — 只有约 700 行代码,您可以一口气读完。
## 工作原理
您拥有一个域名,并通过 `NS` + glue 记录将一个子域名(例如 `oob.example.com`)委派给该服务器。
然后,在测试期间,您在 payload 中植入一个唯一的主机名:
```
https://victim/redirect?url=http://deadbeef.oob.example.com/
```
如果目标存在 SSRF 漏洞,其服务器将解析和/或请求该主机 —
随后回调会出现在您的仪表板中,从而证明该漏洞。仅 DNS 请求意味着*有东西*
解析了它;而 HTTP 请求则是确凿的确认。
```
target ──DNS─▶ your authoritative server ──▶ logged
target ──HTTP─▶ your catch-all listener ──▶ logged ─▶ dashboard
```
## 快速开始(本地)
```
# build
cargo build --release
# 在非特权端口上运行(本地尝试无需 root)
OOB_ZONE=oob.example.com \
OOB_DNS_BIND=127.0.0.1:15353 \
OOB_HTTP_BIND=127.0.0.1:8080 \
OOB_DASHBOARD_BIND=127.0.0.1:9090 \
./target/release/oob-poc
# 在另一个 shell 中 — 触发测试回调
dig +short @127.0.0.1 -p 15353 deadbeef.oob.example.com
curl -H 'Host: deadbeef.oob.example.com' http://127.0.0.1:8080/
# 观察它们到达
open http://127.0.0.1:9090/
```
## 部署(真实区域,在 VPS 上)
1. 将 `oob.example.com` 的 `NS` 记录指向此主机(`ns1`/`ns2` glue → 其公共 IP)。
2. 运行并将其绑定到 `:53` 和 `:80`(需要 `CAP_NET_BIND_SERVICE`):
```
docker build -t oob-poc .
docker run -d --name oob \
--cap-add NET_BIND_SERVICE \
-p 53:53/udp -p 53:53/tcp -p 80:80 -p 127.0.0.1:8080:8080 \
-e OOB_ZONE=oob.example.com \
-e OOB_PUBLIC_IP=203.0.113.10 \
oob-poc
```
保持**仪表板绑定到 localhost**(或置于 VPN / 身份验证之后)——它会暴露
每一个捕获到的回调。
## 配置
| 环境变量 | 默认值 | 用途 |
|-----------------------|--------------------|--------------------------------------|
| `OOB_ZONE` | `oob.example.com` | 此服务器具有权威性的区域 |
| `OOB_PUBLIC_IP` | `127.0.0.1` | 在 `A` 回答中返回的 IPv4 |
| `OOB_DNS_BIND` | `0.0.0.0:53` | DNS 监听器 (UDP) |
| `OOB_HTTP_BIND` | `0.0.0.0:80` | HTTP catch-all 监听器 |
| `OOB_DASHBOARD_BIND` | `127.0.0.1:8080` | 仪表板 + JSON API(保持私密) |
## 不在范围内(特意设计)
这是一个 PoC。生产级的 OOB 服务器(就像我们在 own2pwn 运行的那样)会增加:
通配符 TLS、用于协议走私 SSRF 的 SMTP/LDAP/FTP 收集器、多租户隔离、
用于消除误报的源 IP 绑定、持久化以及用于自动化的轮询 API。
为了保持核心代码的清晰易读,这些功能被刻意去除了。
## 许可证
MIT — 请参阅 [LICENSE](./LICENSE)。
标签:CISA项目, DNS服务器, IP 地址批量处理, Retryablehttp, Rust, Web安全, 可视化界面, 带外数据交互, 网络流量审计, 蓝队分析, 请求拦截, 通知系统