sahadatx/Recon-Automation-Framework

GitHub: sahadatx/Recon-Automation-Framework

一款基于 Python 的模块化、插件式自动化攻击面侦察框架,覆盖从信息收集到报告生成的完整渗透测试前期侦察流程。

Stars: 0 | Forks: 0

🔍 Recon Automation Framework

一个用于自动化攻击面发现的模块化、基于插件的信息侦察框架

自动化侦察 • 插件架构 • 多线程 • 专业报告

Recon Automation Framework Banner

Python Platform Version License Status

Last Commit Stars Forks Issues

Recon Automation Framework 是一个开源、模块化、基于插件的信息侦察框架,旨在为渗透测试、Bug Bounty 和安全评估自动化发现攻击面。 该框架围绕模块化的插件架构构建,将信息侦察、Web 发现、基础设施分析和专业报告集成到一个统一且可扩展的工作流程中。

# 📖 概述 Recon Automation Framework 提供了一个完整的、基于阶段的侦察工作流,可自动化攻击面情报的收集、分析和报告。 该框架通过模块化的插件架构,结合了被动枚举、基础设施分析、Web 应用发现和专业报告。每个模块独立运行,同时共享一个公共的执行上下文,从而在整个侦察 pipeline 中实现可靠的自动化、轻松的扩展性以及一致的数据流。 无论是进行渗透测试、Bug Bounty 侦察,还是常规的安全评估,该框架都能简化重复的侦察任务,并以多种输出格式生成结构化、可操作的结果。

⬆️ 返回顶部

# ⚙️ 设计原则 Recon Automation Framework 建立在一组核心工程原则之上,确保框架在添加新的侦察能力时保持模块化、可扩展且易于维护。 ## 🧩 模块化架构 每项侦察能力都实现为具有单一职责的独立模块,使框架更易于开发、测试和维护。 ## 🔌 基于插件的设计 无需修改核心框架即可集成新模块,允许项目在保持代码库整洁稳定的同时不断增长。 ## ⚡ 性能 该框架利用多线程和优化的执行 pipeline 来提高扫描速度,同时保证可靠的结果。 ## 📈 可扩展性 支持本地执行以及未来的分布式部署。 ## 🛠️ 可维护性 一致的项目结构、可重用的组件和清晰的职责分离简化了长期维护和未来的开发。 ## 💡 设计理念 每个组件都设计为可重用、独立且易于扩展,同时不影响现有功能。 # 📑 目录 - [📖 概述](#-overview) - [🎬 演示](#-demo) - [✨ 功能](#-features) - [⚙️ 设计原则](#️-design-principles) - [🏗️ 框架架构](#️-framework-architecture) - [🔌 插件架构](#-plugin-architecture) - [🔄 侦察 Pipeline](#-recon-pipeline) - [📦 支持的模块](#-supported-modules) - [阶段 1 — 核心侦察](#phase-1--core-recon) - [阶段 2 — 发现](#-phase-2--discovery) - [阶段 3 — 基础设施](#-phase-3--infrastructure) - [阶段 4 — 报告](#-phase-4--reporting) - [阶段 5 — 框架](#-phase-5--framework) - [📁 项目结构](#-project-structure) - [🛠️ 安装说明](#️-installation) - [⚙️ 配置说明](#️-configuration) - [🚀 使用说明](#-usage) - [📂 输出](#-output) - [📸 截图](#-screenshots) - [🗺️ 路线图](#️-roadmap) - [🤝 贡献](#-contributing) - [📄 许可证](#-license) - [👨‍💻 作者](#-author) # 🎬 演示 以下截图展示了在侦察工作流期间框架的命令行界面。 ## 💻 命令行界面 该框架提供了一个简洁且信息丰富的 CLI,具有: - 实时模块执行 - 彩色日志记录 - 进度跟踪 - 执行统计信息 - 自动报告生成

CLI Demo

示例命令: ``` python recon.py example.com --all ```

⬆️ 返回顶部

# ✨ 功能 Recon Automation Framework 通过模块化、可扩展和基于插件的架构提供了完整的侦察工作流。 ## ⚙️ 框架能力 - 模块化的基于插件的架构 - 17 个专门的侦察模块 - 自动化的基于阶段的侦察 pipeline - 多线程模块执行 - 交互式 HTML Dashboard - 多格式报告生成 (HTML, JSON, CSV, TXT, Markdown)

⬆️ 返回顶部

# 🏗️ 框架架构 Recon Automation Framework 将侦察任务组织成通过共享执行上下文协调的独立模块。 ``` flowchart TD U[User] --> CLI[Recon CLI] CLI --> MANAGER[Execution Manager] MANAGER --> LOADER[Module Loader] LOADER --> P1[Phase 1
Core Recon] LOADER --> P2[Phase 2
Discovery] LOADER --> P3[Phase 3
Infrastructure] LOADER --> P4[Phase 4
Reporting] LOADER --> P5[Phase 5
Framework] P1 --> CONTEXT[Shared Execution Context] P2 --> CONTEXT P3 --> CONTEXT P4 --> CONTEXT P5 --> CONTEXT CONTEXT --> REPORT[Report Generator] REPORT --> TXT[TXT] REPORT --> JSON[JSON] REPORT --> CSV[CSV] REPORT --> HTML[HTML Dashboard] ``` 下图说明了请求如何从执行到报告在框架中流转。 ## 🔄 执行流程 每个模块都遵循相同的执行 pipeline。 ``` User │ ▼ CLI │ ▼ Execution Manager │ ▼ Module Loader │ ▼ Selected Module │ ▼ Shared Context │ ▼ Report Generator │ ▼ TXT / JSON / CSV / HTML ```

⬆️ 返回顶部

# 🔌 插件架构 每项侦察能力都打包为一个独立的插件,可由框架发现、加载和执行。 ## 插件生命周期 ``` flowchart TD CLI[Recon CLI] --> MANAGER[Execution Manager] MANAGER --> LOADER[Plugin Loader] LOADER --> REGISTRY[Plugin Registry] REGISTRY --> CORE[Core Recon] REGISTRY --> DISCOVERY[Discovery] REGISTRY --> INFRA[Infrastructure] REGISTRY --> REPORTING[Reporting] CORE --> CONTEXT[Shared Execution Context] DISCOVERY --> CONTEXT INFRA --> CONTEXT REPORTING --> CONTEXT CONTEXT --> OUTPUT[Reports & Dashboard] ```

⬆️ 返回顶部

# 🔄 侦察 Pipeline Recon Automation Framework 通过结构化、基于阶段的 pipeline 执行侦察。每个阶段消耗上一阶段的输出,并为下一阶段生成结构化结果,从而实现一致且自动化的侦察工作流。 ## Pipeline 概述 ``` flowchart LR Target["🎯 Target Domain"] --> Core["Phase 1
Core Recon"] Core --> Discovery["Phase 2
Discovery"] Discovery --> Infrastructure["Phase 3
Infrastructure"] Infrastructure --> Reporting["Phase 4
Reporting"] Reporting --> Framework["Phase 5
Framework"] ``` ## 阶段分解 | 阶段 | 模块 | |--------|---------| | **阶段 1 — 核心侦察** | 被动枚举, DNS 解析, HTTP 探测, 端口扫描, 技术检测, 截图捕获 | | **阶段 2 — 发现** | URL 发现, JavaScript 分析, 目录 Fuzzing, 虚拟主机发现 | | **阶段 3 — 基础设施** | TLS 分析, WAF 检测, CDN 检测, 接管检测, 电子邮件安全 | | **阶段 4 — 报告** | 报告生成器, HTML Dashboard | | **阶段 5 — 框架** | 命令行界面, 插件系统, 性能监控, Dashboard 生成 | ## ✨ Pipeline 优势 - 基于阶段的侦察工作流 - 所有模块的模块化执行 - 阶段之间一致的数据流 - 轻松集成新模块 - 自动化报告生成 - 可扩展的架构

⬆️ 返回顶部

# 📁 项目结构 Recon Automation Framework 被组织成独立的组件,将框架核心、侦察模块、配置和生成的输出分离开来。这种结构保持了代码库的模块化、可维护性,并使其易于扩展。 ## 仓库结构 ``` Recon-Automation-Framework/ │ ├── cli/ # Command-line interface ├── config/ # Framework configuration ├── core/ # Core framework components ├── modules/ # Reconnaissance modules ├── output/ # Generated reports and results ├── wordlists/ # Fuzzing wordlists │ ├── recon.py # Framework entry point ├── requirements.txt # Python dependencies ├── README.md └── LICENSE ``` ## 模块组织 ``` modules/ ├── passive/ ├── dns/ ├── http/ ├── ports/ ├── tech/ ├── screenshots/ ├── crawler/ ├── javascript/ ├── fuzzing/ ├── vhost/ ├── tls/ ├── waf/ ├── cdn/ ├── takeover/ ├── email/ ├── report/ └── dashboard/ ``` ## 标准模块布局 每个模块都遵循一致的内部结构,使开发、测试和维护变得简单直接。 ``` module/ ├── analyzer.py ├── constants.py ├── exporter.py ├── helpers.py ├── manager.py ├── plugin.py ├── statistics.py └── ... ```

⬆️ 返回顶部

# 📦 支持的模块 该框架包含用于侦察、发现、基础设施分析、报告和框架管理的专用模块。 | 阶段 | 模块 | 包含组件 | |--------|:------:|---------------------| | **阶段 1 — 核心侦察** | **6** | 被动枚举, DNS, HTTP, 端口, 技术, 截图 | | **阶段 2 — 发现** | **4** | 爬虫, JavaScript, Fuzzing, 虚拟主机 | | **阶段 3 — 基础设施** | **5** | TLS, WAF, CDN, 接管, 电子邮件 | | **阶段 4 — 报告** | **2** | 报告, Dashboard | | **阶段 5 — 框架** | **4 核心** | 命令行界面, 插件系统, 性能监控, Dashboard 生成 | ## 阶段 1 — 核心侦察 ### 🌐 被动枚举 被动枚举在不直接与目标基础设施交互的情况下发现子域和公开可用的资产。它从多个外部情报源收集信息,同时通过规范化和去重将干扰降至最低。 #### 功能 - 多源子域枚举 - Certificate Transparency 日志分析 - 公开情报收集 - 结果规范化和去重 - 自动导出发现的资产 #### 示例 ``` python recon.py example.com --passive ``` ### 🌍 DNS 解析 DNS 解析通过解析 DNS 记录来验证发现的子域,并收集后续侦察模块所需的信息。 #### 功能 - 多线程 DNS 解析 - 记录验证 - 快速查找处理 - 结构化结果生成 #### 示例 ``` python recon.py example.com --dns ``` ### 🌐 HTTP 探测 HTTP 探测验证哪些主机可以通过 HTTP 或 HTTPS 访问,并收集用于进一步分析的响应元数据。 #### 功能 - HTTP/HTTPS 验证 - 状态码检测 - 响应元数据收集 - 重定向处理 - 标题提取 #### 示例 ``` python recon.py example.com --http ``` ### 📸 截图捕获 截图捕获生成在线 Web 应用程序的视觉预览,以简化手动分析和资产识别。 #### 功能 - 异步截图捕获 - 全页面渲染 - 自动页面标题提取 - 高分辨率图像生成 - 有组织的截图存储 #### 示例 ``` python recon.py example.com --screenshots ``` ### 🔓 端口扫描器 端口扫描器使用并发扫描技术识别已发现主机上的开放网络端口和正在运行的服务。 #### 功能 - TCP 端口扫描 - 多线程执行 - 服务识别 - 可配置的端口范围 - 结构化扫描结果 #### 示例 ``` python recon.py example.com --ports ``` ### 🛠️ 技术检测 技术检测对目标应用程序使用的 Web 技术进行指纹识别,深入了解底层的软件栈。 #### 功能 - CMS 检测 - Web 服务器识别 - 编程语言检测 - JavaScript 框架检测 - 库和技术指纹识别 #### 示例 ``` python recon.py example.com --tech ```

⬆️ 返回顶部

## 🔍 阶段 2 — 发现 发现阶段通过分析 Web 应用程序、提取隐藏资源和发现额外的入口点来扩展已识别的攻击面,以进行安全评估。 ### 🔗 URL 发现 URL 发现对目标 Web 应用程序进行爬取,收集可公开访问的 URL,并识别可能对进一步分析有价值的内容。 #### 功能 - 递归 Web 爬取 - URL 规范化 - 内部链接发现 - JavaScript 文件收集 - 结构化 URL 导出 #### 示例 ``` python recon.py example.com --crawl ``` ### 📜 JavaScript 分析 JavaScript 分析下载并分析 JavaScript 文件,以识别端点、隐藏资源、secrets 以及其他在侦察期间有用的信息。 #### 功能 - JavaScript 下载和解析 - 端点提取 - URL 发现 - Source map 检测 - Secret 检测 - 有趣的文件和目录识别 - 结构化报告生成 #### 示例 ``` python recon.py example.com --javascript ``` ### 📂 目录 Fuzzing 目录 Fuzzing 通过针对目标 Web 服务器测试常见路径来发现隐藏的文件和目录。 #### 功能 - 多线程 Fuzzing - 可配置的 wordlists - 递归目录发现 - 响应过滤 - 状态码分析 #### 示例 ``` python recon.py example.com --fuzz ``` ### 🌍 虚拟主机发现 虚拟主机发现在目标 Web 服务器上识别可能未被公开引用的其他已配置虚拟主机。 #### 功能 - 虚拟主机枚举 - Host header Fuzzing - 响应比较 - 隐藏应用发现 - 多线程执行 #### 示例 ``` python recon.py example.com --vhost ``` ## 🌐 阶段 3 — 基础设施 基础设施阶段分析安全控制和基础设施组件,以更好地了解目标环境。 ### 🔐 TLS 分析 TLS 分析检查 SSL/TLS 配置,以识别支持的协议、证书和安全设置。 #### 功能 - SSL/TLS 检查 - 证书分析 - 支持的协议检测 - 密码套件收集 - 过期监控 #### 示例 ``` python recon.py example.com --tls ``` ### 🛡️ WAF 检测 WAF 检测通过分析 HTTP 响应和响应模式来识别保护目标的 Web 应用防火墙(WAF)。 #### 功能 - 自动 WAF 指纹识别 - 响应头分析 - 基于签名的检测 - 供应商识别 #### 支持的供应商 - Cloudflare - Akamai - Imperva - AWS WAF - F5 BIG-IP - FortiWeb - Azure WAF #### 示例 ``` python recon.py example.com --waf ``` ### ☁️ CDN 检测 CDN 检测确定目标是否通过内容分发网络(CDN)提供服务。 #### 功能 - CDN 指纹识别 - 响应头分析 - IP 范围验证 - 供应商识别 #### 支持的供应商 - Cloudflare - CloudFront - Fastly - Akamai - BunnyCDN - Azure CDN #### 示例 ``` python recon.py example.com --cdn ``` ### ⚠️ 接管检测 接管检测通过识别悬空 DNS 记录和未声明的第三方服务来检查潜在的子域接管机会。 #### 功能 - 服务指纹识别 - CNAME 验证 - 悬空 DNS 检测 - 接管签名匹配 #### 支持的服务 - GitHub Pages - AWS S3 - Heroku - Netlify - Vercel - Azure - Shopify #### 示例 ``` python recon.py example.com --takeover ``` ### 📧 电子邮件安全 电子邮件安全分析与电子邮件身份验证和保护机制相关的 DNS 记录。 #### 功能 - SPF 验证 - DKIM 检测 - DMARC 分析 - MX 记录检查 - 邮件服务器识别 #### 示例 ``` python recon.py example.com --email ``` ## 📊 阶段 4 — 报告 报告模块将侦察结果整合到结构化报告和交互式 Dashboard 中,以便于分析和记录。 ### 报告和 Dashboard #### 功能 - TXT 报告生成 - JSON 导出 - CSV 导出 - Markdown 报告 - 交互式 HTML Dashboard - 汇总的扫描摘要 #### 支持的格式 | 格式 | 支持 | |---------|:---------:| | TXT | ✅ | | JSON | ✅ | | CSV | ✅ | | Markdown | ✅ | | HTML Dashboard | ✅ | #### 示例 ``` python recon.py example.com --report ``` ## 🚀 阶段 5 — 框架 框架阶段提供协调模块执行、插件管理、性能优化和 Dashboard 生成的核心服务。 #### 组件 - 命令行界面 - 插件系统 - 性能监控 - Dashboard 生成 #### 职责 - 协调模块执行 - 管理插件生命周期 - 跟踪执行统计信息 - 生成报告和 Dashboard - 优化框架性能

⬆️ 返回顶部

# 🛠️ 安装说明 按照以下步骤安装并运行 Recon Automation Framework。 ## 环境要求 - Python 3.11+ - Git - Linux(推荐) - Playwright(可选,仅在截图捕获模块中需要) ## 克隆仓库 ``` git clone https://github.com/sahadatx/Recon-Automation-Framework.git cd Recon-Automation-Framework ``` ## 创建虚拟环境 ### Linux ``` python3 -m venv venv source venv/bin/activate ``` ### Windows ``` python -m venv venv venv\Scripts\activate ``` ## 安装依赖项 ``` pip install --upgrade pip pip install -r requirements.txt ``` ## 安装 Playwright(可选) 仅在截图捕获模块时需要。 ``` python -m playwright install ``` ## 验证安装 ``` python recon.py --help ```

⬆️ 返回顶部

# ⚙️ 配置说明 在运行侦察模块之前,请配置 API key 和框架设置。 ## 环境变量 在项目根目录中创建一个 `.env` 文件。 ``` PDCP_API_KEY=your_pdcp_api_key SECURITYTRAILS_API_KEY=your_securitytrails_api_key SHODAN_API_KEY=your_shodan_api_key ``` ## 配置文件 框架设置位于: ``` config/ ├── config.py └── settings.py ``` ## 支持的供应商 - ProjectDiscovery Chaos - SecurityTrails - Shodan

⬆️ 返回顶部

# 🚀 使用说明 运行单个模块或执行完整的侦察 pipeline。 ## 快速开始 运行完整的侦察工作流。 ``` python recon.py example.com --all ``` ## 运行单个模块 ``` python recon.py example.com --dns python recon.py example.com --http python recon.py example.com --tech ``` ## 帮助 ``` python recon.py --help ```

⬆️ 返回顶部

# 📂 输出 侦察产出物存储在结构化的输出目录中,使结果易于审查、分析并集成到后续的安全工作流中。 ``` output/ │ ├── reports/ │ ├── report.txt │ ├── report.json │ ├── report.csv │ └── report.md │ ├── dashboard/ │ ├── index.html │ ├── dashboard.json │ ├── dashboard.txt │ └── summary.txt │ ├── screenshots/ │ ├── *.png │ └── ... │ └── logs/ └── framework.log ```

⬆️ 返回顶部

# 📸 截图 以下截图展示了框架界面、Dashboard、报告和性能指标。 ## 截图 01 — 命令行界面

Command-Line Interface

## 截图 02 — Dashboard 概览

Dashboard Overview

## 截图 03 — Dashboard:模块状态

Dashboard Module Status

## 截图 04 — Dashboard:结果概览

Dashboard Results Overview

## 截图 05 — 生成的报告

Generated Report

## 截图 06 — 性能指标

Performance Metrics

⬆️ 返回顶部

# 🗺️ 路线图 以下增强功能计划在未来的版本中推出,以改进功能、可扩展性和可用性。 ## 计划的功能 - Docker 支持 - REST API - Web 界面 - 分布式扫描 - 威胁情报集成 - AI 辅助分析 - 插件市场 - 增强的报告

⬆️ 返回顶部

# ❓ 常见问题 ### 支持哪些操作系统? Recon Automation Framework 支持 Linux 和 Windows。为了获得最佳的兼容性和性能,推荐使用 Linux。 ### 需要 API key 吗? API key 是可选的。某些被动侦察供应商需要它们,而大多数模块无需额外配置即可运行。 ### 该框架支持自定义插件吗? 是的。模块化的架构允许以对框架的最小改动集成新的侦察模块。 ### 支持哪些输出格式? 该框架生成 TXT、JSON、CSV、Markdown 和交互式 HTML Dashboard 格式的结果。 ### 此框架是否仅用于授权的安全测试? 是的。此框架仅用于教育目的和授权的安全评估。在扫描或测试不属于您的系统之前,请务必获得适当的权限。

⬆️ 返回顶部

# 🤝 贡献 欢迎并感谢您的贡献。无论您是在修复 Bug、改进文档还是添加新功能,您的贡献都有助于使这个项目变得更好。 ## 准备开始 1. Fork 该仓库。 2. 创建一个新的功能分支。 3. 提交您的更改。 4. 将该分支推送到您的 fork 中。 5. 发起一个 Pull Request。 ## 指南 - 遵循 PEP 8 编码标准。 - 编写清晰、具有描述性的提交信息。 - 在必要时更新文档。 - 尽可能为新功能包含测试。

⬆️ 返回顶部

# 📄 许可证 该项目基于 **MIT 许可证** 授权。 有关完整的许可证信息,请参见 [LICENSE](LICENSE) 文件。

⬆️ 返回顶部

# 🙏 致谢 Recon Automation Framework 建立在开源网络安全社区的杰出工作之上。我们衷心感谢那些其项目和库使现代侦察、安全研究和自动化变得更加触手可及的开发者、维护者和贡献者。 ## 开源安全项目 特别感谢以下项目,它们在整个框架的开发过程中提供了可靠的工具和灵感: - **ProjectDiscovery** — Subfinder, Chaos, httpx, Naabu, Katana, Nuclei - **OWASP** — Open Web Application Security Project - **Amass** — 网络映射和攻击面发现 - **Assetfinder** — 被动资产枚举 - **FFUF** — 快速的 Web Fuzzing - **Wappalyzer** — Web 技术指纹识别 ## Python 库 该项目还依赖于几个出色的 Python 库: - **Requests** — HTTP 客户端 - **Rich** — 终端格式化和进度可视化 - **BeautifulSoup** — HTML 解析 - **Jinja2** — 模板渲染 - **Plotly** — 交互式数据可视化 开源软件的繁荣离不开协作、知识共享和社区贡献。我们由衷感谢所有开发、维护和支持这些项目的人,正是你们使像 Recon Automation Framework 这样的工具成为可能。

⬆️ 返回顶部

# 👨‍💻 作者 **Sahadat Hossain** 网络安全研究员 • 渗透测试员 • Python 开发者 ### 联系方式 - 📧 **电子邮件:** pentester.sahadathossain@gmail.com - 💼 **LinkedIn:** https://www.linkedin.com/in/pentester-sahadat-hossain/ - 🐙 **GitHub:** https://github.com/sahadatx - 🌐 **作品集:** https://sahadatx.github.io/Personal-Portfolio/ 如果您觉得这个项目有用,请考虑通过以下方式支持它: - ⭐ 为仓库加星 - 🍴 Fork 该项目 - 🤝 贡献改进 - 📢 与他人分享

Sahadat Hossain 用 ❤️ 制作

⬆️ 返回顶部

标签:GitHub, Python, Transformers, 实时处理, 密码管理, 插件架构, 文档结构分析, 无后门, 自动化侦察, 资产测绘