rinz0x0cruz/exploitrank
GitHub: rinz0x0cruz/exploitrank
ExploitRank 是一个基于 Go 的自托管漏洞优先级排序工具,通过融合 CVSS、EPSS、CISA KEV 和公开 PoC 等多源信号,帮助安全团队按真实可利用性而非单纯严重程度来排序和决定漏洞修复优先级。
Stars: 0 | Forks: 0
# ExploitRank
[](https://github.com/rinz0x0cruz/exploitrank/actions/workflows/ci.yml)
[](https://go.dev)
[](LICENSE)
**ExploitRank** 是一个自托管的 CLI + 离线 dashboard,能够接入公开的 CVE / 威胁情报 feeds,根据**真实世界的可利用性**对漏洞进行排名,并告诉你**优先修复什么** —— 核心功能无需 API 密钥,完全兼容离线环境,且支持调度。
它将 **CVSS + EPSS + CISA KEV + 公开 PoC** 信号融合为一个透明的分数,以及一个 **SSVC 风格的行动指令**(`Act Now` / `Schedule` / `Track` / `Monitor`),并为每个 CVE 提供一行简短的理由。
## 为什么需要
一个没有利用意图的 CVSS 9.8 漏洞,其紧急程度很少能比得上一个存在于 CISA KEV 中、具有公开 PoC 且 EPSS 较高的 CVSS 7 漏洞。ExploitRank 优先考虑被利用的可能性,而不仅仅是严重程度。
## 功能
- **无需密钥的多源接入**(并行执行):CISA KEV、NVD 2.0、FIRST EPSS、GitHub Advisories、OSV.dev、公开 PoC 索引、安全新闻 RSS。
- **感知可利用性的评分**,带有可配置的加权模型 + KEV 下限 + SSVC 行动标签。
- **本地 SQLite 存储**,支持去重以及首次/最后出现的时间追踪。
- 针对新增 KEV / Act-Now 条目的**“最新动态”差异对比**。
- 跨越所有数据源的**按需单 CVE 查询**。
- **自包含的离线 HTML dashboard**(内联 CSS/JS),外加 JSON + CSV 导出。
- **关注列表**,用于提升你关注的 vendor/product/keyword 的权重。
- **自愿开启的警报**,针对新增 KEV / Act-Now 发送至 Slack/Discord。
## 架构
```
flowchart LR
subgraph Feeds [Public sources]
KEV[CISA KEV]; NVD[NVD 2.0]; EPSS[FIRST EPSS]; GHSA[GitHub Advisories]; OSV; POC[PoC-in-GitHub]; RSS[News RSS]
end
Feeds -->|parallel| N[Normalize/merge]
N --> S[Scoring engine\nCVSS+EPSS+KEV+PoC -> SSVC]
S --> DB[(SQLite)]
DB --> CLI[report/diff]; DB --> H[HTML dashboard]; DB --> X[JSON/CSV]
S --> A[Slack/Discord alerts]
```
## 安装
```
go install github.com/rinz0x0cruz/exploitrank/cmd/exploitrank@latest
# 或
git clone https://github.com/rinz0x0cruz/exploitrank && cd exploitrank && go build ./cmd/exploitrank
```
## 使用方法
```
exploitrank update # fetch all sources, score, store
exploitrank report --top 20 # ranked digest + latest news
exploitrank lookup CVE-2021-44228
exploitrank dashboard --open # offline HTML
exploitrank export # JSON + CSV
exploitrank diff # new in last 24h
exploitrank selftest # offline scoring tests
```
## 评分机制
`score = 100 × (w_cvss·CVSS/10 + w_epss·EPSS + w_kev·KEV + w_poc·PoC)`,限制在 0–100 之间;命中 KEV 会强制提升至可配置的下限。行动指令:`KEV` 或 (`PoC` 且 `EPSS ≥ 0.2`) → **Act Now**;高 CVSS+EPSS → **Schedule**;PoC/EPSS → **Track**;否则为 **Monitor**。权重/阈值配置位于 `config.json` 中。
## 调度
**cron:** `0 7 * * * cd /opt/exploitrank && ./exploitrank update && ./exploitrank dashboard`
**Task Scheduler:** `schtasks /create /tn ExploitRank /tr "C:\path\exploitrank.exe update" /sc daily /st 07:00`
## 配置参考
`config.json`: `sources`, `weights`, `thresholds`, `watchlist`, `news_feeds`, `alerts`, `output`。环境变量:`NVD_API_KEY`, `GITHUB_TOKEN`(用于提升速率限制),`EXPLOITRANK_SLACK_WEBHOOK`, `EXPLOITRANK_DISCORD_WEBHOOK`。
## 展示的技能
Go(标准库优先,goroutine 扇出,单一的合理依赖),具有弹性的 HTTP,公开 CTI feed 集成,可利用性评分/SSVC,SQLite,离线 dashboard,CI,安全工具设计。
## 路线图
Nuclei/ExploitDB/Metasploit PoC 信号 · 扫描器导入(Nessus/OpenVAS)· ATT&CK 标签 · Docker · 可选的 AI 摘要(默认关闭)。
## 致谢
CISA KEV, NVD, FIRST EPSS, GitHub Advisories, OSV.dev, poc-in-github。灵感来源于 SploitScan, CVE_Prioritizer, cvemap, OpenCVE, Vulristics。**仅使用公开数据。** MIT 授权许可。
标签:Go, GPT, PB级数据处理, Ruby工具, SQLite, 可视化面板, 后端开发, 多模态安全, 威胁情报, 安全运维, 开发者工具, 日志审计, 漏洞管理