mohamedxk9tb/BladeRecon

GitHub: mohamedxk9tb/BladeRecon

BladeRecon 是一款面向漏洞赏金和 Web 渗透测试的轻量级模块化侦察框架,覆盖从子域名发现到漏洞扫描与报告生成的完整攻击面发现工作流。

Stars: 3 | Forks: 0

# BladeRecon ![BladeRecon 横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/f1ec924ff3123302.png) ![Python](https://img.shields.io/badge/python-3.8%2B-blue) ![版本](https://img.shields.io/badge/version-0.2.1-cyan) ![CLI](https://img.shields.io/badge/interface-Rich%20CLI-0f766e) ![报告](https://img.shields.io/badge/reports-HTML%20%2B%20Markdown-4b5563) ![许可证](https://img.shields.io/badge/license-MIT-green) BladeRecon 是一个轻量级的侦察框架,专为漏洞赏金、Web 渗透测试以及侧重于报告的攻击面发现而设计。它保持工作流以终端为核心和模块化,同时生成整洁的 TXT、JSON、JSONL、Markdown 和 HTML 输出。 开发者:[Mohamed Kotb](https://github.com/mohamedxk9tb) ## 项目概述 BladeRecon 帮助你从目标域名获取可读的侦察报告: ``` subdomains -> probe -> js -> endpoints -> secrets -> parameters -> intelligence -> advanced -> screenshots -> nuclei -> report ``` 它的设计目标是: - 轻量级且对 Windows 友好 - 对初学者友好,且不隐藏操作细节 - 适用于需要安全默认设置的漏洞赏金和小型渗透测试工作流 - 易于手动检查、基于文件自动化,以及作为报告交付 它无意取代 Amass、分布式侦察堆栈或企业级扫描器。 ### CLI 预览 ![BladeRecon CLI 预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/d07ecb4832123307.png) CLI 预览展示了终端优先的工作流:带有品牌标识的启动界面、 模块状态输出、依赖检查和扫描摘要。这非常重要, 因为 BladeRecon 专为需要了解正在运行什么、跳过了什么以及 将产物写入何处的研究人员而设计。 数据政策:使用了经过脱敏处理的 `example.com` 目标,无虚假发现,无敏感数据。 ### 报告预览 ![BladeRecon 报告预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/308ffbc304123313.png) 报告预览展示了深色离线报告,包括决策 仪表板、“从这里开始”的调查队列、活动测试计划、支持性 证据、发现状态和性能分析。这很重要,因为 BladeRecon 的输出旨在帮助研究人员确定后续工作的优先级,而 不仅仅是统计发现的产物数量。 数据政策:使用了经过脱敏处理的样本数据,无任何虚假发现。 ## 功能 | 领域 | 能力 | | --- | --- | | 子域名 | 被动来源、来源归因、缓存、可选的轻量级 DNS 扩展 | | 探测 | 存活主机、状态码、重定向、标题、内容长度、服务器/CDN/WAF 提示 | | JavaScript | 从存活主机查找外部 JavaScript 资产,并在实时 HTML 受阻时复用历史 JS | | Endpoints | 从已下载和历史 JavaScript 中提取 endpoint 候选项 | | 密钥 | 信息性密钥模式检测,带有置信度和风险标签 | | 参数 | 历史 URL 来源,加上本地回退 URL 清单和 wordlist 候选项 | | 截图 | 可选的 Playwright 截图,带有重复/占位符过滤功能 | | 情报 | 技术、基础设施、云资产、风险和模板选择上下文 | | 高级侦察 | 历史 URL、历史 JS、低噪声内容发现、安全标头资产,以及可解释的资产优先级排序 | | Nuclei | 可选的 Nuclei 封装器,带有安全、均衡、激进、情报引导的配置文件、ROI 限制,以及在合理情况下的轻量级基线安全网 | | 报告 | 深色主题的离线 HTML 和 Markdown 报告,带有管理仪表板、统一的“我该从哪里开始”队列、活动测试计划、分离的研究/风险评分、章节搜索、导出和性能分析 | | 安全性 | 安全配置文件、请求上限、单主机并发、速率限制和 Nuclei 超时报告 | | 实用工具 | Doctor、修复、缓存管理、恢复状态和安装助手 | ## 支持的模块 | 命令 | 描述 | 主要输出 | | --- | --- | --- | | `subdomain` | 从多个来源发现子域名 | `subdomains.txt`, `subdomains.json`, `subdomains.jsonl` | | `probe` | 探测存活主机 | `alive.txt`, `probe.json`, `probe.jsonl` | | `js` | 发现 JavaScript 资产 | `js_files.txt`, `js_files.json` | | `endpoints` | 从 JavaScript 提取 endpoint | `endpoints.txt`, `endpoints.json` | | `secrets` | 检测暴露的 JavaScript 密钥模式 | `secrets.txt`, `secrets.json` | | `param` | 发现 URL 参数 | `parameters.txt`, `parameters.json`, `parameters.jsonl` | | `intelligence` | 从现有产物生成侦察情报 | `intelligence/*.json`, `technology/technology.json` | | `advanced` | 从现有产物生成高级侦察情报 | `historical/`, `historical_js/`, `content_discovery/`, `asset_priority.json` | | `screenshot` | 对存活主机进行截图 | PNG 文件, `failed_screenshots.txt` | | `nuclei` | 运行 Nuclei 模板 | `results.json`, `results.jsonl`, `results.md` | | `report` | 生成 Markdown 和 HTML 报告 | `report.md`, `report.html` | | `full` | 运行标准工作流 | 所有模块输出 | ## 安装说明 请参阅 [INSTALL](INSTALL.md) 获取完整的 Windows、Python、Go、Nuclei、Playwright、Docker 和验证说明。 推荐安装方式: ``` pipx install bladerecon bladerecon doctor ``` 备选安装方式: ``` python -m pip install bladerecon bladerecon doctor ``` 从源码进行开发安装: ``` git clone https://github.com/mohamedxk9tb/BladeRecon.git cd BladeRecon python -m venv .venv .venv\Scripts\activate python -m pip install --upgrade pip python -m pip install . bladerecon doctor ``` 可选的外部工具: ``` bladerecon install-deps python -m playwright install chromium ``` 使用 `install-deps` 时,BladeRecon 会安装 v3 发布版本的 Nuclei。 ## 快速示例 首次安装后从这里开始: ``` bladerecon doctor bladerecon full example.com --profile safe bladerecon report example.com ``` `bladerecon scan example.com --profile safe` 也被接受为 `bladerecon full` 的首次使用别名。 ``` bladerecon --help bladerecon doctor bladerecon subdomain hackerone.com bladerecon probe hackerone.com bladerecon js hackerone.com bladerecon endpoints hackerone.com bladerecon secrets hackerone.com bladerecon param hackerone.com bladerecon intelligence hackerone.com bladerecon advanced hackerone.com --profile safe bladerecon report hackerone.com ``` 完整工作流: ``` bladerecon full hackerone.com bladerecon full hackerone.com --profile safe bladerecon report hackerone.com ``` 恢复与缓存: ``` bladerecon resume hackerone.com bladerecon cache info bladerecon cache clear ``` Docker: ``` docker build -t bladerecon . docker run --rm bladerecon doctor docker run --rm -v "%cd%\results:/app/results" bladerecon full hackerone.com ``` ## 命令参考 | 命令 | 示例 | 预期输出 | | --- | --- | --- | | `subdomain` | `bladerecon subdomain hackerone.com` | `results/hackerone.com/subdomains/` | | `probe` | `bladerecon probe hackerone.com` | `results/hackerone.com/probe/` | | `js` | `bladerecon js hackerone.com` | `results/hackerone.com/js/` | | `endpoints` | `bladerecon endpoints hackerone.com` | `results/hackerone.com/endpoints/` | | `param` | `bladerecon param hackerone.com` | `results/hackerone.com/parameters/` 或跳过状态 | | `intelligence` | `bladerecon intelligence hackerone.com` | `results/hackerone.com/intelligence/` 和 `results/hackerone.com/technology/` | | `advanced` | `bladerecon advanced hackerone.com --profile safe` | 历史、内容发现、标头资产和优先级产物 | | `secrets` | `bladerecon secrets hackerone.com` | `results/hackerone.com/secrets/` | | `screenshot` | `bladerecon screenshot hackerone.com` | `results/hackerone.com/screenshots/` 或跳过状态 | | `nuclei` | `bladerecon nuclei hackerone.com --profile balanced` | `results/hackerone.com/nuclei/` 或跳过状态 | | `report` | `bladerecon report hackerone.com` | 最新隔离的完整运行报告,或旧版的 `results/hackerone.com/reports/` | | `full` | `bladerecon full hackerone.com --profile safe` | 在 `results/hackerone.com/runs//` 下创建新的隔离运行 | | `doctor` | `bladerecon doctor` | 运行时依赖表 | | `resume` | `bladerecon resume hackerone.com` | 恢复未完成的完整工作流模块 | | `cache info` | `bladerecon cache info` | 缓存大小、来源和时间 | | `cache clear` | `bladerecon cache clear` | 安全缓存清理摘要 | | `--version` | `bladerecon --version` | 版本、构建日期、Python、平台 | | `install-deps` | `bladerecon install-deps` | 外部依赖安装助手 | ## Doctor 命令 在首次正式扫描前运行 doctor: ``` bladerecon doctor ``` Doctor 检查: - Go 可用性 - Nuclei 可用性 - Playwright 包 - Chromium 浏览器可用性 - 结果目录写入权限 可选依赖可以缺失。BladeRecon 会跳过相关模块并继续执行工作流。 ## 扫描安全配置文件 BladeRecon 默认使用 `balanced`。在漏洞赏金项目或共享基础设施中使用 `safe`,仅在你明确希望增加主动请求量时才使用 `aggressive`。 | 配置文件 | 预期用途 | 主动保护措施 | | --- | --- | --- | | `safe` | 漏洞赏金和保守验证 | 低并发、低 RPS、更严格的请求上限,HTTP/浏览器模块对每台主机仅限一次请求 | | `balanced` | 默认的日常侦察 | 中等并发、限制 JS/截图/Nuclei 目标数量、单主机限制 | | `aggressive` | 明确选择的高速度 | 更高的上限和并发,同时仍保留速率限制 | 示例: ``` bladerecon probe hackerone.com --profile safe bladerecon js hackerone.com --profile safe bladerecon screenshot hackerone.com --profile safe bladerecon nuclei hackerone.com --profile safe bladerecon full hackerone.com --profile safe ``` 当前激活的配置文件会写入到运行标记、`scan_state.json`、模块元数据和 HTML 报告中。`bladerecon resume ` 会恢复最新隔离的运行,并保留该运行存储的配置文件。 智能 Nuclei 保留了技术引导的标签选择功能,但它不再是 唯一的覆盖层。当自动选择标签时,BladeRecon 可能会 针对 `critical,high` 严重程度运行轻量级的无标签基线扫描,但这仅 适用于未覆盖的高置信度或已验证的机会主机。当没有标签、 已验证的攻击面或高置信度机会时,ROI 限制机制会 跳过仅基线的 Nuclei 扫描,而不是将运行时间浪费在低价值模板上。 如果 ROI 限制机制判定进行仅基线运行是合理的,BladeRecon 会首先将目标列表 限定在已验证或高置信度的机会主机上,而不是扫描 每一台存活主机。报告和 `nuclei/metadata.json` 会显示 `coverage_strategy`、`roi_decision`、`target_scope`、`baseline_reason`、 `baseline_skip_reason`、`baseline_roi`、`baseline_targets` 以及 `baseline_scan` 状态。 显式的 `--templates` 路径可以指向单个 Nuclei 模板文件或 自定义模板目录;它们不需要遵循官方的模板仓库 结构。 ## 输出结构 完整扫描按运行隔离。每次 `bladerecon full ` 都会在 `results//runs/` 下创建一个新 文件夹,并且 `results//latest_run.json` 会指向最近一次的有效运行。`bladerecon report ` 会读取该 最新有效运行;如果不存在隔离的运行,它将回退到由各个模块命令使用的旧版扁平化 `results//` 目录结构。 ``` results/ `-- example.com/ |-- latest_run.json `-- runs/ `-- 20260611T121505Z-safe-ea0a5419/ |-- .bladerecon_run.json |-- scan_state.json |-- subdomains/ | |-- subdomains.txt | |-- subdomains.json | `-- subdomains.jsonl |-- probe/ | |-- alive.txt | |-- metadata.json | |-- probe.json | `-- probe.jsonl |-- js/ | |-- js_files.txt | |-- metadata.json | |-- js_files.json | `-- files/ |-- endpoints/ | |-- endpoints.txt | |-- endpoints.json | `-- metadata.json |-- secrets/ | |-- secrets.txt | `-- secrets.json |-- parameters/ | |-- parameters.txt | |-- parameters.json | |-- parameters.jsonl | `-- parameters_from_urls.txt |-- technology/ | |-- technology.txt | `-- technology.json |-- intelligence/ | |-- attack_surface.json | |-- cloud_assets.json | |-- historical_dns.json | |-- infrastructure.json | |-- infrastructure_assets.json | |-- risk_score.json | `-- template_intelligence.json |-- historical/ | |-- urls.txt | |-- urls.json | |-- parameters.txt | |-- endpoints.txt | |-- endpoints.json | `-- metadata.json |-- historical_js/ | |-- js_urls.txt | |-- js_urls.json | |-- endpoints.txt | |-- endpoints.json | |-- parameters.txt | `-- metadata.json |-- content_discovery/ | |-- interesting_paths.txt | |-- interesting_paths.json | `-- metadata.json |-- historical_diff.json |-- security_headers_assets.json |-- asset_priority.json |-- advanced_metadata.json |-- screenshots/ |-- nuclei/ | |-- metadata.json | |-- results.json | |-- results.jsonl | `-- results.md |-- reports/ | |-- report.html | `-- report.md `-- logs/ |-- scan.log |-- errors.log `-- scan_meta.json ``` ## 截图 截图是可选的,需要 Playwright Chromium: ``` python -m playwright install chromium bladerecon screenshot hackerone.com ``` 如果缺少 Chromium,BladeRecon 会显示跳过原因并继续执行。 截图元数据包括平均捕获时间、响应缓慢的目标、超时 目标以及单目标耗时,这样就能将耗时的浏览器捕获过程展现出来,而 不是隐藏在总运行时间中。 ## 信号质量 Endpoint 发现会抑制在范围内的 JavaScript 中发现的第三方 API URL,除非该 endpoint 的主机也在范围内。历史 JS 的 endpoint 产物会被 合并到同一个 endpoint 输出中,这样即使实时页面被阻止,仍然可以 提供攻击面证据。 高级侦察元数据包含历史 URL 来源的源级别 ROI, 包括选定的 URL、机会候选项、来源持续时间以及 信噪比。利用这些信息可以决定某个来源在未来扫描中 是否值得投入运行时间。 ## 路线图 - 保持 CLI 轻量级且对 Windows 友好 - 在不必要时不改变输出格式的前提下改进报告情报 - 为发布候选版本保持 README 和社交媒体资产的时效性 - 扩大对真实世界边缘情况的测试覆盖率 - 保持可选依赖的优雅和透明 - 准备 `v0.21` 以进行公开发布候选版本评估 ## 文档 - [INSTALL](INSTALL.md) - [QUICKSTART](QUICKSTART.md) - [TROUBLESHOOTING](TROUBLESHOOTING.md) - [CHANGELOG](CHANGELOG.md) ## 许可证 MIT
标签:Python, Web渗透测试, 动态插桩, 实时处理, 密码管理, 无后门, 日志审计, 特征检测, 自动化报告, 请求拦截, 逆向工具