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 继承冷却池记忆。