bioonahnuu-design/recon-tool
GitHub: bioonahnuu-design/recon-tool
一个基于 Python 标准库的轻量级被动域名侦察 CLI 工具,用于收集域名的 IP、WHOIS 和 DNS 信息。
Stars: 0 | Forks: 0
# Recon 工具



一个用于被动域名侦察的轻量级 Python CLI。Recon Tool 验证域名,解析其 IPv4/IPv6 地址,收集 WHOIS 和 DNS 信息,并可以将结果导出为 JSON。
## 演示

截图使用了确定性的 `--demo` 数据。演示模式不会执行任何网络请求。
## 功能
- 域名和 URL 标准化及严格验证
- 使用 Python 标准库进行 IPv4 和 IPv6 解析
- WHOIS 注册信息查询
- 通过 `nslookup` 进行 DNS 查询
- 无 shell 的安全子进程执行
- 超时和缺失依赖处理
- 可选的 JSON 报告导出
- 用于文档的离线演示模式
- 核心行为的自动化测试
- 无需第三方 Python 依赖
## 项目结构
```
recon-tool/
├── docs/
│ └── demo.svg
├── modules/
│ ├── __init__.py
│ └── recon.py
├── tests/
│ └── test_recon.py
├── .gitignore
├── LICENSE
├── main.py
├── recon.py
├── requirements.txt
└── README.md
```
## 环境要求
- Python 3.9+
- 用于获取注册信息的 `whois`
- 用于获取 DNS 信息的 `nslookup`
Python 应用程序本身仅使用标准库。
### Ubuntu/Debian
```
sudo apt update
sudo apt install whois dnsutils
```
### macOS
```
brew install whois bind
```
在 Windows 上,`nslookup` 默认通常可用。WHOIS 可以通过 WSL 或单独安装的客户端来使用。
## 安装
```
git clone https://github.com/bioonahnuu-design/recon-tool.git
cd recon-tool
python main.py --help
```
## 使用说明
针对某个域名运行:
```
python main.py example.com
```
URL 会自动进行标准化:
```
python main.py https://example.com/path
```
将结果保存为 JSON:
```
python main.py example.com --json reports/example.json
```
运行离线演示:
```
python main.py --demo
```
## 测试
```
python -m unittest discover -s tests -v
```
## 工作原理
1. 输入被标准化为主机名并进行验证。
2. `socket.getaddrinfo()` 解析唯一的 IPv4 和 IPv6 地址。
3. 已安装的 `whois` 和 `nslookup` 程序收集被动的公开信息。
4. 结果将打印到终端,并可选地写入 JSON。
## 限制
- WHOIS 数据可能被修订、受到速率限制或不可用。
- DNS 结果取决于当前的解析器和网络。
- 必须安装相应的系统实用程序才能显示相关部分的内容。
- 该工具不扫描端口、不利用目标漏洞,也不枚举子域名。
## 路线图
- 原生 DNS 记录解析
- 可选的侦察模块
- 带时间戳的报告目录
- CSV 导出
- 扩展的单元测试覆盖率
## 伦理使用
仅将此工具用于学习、防御性安全以及您拥有或获得明确授权进行评估的系统。您有责任遵守适用的法律、政策和服务条款。
## 作者
**Nahnu Rohmania** — 信息工程系学生,网络安全爱好者。
[GitHub](https://github.com/bioonahnuu-design)
## 许可证
基于 [MIT 许可证](LICENSE) 发布。
标签:CDN识别, DNS查询, GitHub, Python, UDP扫描, 域名侦察, 安全工具库, 实时处理, 无后门, 被动侦察, 逆向工具