Panghu0802/cve-hunter-pro

GitHub: Panghu0802/cve-hunter-pro

Stars: 0 | Forks: 0

# CVE-Hunter-Pro CVE-Hunter-Pro 的定位是:基于 nuclei 模板做自动化 POC 验证,并将命中结果自动转换为 zscan 模板 PR。 支持两种执行方式: - 本地执行(适合开发调试、一次性全量) - GitHub Actions 执行(适合托管自动化) ## 核心流程 1. 读取模板源(官方或本地 nuclei-templates)。 2. 解析 CVE 模板并按年份过滤。 3. 检查 zscan 是否已存在该 CVE(已存在直接跳过)。 4. 生成/提取 FOFA 查询并获取目标。 5. 用 nuclei 对目标验证。 6. 命中后生成/更新 zscan 模板与 targets。 7. 编译检查并自动创建 PR。 8. 写入运行记录与 PR 记录。 ## 本地执行 ### 1) 常规一轮(推荐) python main.py --run-once --start-year 2023 ### 2) 本地模板引导 python main.py --bootstrap-local --start-year 2023 --local-templates-dir ../nuclei-templates-main ### 3) 官方模板引导 python main.py --bootstrap-official --start-year 2023 ### 4) 冷却池重试 python main.py --run-cooldown-once --start-year 2023 --retry-category zscan_miss 可选 `retry-category`:`all | no_fofa | nuclei_miss | zscan_miss` ### 5) 快速冒烟 python main.py --run-once --start-year 2023 --quick-test ## GitHub Actions 执行 工作流文件: - `.github/workflows/auto-poc.yml` 仓库 Secrets 需要配置: - `FOFA_EMAIL` - `FOFA_API_KEY` - `AUTO_POC_GITHUB_TOKEN`(对 `zcyberseclab/zscan` 有写权限) ### 在 Actions 页面如何选择参数 1. 进入仓库 `Actions`。 2. 点 `Auto POC Pipeline`。 3. 点右侧 `Run workflow`。 4. 先选 `execution profile`,再填年份和可选断点。 ### 参数说明(优化后) - `execution profile`(唯一主下拉) - `main_run_once`:主流程常规一轮(推荐日常) - `cooldown_all`:仅冷却池全量重试 - `cooldown_no_fofa`:仅冷却池 no_fofa - `cooldown_nuclei_miss`:仅冷却池 nuclei_miss - `cooldown_zscan_miss`:仅冷却池 zscan_miss - `minimum CVE year` - 最小年份阈值,例如 `2023` 表示仅处理 `CVE-2023+`。 - `optional resume CVE` - 断点续跑,例如 `CVE-2025-1234`。 - `quick smoke mode` - `true`:快速冒烟(小样本,验证链路)。 - `false`:完整执行(更慢但更全)。 ## 推荐执行策略 1. 第一轮建池: - `execution profile=main_run_once` - `minimum CVE year=2023` - `quick smoke mode=false` 2. 日常自动化: - `execution profile=main_run_once` - `minimum CVE year=2023` - `quick smoke mode=false` 3. 流水线健康检查: - `execution profile=main_run_once` - `quick smoke mode=true` 4. 专项补漏(优先): - `execution profile=cooldown_zscan_miss` - `quick smoke mode=false` ## 产物与记录 - `state/run_records.json`:每个 CVE 的状态记录(含 cooldown_category)。 - `state/pr_links.jsonl`:成功创建 PR 的记录。 - `logs/`:运行日志。 - Actions Artifact:`cvh-pro-state-and-logs`(每次运行可下载)。 ### 冷却池导出脚本 可一键把冷却池按类别导出为 3 个 txt: python scripts/export_cooldown_pool.py 默认输出到 `state/cooldown_exports/`: - `cooldown_no_fofa.txt` - `cooldown_nuclei_miss.txt` - `cooldown_zscan_miss.txt` ## 说明 - `main_run_once` 不会自动重试冷却池。 - 冷却池重试通过 `execution profile=cooldown_all/cooldown_no_fofa/cooldown_nuclei_miss/cooldown_zscan_miss` 显式触发。 - 工作流运行时会生成 `config.ci.yaml`,不会覆盖你的 `config.yaml`。 - Actions 每次启动会自动尝试恢复上一轮 artifact 中的 `state/run_records.json` 等状态文件,用于跨 run 继承冷却池记忆。