0x5da/Imperium-OSINT-Framework-tool
GitHub: 0x5da/Imperium-OSINT-Framework-tool
面向安全研究的域名侦察自动化工具,整合 DNS 解析、子域名枚举和 HTTP 服务探测功能,支持结果持久化与导出。
Stars: 1 | Forks: 0
## OSINT Framework
*由 0x5da 创建*
域名情报聚合与自动化侦察套件。收集 DNS 记录,执行子域名枚举,并通过智能缓存和速率限制跟踪目标域名上的 HTTP/HTTPS 可用性。
### 为什么构建这个工具
作为安全研究人员和渗透测试人员的基础 OSINT 工具而创建,满足自动化域名侦察的需求。旨在通过自动化 DNS 查询、子域名枚举和服务发现来简化初始侦察阶段——消除重复性的手动查询,并为跨多个项目的发现结果提供持久化存储。
### 功能特性
- **DNS 解析**:查询目标域名的 A、AAAA、MX、NS 和 TXT 记录
- **子域名发现**:使用常见子域名模式和自定义字典进行暴力枚举
- **HTTP 状态检测**:探测已发现目标上的活跃 HTTP/HTTPS 服务
- **结果持久化**:将所有发现存储在 SQLite 数据库中,并通过智能缓存避免重复查询
- **导出功能**:支持 JSON 导出,便于与下游安全工具集成
### 工作原理
该框架使用异步 DNS 查询来加速子域名枚举,并通过信号量管理并发网络连接,以防止压垮目标服务器。DNS 缓存在数据库层面实现,以减少冗余查询。该工具通过可配置的请求间隔来遵守速率限制。
### 安装与使用
```
pip install -r requirements.txt
python main.py example.com [--wordlist wordlist.txt] [--export results.json]
```
**参数说明:**
- `domain`:要枚举的目标域名
- `--wordlist`:自定义子域名字典(可选)
- `--db`:SQLite 数据库路径(默认:recon.db)
- `--export`:将结果导出到 JSON 文件
**示例:**
```
# 基础枚举
python main.py google.com
# 使用自定义 wordlist 和导出
python main.py acme.corp --wordlist subs.txt --export acme_recon.json
```
### 注意事项
- 子域名枚举限制为每个信号量组每秒 1 次请求,以避免触发 IDS/WAF
- 大型字典(>1万条目)可能需要较长时间;建议仅筛选常见模式
- AAAA (IPv6) 查询在隔离网络上可能会失败;这是正常行为
- 数据库将无限期保存;定期使用 `sqlite3 recon.db "DELETE FROM dns_records WHERE timestamp < '2024-01-01'"` 清理旧记录
### 依赖项
- aiohttp:异步 HTTP 客户端
- dnspython:DNS 工具(已安装,但配合 socket.getaddrinfo 使用时非严格必需)
- Python 3.8+
标签:DNS侦察, ESC4, GitHub, HTTP状态检测, OSINT, Python, SQLite, T_A0000, 域名情报, 子域名枚举, 开源网络情报, 异步编程, 无后门, 暴力枚举, 系统安全, 网络安全, 自动化侦察, 逆向工具, 隐私保护