JMarchiori13/osint-recon
GitHub: JMarchiori13/osint-recon
一个纯被动的 Rust OSINT 侦察框架,为授权红队演练提供子域名、DNS、技术指纹等信息收集能力,且不涉及任何主动扫描行为。
Stars: 0 | Forks: 0
# osint-recon
**用于授权红队对抗演练的 Rust 被动 OSINT 侦察框架。**
[](https://attack.mitre.org/tactics/TA0043/)
[](https://www.rust-lang.org/)
[](LICENSE)
## 概述
`osint-recon` 自动化了 MITRE ATT&CK 侦察(TA0043)的**被动**部分:证书透明度、DNS-over-HTTPS、无需密钥的公开聚合器,以及对已公开页面的普通 GET 请求。它刻意**不包含任何主动功能** —— 没有端口扫描,没有目录或子域名暴力破解,没有凭证测试。
每个模块共享一个带有严格速率限制(默认 1 req/s)、user-agent 轮换、超时和有限次重试的单一 HTTP 客户端;每个外部调用都会平滑失败(警告并继续),结果可导出为 JSON 和 CSV。
## 功能
- 🔎 从证书透明度 和 DNS 历史聚合器 获取**子域名枚举** —— 无需密钥,被动获取
- 🌐 通过 DNS-over-HTTPS (dns.google) 获取 **DNS 记录**(A, AAAA, MX, NS, TXT),无需触碰目标的域名服务器
- 🧬 从响应头、meta generator 标签和 CMS/框架特征中进行**技术指纹识别**
- 📧 从组织自身发布的页面中**收集邮箱**,标记为仅供授权的钓鱼模拟规划使用
- 📄 从公开链接的文档中**提取 PDF 元数据**(作者、创建工具、日期)
- 📤 **JSON + CSV 导出**及格式化的控制台表格输出
- 🐢 **设计上保持礼貌**:1 req/s 限速,UA 轮换,超时控制,重试机制,限制页面/PDF 数量上限
## 安装说明
### 从源码构建
```
git clone https://github.com/JMarchiori13/osint-recon.git
cd osint-recon
cargo build --release
# 二进制文件位于 ./target/release/osint-recon
```
### 安装到 Cargo 的 bin 目录
```
cargo install --path .
osint-recon --help
```
需要 Rust 1.95+(更早的稳定版工具链可能也能运行;仅测试过 1.95)。
## 使用方法
```
# 被动子域名枚举 (CT logs + DNS history)
osint-recon subdomain example.com
# 通过 DNS-over-HTTPS 获取 DNS records
osint-recon dns example.com
# Technology fingerprinting (headers + HTML signatures)
osint-recon tech example.com
# 目标自身页面发布的 Email addresses (仅供授权使用)
osint-recon email example.com
# 公开链接的 PDFs 中的 Metadata
osint-recon metadata example.com
# 一次性执行所有任务并导出
osint-recon full example.com --json output/full.json
osint-recon dns example.com --csv output/dns.csv
```
全局选项:
| 选项 | 默认值 | 描述 |
|--------|---------|-------------|
| `--rate ` | `1.0` | 礼貌速率限制(requests/second) |
| `--timeout ` | `15` | 单次请求超时(秒) |
| `--retries ` | `2` | 首次尝试后的单次请求重试次数 |
| `--json ` | — | 将结果导出为 JSON |
| `--csv ` | — | 将结果导出为 CSV(单模块运行时可用) |
| `-q, --quiet` | — | 隐藏授权横幅 |
## 模块与 ATT&CK 映射
| 模块 | 来源 | ATT&CK(仅限被动) |
|--------|---------|------------------------|
| `subdomain` | crt.sh, hackertarget hostsearch | T1590.001 — Domain Properties |
| `dns` | dns.google DoH JSON API | T1590.002 — DNS |
| `tech` | 主页响应头 + HTML 特征 | T1592.002 — Software |
| `email` | 公开页面(有限的链接跟随) | T1589.002 — Email Addresses, T1593.002 |
| `metadata` | 公开链接的 PDF (lopdf Info dict) | T1593.002 — Search Open Websites/Domains |
有关各模块的输出字段和限制,请参阅 [docs/modules.md](docs/modules.md);有关完整的方法论和 OPSEC 注意事项,请参阅 [docs/methodology.md](docs/methodology.md)。安全实践目标记录在 [docs/lab.md](docs/lab.md) 中。
## 可视化图表
标签:ESC4, GitHub, OSINT, Rust, 可视化界面, 安全工具库, 实时处理, 网络安全, 网络流量审计, 被动侦察, 通知系统, 隐私保护