ismailops/recon-engine

GitHub: ismailops/recon-engine

recon-engine 是一款集成的侦察工具包,用于自动化子域名枚举、端口扫描和HTTP指纹识别,以支持安全评估中的网络资产发现。

Stars: 0 | Forks: 0

# recon-engine 用于授权安全评估的专业侦察工具包。 从单一CLI执行被动子域名枚举、异步TCP端口扫描、HTTP 指纹识别、结果存储和结构化报告生成。 ## 功能特性 - 通过crt.sh证书透明度日志进行被动子域名枚举 - 可配置并发数和超时时间的异步TCP端口扫描 - HTTP/HTTPS指纹识别:状态码、服务器头、技术栈推断 - 基于SQLite的结果存储,具备完整会话历史 - JSON导出和Markdown报告生成 - 带有Rich终端输出的简洁CLI - 在每个边界进行输入验证和Shell注入防护 - 无需root权限 ## 架构 ``` recon-engine/ ├── core/ │ ├── engine.py # Orchestrates scanner modules │ └── validator.py # Parses and validates all user input ├── scanners/ │ ├── subdomain.py # crt.sh passive enumeration + DNS resolution │ ├── ports.py # Async TCP connect scanner │ └── http_fingerprint.py# Header analysis and technology detection ├── database/ │ ├── schema.py # DDL │ └── store.py # SQLite CRUD layer ├── models/ │ ├── target.py # Validated Target model │ └── results.py # SubdomainResult, PortResult, HTTPFingerprint, ScanSession ├── reports/ │ └── markdown_report.py # Markdown report renderer ├── utils/ │ ├── exporter.py # JSON export │ └── logging_config.py # Logging setup ├── tests/ # pytest test suite ├── docs/ # Architecture, database, and usage documentation └── main.py # CLI entry point (Typer) ``` 各层完整描述和数据流图详见 [docs/architecture.md](docs/architecture.md)。 ## 安装说明 需要Python 3.11或更高版本。 ``` git clone https://github.com/ismailops/recon-engine.git cd recon-engine python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -r requirements.txt cp .env.example .env ``` ## 使用方式 ### 完整扫描 ``` python main.py scan example.com ``` 按顺序运行子域名枚举、端口扫描和HTTP指纹识别。 结果将持久化保存到 `outputs/recon.db`。 ### 子域名枚举 ``` python main.py subdomains example.com ``` ### 端口扫描 ``` python main.py ports example.com python main.py ports example.com --ports 22,80,443,8080,8443 ``` ### 导出与报告 ``` python main.py export example.com # outputs/_.json python main.py report example.com # outputs/__report.md ``` ### 会话历史 ``` python main.py sessions ``` ### 选项 | 标志 | 描述 | |---|---| | `--ports` | 逗号分隔的端口列表。默认:27个常用端口。 | | `--verbose` | 向标准错误输出启用DEBUG日志 | | `--no-confirm` | 跳过授权提示(用于CI) | 完整使用参考:[docs/usage.md](docs/usage.md) ## 运行测试 ``` pytest tests/ -v ``` 测试套件涵盖输入验证、模型约束、数据库CRUD操作、JSON导出和Markdown报告生成。测试期间不会进行任何网络调用。 ## 安全说明 **此工具仅用于授权安全测试。** 在大多数司法管辖区,未经授权对系统进行扫描是非法的。 代码库中的技术控制措施: - 所有用户提供的目标在进入任何扫描器前,都会经过 `core/validator.py` 的验证。 Shell元字符、路径遍历序列和其他恶意输入将被拒绝。 - 代码库中不存在任何使用用户提供的参数调用 `subprocess` 的情况。 - 所有数据库查询均使用参数化语句。SQL中不存在字符串插值。 - HTTP请求包含描述性的User-Agent,用于标识该工具。 - 敏感的响应头(`Set-Cookie`、`Authorization`)在存储前会被剥离。 - 所有网络操作均强制执行请求超时。 - 无需且不存储任何凭据、API密钥或秘密信息。 ## 路线图 - DNS暴力枚举(基于字典,可选启用) - Shodan和SecurityTrails集成,用于更广泛的被动枚举 - HTML报告输出 - 针对常见暴露的CVSS注释发现 - 速率限制和扫描节流控制 - 并发多目标扫描 - Docker镜像 ## 截图 显示各命令CLI输出的截图位于 `screenshots/` 目录。 这些截图将在首次生产运行后替换为实际的终端捕获。 | 截图 | 描述 | |---|---| | `screenshots/scan_full.png` | 带有Rich表格的完整扫描输出 | | `screenshots/subdomains.png` | 子域名枚举结果 | | `screenshots/ports.png` | 带有服务名称的端口扫描输出 | | `screenshots/report.md` | 生成的Markdown报告示例 | ## 许可证 MIT许可证。详见 [LICENSE](LICENSE)。
标签:计算机取证, 逆向工具