Rayza-Slyce/bugslyce

GitHub: Rayza-Slyce/bugslyce

BugSlyce 是一款本地优先的授权侦察分类助手,帮助 CTF 和漏洞赏金操作员在受限安全边界内收集证据、整理线索并生成优先级摘要。

Stars: 0 | Forks: 0

# BugSlyce [![测试](https://github.com/Rayza-Slyce/bugslyce/actions/workflows/tests.yml/badge.svg)](https://github.com/Rayza-Slyce/bugslyce/actions/workflows/tests.yml) BugSlyce 是一款本地优先的侦察分类助手,专为授权实验室和 漏洞赏金风格的侦察而设计。它运行一个受限、具备范围意识的证据收集 工作流,保留原始产物,构建 BugSlyce 侦察包,并 优先处理有证据支持的线索以供人工审查。 BugSlyce 不会声称存在已确认的漏洞。它的候选结果和 优先级描述的是操作员接下来可能需要查看的位置,而不是漏洞利用 的严重程度或影响证明。 当前版本:`0.1.0` ## 为什么选择 BugSlyce? BugSlyce 专为侦察中最繁杂的中间阶段而生:当你有足够多的原始输出以至于 失去头绪,但又没有足够的确切信号来撰写报告时。它能保留 证据,对线索进行分组,并帮助你决定什么最值得优先进行 人工关注。 它专为独立操作员、CTF 选手以及漏洞赏金学习者设计,他们 希望进行可重复的初步侦察,而无需将笔记、终端输出 和截图散落在随机的文件夹中。 ## 运行界面 交互式启动器:

BugSlyce interactive launcher

已完成的流水线摘要: ``` BugSlyce project pipeline complete Final status: completed Step summary: * Completed: 11 * No-op: 1 * Failed: 0 Final outputs: * Report: ~/bugslyce-output/example/report.md * Runbook: ~/bugslyce-output/example/runbook.md * Evidence pack: ~/bugslyce-output/example-evidence-pack.zip ``` 操作员摘要线索: ``` Review First 1. Credential-like artefact review in homepage HTML Why: Parsed HTML evidence contains a comment referencing credential-like context and related sensitive keyword hits. Next: Review the saved HTML/source context manually. Do not submit forms, brute force, or treat any value as valid without explicit authorisation and manual validation. Signal: high ``` ``` flowchart LR A[Target + scope] --> B[Quick Recon] B --> C[Local evidence] C --> D[Operator Summary] C --> E[Runbook] C --> F[Evidence ZIP] ``` ## 安全模型 BugSlyce 仅适用于您已获授权评估的目标。 当前可用的 MVP 工作流强制执行以下边界: - 需要一个本地范围文件。 - 项目目标必须匹配类似目标的范围内条目。 - 实时项目流水线需要明确的 `--confirm`。 - 唯一的单命令流水线配置是 `lab-safe-tiny`。 - 实时阶段使用固定的、经过验证的命令格式和受限的超时时间。 - 证据和生成的报告保留在本地。 - 无 NSE 脚本。 - 无 UDP 扫描。 - 无暴力破解。 - 无漏洞利用。 - 无递归发现。 - 无表单提交。 - 无身份验证测试。 - 流水中不包含用户随意提供的命令标志、路径、URL 或字典。 - 在确定性的 MVP 流水线中无 LLM 调用。 范围匹配是一项安全控制措施,不能替代阅读实际的 项目或实验室规则。在每次实时运行前,请先审查生成的 `scope.md`。 安装 安装 BugSlyce 最简单的方法是使用 "pipx",它可以将 CLI 工具与您的系统 Python 环境隔离开来。 如果您尚未安装 "pipx",请先安装: sudo apt install pipx pipx ensurepath 重启终端,然后直接从 GitHub 安装 BugSlyce: pipx install git+https://github.com/Rayza-Slyce/bugslyce.git bugslyce 检查安装情况: bugslyce --version bugslyce doctor 对于贡献者或本地开发: git clone git@github.com:Rayza-Slyce/bugslyce.git cd bugslyce python3 -m venv .venv source .venv/bin/activate python -m pip install -U pip python -m pip install -e ".[dev]" bugslyce ## 快速开始 对于在交互式终端中的新用户,请从以下命令开始: ``` bugslyce ``` 交互式启动器可以运行 doctor(环境诊断)/就绪检查,搭建项目脚手架, 选择 **快速侦察** 或 **仅手动设置**,确认授权,并 可选择性地运行 MVP 流水线。快速侦察映射到当前的 `lab-safe-tiny` 流水线。**标准侦察** 和 **深度侦察** 是计划中的 未来模式,目前尚不可用。侦察模式名称并不能使活动 自动变得安全;授权和范围仍然至关重要。仅手动设置 会创建本地项目文件并打印下一步的安全命令预览,而不会 运行侦察。 交互模式默认使用 `~/bugslyce-output`,因此无论当前工作目录是什么, 项目输出都是可预测的。直接 CLI 命令 仍然使用您提供的路径。 高级用户和自动化脚本仍可使用直接命令。 检查本地就绪状态: ``` bugslyce doctor ``` 要进行直接操作,请搭建项目脚手架,审查 `scope.md`,然后 只有在确认授权和范围后,才运行 已批准的 MVP 流水线: ``` bugslyce project scaffold --name example-lab --target 10.10.10.10 --projects-dir bugslyce-output bugslyce project run --project bugslyce-output/example-lab/bugslyce_project.json --profile lab-safe-tiny --confirm ``` 审查包含证据支持的操作员摘要: ``` less bugslyce-output/example-lab/report.md ``` 询问 BugSlyce 接下来适合在本地采取什么行动: ``` bugslyce project next \ --project bugslyce-output/example-lab/bugslyce_project.json ``` `project next` 仅打印命令预览。它不会执行这些命令。 有关从就绪检查到审查、恢复 和证据处理的完整虚拟目标 MVP 演练,请参阅 [docs/DEMO_WALKTHROUGH.md](docs/DEMO_WALKTHROUGH.md)。 ## 流水线工作流 固定的 `lab-safe-tiny` 流水线按顺序运行以下批准的各个阶段: 1. 验证项目、范围和本地就绪状态。 2. 使用固定的 `lab-tcp-full` 配置运行完整的 TCP 发现。 3. 在发现的开放 TCP 端口上运行服务/版本检测。 4. 收集受限的 HTTP 标头、`robots.txt` 和主页 HTML。 5. 跟踪已收集证据中已存在的同源路径。 6. 创建一个不执行的 `lab-root-tiny` 内容发现计划。 7. 执行该确切批准的微型根目录发现计划。 8. 跟踪由内容发现所选定的路径。 9. 仅针对符合条件的高信号 HTML/应用程序路径获取正文内容。 10. 生成本地侦察状态。 11. 生成项目运行手册。 12. 导出便携式证据压缩包。 流水线在遇到必要失败时会停止。当没有符合条件的新任务时,内容跟踪和正文获取 可能会作为干净的无操作(no-op)而完成。 成功运行后: ``` less bugslyce-output/example-lab/report.md bugslyce project status \ --project bugslyce-output/example-lab/bugslyce_project.json bugslyce project next \ --project bugslyce-output/example-lab/bugslyce_project.json ``` ## 恢复工作流 全新的运行会省略 `--resume` 参数,并拒绝使用已存在的侦察清单、微型计划 目录或证据 ZIP 文件。 要继续中断或部分完成的项目: ``` bugslyce project run \ --project bugslyce-output/example-lab/bugslyce_project.json \ --profile lab-safe-tiny \ --confirm \ --resume ``` 恢复操作是保守的: - 它会重新验证本地就绪状态、目标和范围。 - 它仅重用已明确完成阶段的一致前缀部分。 - 它会验证项目目录内的清单产物路径。 - 它会验证微型计划的目标、配置、范围、输入和输出的来源。 - 它会拒绝目标混合、产物缺失、路径逃逸或状态不 明确的情况。 - 它会重新生成状态和运行手册输出。 - 它不会覆盖已存在的证据 ZIP 文件。 - 仅当已完成的流水线元数据验证了 先前的导出时,它才会跳过已存在的 ZIP 文件。 `project_pipeline.md` 和 `project_pipeline.json` 会记录已完成、 `skipped_existing`(因已存在而跳过)、无操作(no-op)、失败和待处理的阶段。 ## 输出结果 已完成的项目可能包含: - `report.md`:人类可读的 BugSlyce 侦察包和操作员摘要。 - `project_state.json`:结构化解析的资产、服务、路径、证据 和候选目标。 - `recon_manifest.json`:目标和原始产物来源。 - `recon_status.md` 和 `recon_status.json`:检测到的阶段、覆盖率、最近 执行情况以及确定性的下一步建议。 - `runbook.md`:项目路径、范围提醒、当前状态以及安全的 命令预览。 - `project_pipeline.md` 和 `project_pipeline.json`:流水线时间、步骤 状态、重用的证据、失败情况以及最终输出路径。 - `recon_execution.md` 和 `recon_execution.json`:最新的实时阶段元数据。 - 适用的特定阶段执行元数据。 - 清单引用的原始 nmap、curl、HTML、robots 和 gobuster 产物。 - `bugslyce-output/example-lab-evidence-pack.zip`:便携式证据归档文件。 证据包包含一个导出清单和安全 README。它可能 包含目标 IP、URL、响应标头、HTML、服务横幅以及 发现的路径。在分享前请先进行审查。 ZIP 条目的时间戳保持固定,以确保打包的可重复性。真实的 UTC 导出 时间存储在归档元数据中。 ## 操作员摘要 `report.md` 以确定性的操作员摘要开头: - **优先审查** 对最有用的证据支持线索进行排名。 - **低信号 / 避免陷入死胡同** 识别死链、静态资源、 默认页面干扰以及其他不应过度加权的内容。 - **当前覆盖率** 记录侦察包已观察到和未观察到的内容。 - 证据 ID 将摘要陈述与下方的详细原始和结构化 证据链接起来。 看似编码的产物会被保守地分类为 `likely_signal`、 `possible_signal` 或 `likely_noise`。BugSlyce 不会自动解码它们, 也不会声称其含义。 人工审查的候选目标只是线索,而非已确认的漏洞。优先级 代表的是人工关注的优先程度,而非漏洞利用的严重性。在 报告任何问题之前,必须进行人工验证。 ## 命令界面 大多数操作员应从交互式启动器开始: ``` bugslyce ``` 实用的直接命令: ``` bugslyce doctor bugslyce project next --project bugslyce-output/example-lab/bugslyce_project.json bugslyce project run --project bugslyce-output/example-lab/bugslyce_project.json --profile lab-safe-tiny --confirm --resume bugslyce recon export --input-dir bugslyce-output/example-lab --output bugslyce-output/example-lab-evidence-pack.zip ``` 查看完整的命令界面: ``` bugslyce project --help bugslyce recon --help ``` 较低级别的侦察命令仍可用于调试、经过审查的手动 操作以及特定阶段的恢复。实时低级命令保留了它们 各自的确认、范围、结构化参数、超时、输出路径和 来源检查。在手动操作前,请使用每个命令的 `--help`。 项目元数据是本地 JSON。它不应包含凭据、API key、 token 或其他机密信息。 ### 内容发现配置 - `lab-root-tiny` 使用内置的小型通用字典。它是被 `lab-safe-tiny` 认可的验证配置。 - `lab-root-light` 使用预期的本地 dirbuster 小型字典,是一个 更广泛的可选仅根目录配置。 `lab-root-light` 尚未成为单命令 MVP 流水线的一部分。 ### 证据包导出 ``` bugslyce recon export \ --input-dir bugslyce-output/example-lab \ --output bugslyce-output/example-lab-evidence-pack.zip ``` 导出仅读取本地文件。它不会运行侦察或发起网络请求。 它包含白名单报告、状态、执行元数据、范围以及 清单引用的原始产物。输入目录之外的路径和 遍历引用将被拒绝。 ## 现有证据导入 原有的确定性导入命令仍然可用: ``` bugslyce run INPUT_DIR --output OUTPUT_DIR ``` BugSlyce 可以解析选定的已保存的 nmap 标准输出、gobuster 输出、curl 标头、robots 文件、HTML、`httpx.jsonl`、URL 列表、子域名列表以及 `recon_manifest.json`。此模式执行本地解析和报告生成; 它不会运行实时侦察。 当存在时,`recon_manifest.json` 会提供主要目标和产物 上下文。即使重复的发现配置 观察到相同的路径,原始证据仍然可供审计。面向人类的状态和来源 摘要会将原始的发现路径行与唯一的 URL 字符串区分开来。 ## 当前 MVP 的局限性 - `lab-safe-tiny` 是有意保持保守的,并非详尽无遗的侦察。 - `lab-root-light` 是可选的且需手动计划;它不是 默认项目流水线的一部分。 - 当完成情况或来源不明确时,恢复操作可能会拒绝证据。 - 没有深度爬虫或递归发现功能。 - 没有经过身份验证的测试。 - 没有漏洞确认或利用工作流。 - 没有暴力破解、表单提交、NSE 或 UDP 流水线阶段。 - 在默认的确定性工作流中没有 LLM 分析。 - 没有云同步或证据上传功能。 - 范围匹配使用类似目标的简单精确主机和支持的后缀或 通配符形式。它不能替代人工对项目范围的审查。 - 状态和候选排名是确定性启发式算法,并非证明 目标是安全或存在漏洞的依据。 - BugSlyce 仅辅助证据收集和分类;它不能替代 人工验证或负责任的披露判断。 ## 本地数据安全 真实目标和证据应保留在 gitignored 位置,例如 `private_recon/` 和 `bugslyce-output/`。 不要提交: - 真实的目标标识符或私有项目范围。 - 原始侦察输出、屏幕截图、Burp 文件或 HAR 文件。 - 导出的 ZIP 文件。 - API key、凭据、cookie、token 或 `.env` 机密。 没有证据并不代表绝对安全。 ## 开发健全性检查 这些检查不会启动实时侦察: ``` .venv/bin/pytest .venv/bin/bugslyce doctor .venv/bin/bugslyce wizard .venv/bin/bugslyce project run --help .venv/bin/bugslyce recon --help ``` 测试套件模拟实时进程执行,严禁接触目标。 ## MVP 发布检查点 - 当前版本:`0.1.0` - 主要 MVP 流水线:`lab-safe-tiny` - 发布标签:`v0.1.0` - 软件包发布:未执行 在为未来的发布打标签之前,请参阅 [docs/RELEASE_CHECKLIST.md](docs/RELEASE_CHECKLIST.md)。 ## 许可证 BugSlyce 采用 MIT 许可证发布。完整文本请参阅 `LICENSE`。
标签:Blue Team, GitHub, 实时处理, 密码管理, 文档结构分析, 逆向工具