AbhyudaySura001/Automated-Network-Reconnaissance-Framework
GitHub: AbhyudaySura001/Automated-Network-Reconnaissance-Framework
一个模块化的 Python 网络侦察框架,通过插件架构自动化渗透测试信息收集阶段并生成结构化报告。
Stars: 0 | Forks: 0
# 自动化网络侦察框架
一个模块化、插件驱动的 Python 平台,可自动执行渗透测试的信息收集阶段——包括被动侦察、主动扫描、Web 技术指纹识别和结构化报告——旨在映射专业红队的侦察工作流程。
## ⚖️ 仅限授权使用
该工具针对网络基础设施执行侦察。**仅在你拥有或获得明确书面授权评估的系统上运行它。** 未经授权的扫描可能会违反计算机滥用法。你对保持在授权范围内负全部责任。该框架默认开启速率限制,以支持受控的低影响评估。
## 为什么采用此设计
每项侦察能力都是一个独立的 **module**,它继承自 `ReconModule` 基类,并在运行时被**自动发现**。所有 module 都对同一个类型化的 **`ReconResult`** 对象进行读写。编排器知道如何按顺序(被动 → 主动)运行 module,但对它们各自的具体行为一无所知。实际的好处在于:以后添加 ASN 查询、Shodan 或反向 DNS 只需*在 `plugins/` 中添加一个新文件*——核心代码零修改。
有关详细的理论依据和图表,请参阅 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。
## 快速开始
```
# 1. 安装依赖(第 3 周的主动扫描需要 Nmap binary)
pip install -r requirements.txt
sudo apt install nmap # Kali/Debian
# 2. 列出 loader 可见的模块
python main.py --list-modules
# 3. 运行仅被动模式的 recon 并写入 JSON + HTML 报告
python main.py --target example.com --passive-only
# 4. 使用自定义 config + scan profile 运行
python main.py -t example.com -c recon_framework/config/default.yaml --profile quick
# 5. 完整运行,选择报告格式(默认为 json,html)
python main.py -t example.com --report-format json,html
```
报告会保存在 `output/recon__.{json,html}` 中。HTML 文件是独立的——可以直接在浏览器中打开。
### 关键 CLI 标志
| 标志 | 用途 |
|------|---------|
| `-t, --target` | 目标域名或 IP |
| `-c, --config` | YAML/JSON 配置文件 |
| `--profile` | `quick` \| `standard` \| `comprehensive` |
| `--passive-only` | 禁用主动扫描 |
| `--modules a,b` | 仅运行指定的 module |
| `--list-modules` | 显示所有已发现的 module 并退出 |
| `--log-level` | `DEBUG`…`CRITICAL` |
| `--report-format` | 逗号分隔列表:`json`、`html`(默认为 `json,html`) |
| `--no-report` | 仅输出控制台摘要 |
## 项目结构
```
recon_framework/
├── core/ # framework, config, loader, models, logging, output, rate limiter
├── passive/ # WHOIS, DNS, subdomains, CT logs (Week 2)
├── active/ # Nmap engine, scan profiles, service analysis (Week 3)
├── plugins/ # base contract + drop-in third-party plugins
├── reporting/ # HTML/JSON report generation (Week 4)
├── templates/ # Jinja2 HTML report templates (Week 4)
├── config/ # default.yaml and user configs
├── logs/ # rotating audit-trail logs
├── tests/ # pytest suite
└── docs/ # architecture + sprint docs
main.py # CLI entrypoint
```
## 运行测试
```
python -m pytest recon_framework/tests -q
```
第一周发布了 17 个通过的测试,涵盖了数据模型、配置管理器、module 加载器以及端到端的框架执行。
## 路线图
| 周 | 重点 | 交付成果 |
|------|-------|--------------|
| **1 ✅** | 核心框架 | framework、module_loader、config_manager、output_formatter、models、插件基类 |
| **2 ✅** | 被动侦察 | dns_enum、whois_lookup、ct_log_parser、subdomain_discovery、validators、http_client |
| **3 ✅** | 主动侦察 | active_scanner、scan_profiles、service_analyzer (python-nmap) |
| **4 ✅** | 报告与隐蔽性 | report_generator、HTML 模板、JSON-lines 审计日志、隐蔽预设 |
## 许可与免责声明
仅出于教育和授权的安全评估目的提供。不提供任何保证。作者对滥用行为不承担任何责任。
标签:CTI, GitHub, Python, 动态插桩, 安全规则引擎, 实时处理, 插件系统, 无后门, 逆向工具