pwviptbl/ReconForge

GitHub: pwviptbl/ReconForge

面向红队操作的自动化渗透测试框架,整合多种安全工具实现从侦察到漏洞评估的全流程编排。

Stars: 2 | Forks: 0

# 🔍 ReconForge ## 介绍 **ReconForge** 是一个为 **Red Team** 操作开发的自动化渗透测试框架。当前流程已简化,只需少量命令即可正常运行:发现攻击面、映射真实入口、测试关键点并生成报告。 ### 为什么选择 ReconForge? - **易于操作**:为常见场景提供预置配置文件 - **模块化**:可扩展的插件系统 - **功能全面**:从侦察到漏洞利用 - **自动化**:使用单个命令执行完整扫描 ## 功能 ### Red Team 能力 | 类别 | 描述 | |-----------|-----------| | **Reconnaissance** | DNS、子域名、Web 技术、网络映射 | | **Network Attack Surface** | 端口扫描、Nmap NSE、SSL/TLS、服务暴露 | | **Web Attack Vectors** | 爬取、表单映射、真实请求及 Web 漏洞 | | **Vulnerability Assessment** | Nuclei 模板和基于 HTTP 请求的扫描器 | | **Exploit Intelligence** | 自动搜索漏洞利用代码 | | **Firewall/WAF Detection** | 识别活跃的防护措施 | ### 推荐配置文件 与其手动组装长长的插件列表,更推荐使用配置文件: - `web-map`:对路由、表单、上传点和参数进行温和映射 - `web-test`:`web-map` 加上基于请求的 Web 扫描器 - `infra`:端口、服务、SSL、防火墙和基础设施暴露 插件仍可通过 YAML 启用,但现在默认路径是通过配置文件。 **外部集成**: - `nmap` - 高级网络扫描器 - `nuclei` - 漏洞扫描器 - `subfinder` - 子域名枚举 - `whatweb` - 技术检测 ## 安装 ### 系统要求 ``` # Debian/Ubuntu/Kali - Instalar dependências ./scripts/system_update.sh ``` ### Python 要求 ``` pip install -r requirements.txt ``` ### 外部工具(可选) ``` # Kali Linux já possui a maioria sudo apt install nmap nuclei subfinder whatweb ``` ## 使用 ### 官方路径 项目现在使用单一执行引擎:分阶段 pipeline。 如果您仅运行: ``` ./run.sh example.com ``` 默认配置文件将是 `web-test`。 ### 配置文件 ``` # Perfil padrao para web ./run.sh example.com # Mapear entradas web e requests observadas ./run.sh example.com --profile web-map # Mapear e testar vetores web ./run.sh example.com --profile web-test # Foco em infraestrutura ./run.sh example.com --profile infra # Listar perfis ./run.sh --list-profiles # Ver saude do ambiente e dependencias ./run.sh --healthcheck # Mostrar rotas e parametros de um run ja executado ./run.sh --show-web-map 50 # Rodar autenticado com cookies/token carregados de arquivo ./run.sh https://app.exemplo.local/dashboard --session-file sessions/app.yaml # Modo avancado do mesmo pipeline ./run.sh example.com --pipeline --recon-plugins PortScannerPlugin,WebFlowMapperPlugin ``` ### 通过文件进行身份验证会话 要访问需要认证的区域而无需创建固定的项目配置,请创建一个 YAML 或 JSON 文件并传递 `--session-file`。 在 [examples/session.example.yaml](/home/kali/Modelos/ReconForge/examples/session.example.yaml) 有一个现成的模板。 示例: ``` headers: Authorization: Bearer eyJhbGciOi... cookies: PHPSESSID: abc123 XSRF-TOKEN: xyz456 local_storage: authToken: eyJhbGciOi... ``` 或者,如果您愿意,可以使用 `cookie_string`: ``` cookie_string: "PHPSESSID=abc123; XSRF-TOKEN=xyz456" ``` 同一个文件会被 `WebFlowMapperPlugin`、HTTP 扫描器和漏洞利用阶段重复使用。 ### AI 辅助补充报告 如果环境中配置了 `GEMINI_API_KEY`,`stage_report` 会尝试在最终的 Markdown 中添加两个额外部分: - `AI 辅助执行摘要` - `AI 辅助技术解读` 如果密钥不存在、已过期或 API 调用失败,当前的技术报告仍会正常生成,不会中断运行。 ### Web map 的实用解读 在运行 `web-map` 或 `web-test` 后,使用: ``` ./run.sh --show-web-map 50 ``` 您将看到: - 在 DOM 中检测到的表单 - 实际观察到的请求 - 按存储桶分组的参数 - 与每个请求关联的 UI 操作 当 DOM 和真实请求之间存在差异时,观察到的请求为事实来源。 #### 可选:使用 Tor(针对较“喧闹”的插件) 当使用带有暴力破解/模糊测试的插件(例如 `DirectoryScannerPlugin`)时,您可以通过 Tor(SOCKS5 代理)路由请求,以降低 IP 被封锁的风险。 在 `config/default.yaml` 中进行全局配置: ``` network: tor: enabled: false proxy_url: socks5h://127.0.0.1:9050 ``` 或按插件启用(推荐,仅在有意义的地方应用): ``` plugins: config: DirectoryScannerPlugin: use_tor: true ``` 注意: - Tor 需要在本地运行(默认 SOCKS 端口 `9050`)。 - 要让 SOCKS 与 `requests` 配合工作,需要安装 `pysocks` 依赖项(已包含在 `requirements.txt` 中)。 - 即使 `network.tor.enabled: true`,您也可以通过在插件中设置 `use_tor: false` 来保持某些插件不使用 Tor(例如 `ExploitSearcherPlugin`、`ReconnaissancePlugin`)。 - 基于外部工具的插件(例如 `nuclei`、`whatweb`、`subfinder`)在启用 `use_tor` 时会尝试通过环境变量(`ALL_PROXY`/`HTTP(S)_PROXY`)使用代理,但这取决于工具本身的支持情况。 - 当 `network.tor.enabled: true` 时,项目现在会在启动前验证本地 Tor 代理是否可访问。 - 兼容的 HTTP/浏览器流程开始集中使用 Tor,包括 Playwright 和漏洞利用 pipeline。 - 与 Tor 不兼容的插件(例如使用底层 socket/Nmap/本地 DNS 的扫描)在严格 Tor 模式下会被阻止,以避免流量在代理之外静默泄露。 启动 Tor 服务: ``` sudo apt update sudo apt install -y tor # subir e iniciar no boot sudo systemctl enable --now tor # verificar se o SOCKS está ouvindo (padrão 9050) # use sem `-p` para não depender de root e sem regex com escape dobrado ss -ltn | rg '127\\.0\\.0\\.1:9050|:9050 ' || netstat -ltn | rg '127\\.0\\.0\\.1:9050|:9050 ' ``` 注意:在 Debian/Kali 上,持续运行的进程通常显示为 `tor@default.service`。 您不需要(通常也无法)直接对其执行 `enable`;启用 `tor.service` 会在引导时拉起 `tor@default.service`。 如果 `systemctl status tor@default` 显示 `active (running)` 但上述命令未返回任何内容,请不带过滤器进行验证: ``` ss -ltn | rg '9050|9051' ``` 如果端口 `9050` 未打开,请检查 `/etc/tor/torrc` 并确保: ``` SocksPort 9050 ``` 可选:尝试大约每 1 分钟切换一次电路。 这在某些场景下可能有帮助,但不保证每次请求都获得新 IP,并可能降低性能/稳定性。 编辑 `/etc/tor/torrc`: ``` MaxCircuitDirtiness 60 ``` 并重启服务: ``` sudo systemctl restart tor ``` ### 额外工具(可选) 某些插件使用外部工具(如果已安装)来增加覆盖率,而无需繁重的暴力破解: - `KatanaCrawlerPlugin` (katana):用于收集端点的快速爬虫 - `GauCollectorPlugin` (gau):收集历史 URL (Wayback/CommonCrawl) 推荐快捷方式:运行 `scripts/system_update.sh`(现在它会自动安装 `katana` 和 `gau`,以及系统依赖项)。 安装(通过 Go): ``` # katana go install -v github.com/projectdiscovery/katana/cmd/katana@latest # gau go install -v github.com/lc/gau/v2/cmd/gau@latest # garanta que o binario esta no PATH (geralmente ~/go/bin) export PATH=\"$HOME/go/bin:$PATH\" ``` 关于 `httpx` 的说明: - 在 Kali/Debian 上可能存在一个 `httpx` 二进制文件,它是 Python HTTPX(HTTP 客户端)的 CLI,而不是 ProjectDiscovery 的工具包。 - 如果您通过 Go 安装 ProjectDiscovery 的 `httpx`,请确保它在 `PATH` 中位于前面(例如:`~/go/bin` 在 `/usr/bin` 之前),否则会调用错误的二进制文件。 ## 交互式菜单命令 | 命令 | 描述 | |---------|-----------| | `1-N` | 按编号选择插件 | | `nome` | 按名称选择插件(部分匹配) | | `r` | 查看详细结果 | | `d` | 查看当前发现 | | `s` | 查看发现的服务 | | `v` | 查看漏洞 | | `q` | 结束扫描 | ## 报告 ### 输出格式 报告保存在 `dados/scan_YYYYMMDD_HHMMSS.json` 中,包含: - **元数据**:目标、持续时间、执行的插件 - **发现**:主机、端口、服务、技术 - **漏洞**:CVE、严重性、描述 - **错误**:执行失败 ### 报告示例 ``` { "metadata": { "target": "example.com", "duration_seconds": 45.2, "plugins_executed": ["PortScannerPlugin", "DirectoryScannerPlugin"] }, "discoveries": { "hosts": ["192.168.1.1"], "open_ports": [22, 80, 443], "services": [{"port": 80, "service": "HTTP"}] }, "vulnerabilities": [ {"severity": "HIGH", "title": "SSL Certificate Expired"} ] } ``` ## 项目结构 ``` ReconForge/ ├── scripts/ │ └── main.py # Ponto de entrada ├── core/ │ ├── minimal_orchestrator.py # Orquestrador principal │ ├── plugin_manager.py # Gerenciador de plugins │ ├── plugin_base.py # Classes base │ └── config.py # Configurações ├── plugins/ # Plugins disponíveis ├── wordlists/ # Wordlists para fuzzing ├── utils/ # Utilitários └── dados/ # Relatórios gerados ``` ## 插件管理 ``` # Listar plugins disponíveis python scripts/manage_plugins.py list # Habilitar plugin python scripts/manage_plugins.py enable NomePlugin # Desabilitar plugin python scripts/manage_plugins.py disable NomePlugin ``` ## 贡献 欢迎贡献!要添加新插件: 1. 在 `plugins/` 中创建一个文件 2. 继承 `BasePlugin`、`WebPlugin` 或 `NetworkPlugin` 3. 实现 `execute()` 方法 4. 插件将被自动检测 ## 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件。

ReconForge - 自动化渗透测试框架
为 Red Team 操作而开发

标签:AES-256, ASM, CISA项目, CTI, CVE利用, DNS枚举, Exploit-DB, GitHub, Google, Nmap, Nuclei, Python安全工具, Web安全, 加密, 子域名挖掘, 密码管理, 开源软件, 插件化架构, 插件系统, 攻击模拟, 漏洞扫描器, 漏洞评估, 特征检测, 网络安全, 网络安全审计, 网络安全工具, 自动化渗透测试, 蓝队分析, 虚拟驱动器, 调试插件, 逆向工具, 隐私保护, 驱动签名利用