简介 🪶
cvemap 是由 ProjectDiscovery 开发的一款工具,为用户提供了从命令行轻松访问和探索公共 CVE(Common Vulnerabilities and Exposures)源的结构化方式。它旨在帮助用户高效地搜索和查询 CVE 数据集,并提供详尽的漏洞信息。
主要功能
CVE 数据集搜索与查询:cvemap 支持用户对 CVE 数据集进行高级搜索和查询,通过多种自定义过滤器精确查找目标漏洞。 CVE 映射:
EPSS 映射:将 CVE 数据与 EPSS(Exploit Prediction Scoring System)评分进行关联。 KEV 映射:关联 CVE 数据与 CISA’s Known Exploited Vulnerabilities,并标记易被攻击的漏洞。 CPE 映射:将 CVE 数据与 Common Platform Enumeration 相互映射。 GitHub POCs 映射:提供可用的 GitHub 上的公开 PoC(Proof of Concept)信息。 Nuclei 模板映射:通过 Nuclei 模板识别 CVE 的指纹。 HackerOne 报告映射:与 HackerOne 中的 CVE 发现报告相匹配。 支持多种输出格式:cvemap 接受标准输入并能以 JSONL 格式输出,以便于进一步的数据分析和处理。 开放的数据源接入:
连通 NVD(国家漏洞数据库)和 CISA 数据库,获取全面权威的漏洞信息。 动态集成 HackerOne 的 CVE 发现数据,发掘最频繁报告的漏洞。
安装 🍂
安装 cvemap
为了安装和使用 cvemap,首先需要一个 ProjectDiscovery Cloud Platform (PDCP) 帐号和 API 密钥。安装步骤如下:
1. 安装 Go 和配置环境
cvemap 需要使用最新版本的 Go 进行安装,如果尚未安装 Go,可以从 Go 官方网站获取安装包。
安装 Go 后,需要将 Go 的 bin 目录添加到系统路径中,以便能够从命令行运行 cvemap。
在 macOS 或 Linux 上: 打开终端输入以下命令,将 Go 的 bin 目录添加到系统路径:
echo 'export PATH=$PATH:$HOME/go/bin' >> ~/.bashrc source ~/.bashrc
在 Windows 上: 在系统环境变量中添加 Go bin 目录,具体步骤可以参考 这里的说明。
2. 安装 cvemap
在终端中运行下列命令,以安装 cvemap:
go install github.com/projectdiscovery/cvemap/cmd/cvemap@latest
该命令将 cvemap 安装到
$HOME/go/bin
目录中。
使用 🌿
参数选项
### 标志:
**配置:**
- **-auth** 配置 ProjectDiscovery 云 (pdcp) API 密钥
### 选项:
- **-id string[]** 列出给定 ID 的 CVE
- **-v, -vendor string[]** 列出给定供应商的 CVE
- **-p, -product string[]** 列出给定产品的 CVE
- **-eproduct string[]** 根据产品排除 CVE
- **-s, -severity string[]** 列出给定严重性的 CVE
- **-cs, -cvss-score string[]** 列出给定 CVSS 分数的 CVE
- **-c, -cpe string** 列出给定 CPE 的 CVE
- **-es, -epss-score string** 列出给定 EPSS 分数的 CVE
- **-ep, -epss-percentile string[]** 列出给定 EPSS 百分位的 CVE
- **-age string** 列出在给定天数内发布的 CVE
- **-a, -assignee string[]** 列出给定发布者分配的 CVE
- **-vs, -vstatus value** 列出给定的漏洞状态的 CVE,支持:modified(已修改)、rejected(已拒绝)、unknown(未知)、new(新)、confirmed(已确认)、unconfirmed(未确认)
### 更新:
- **-up, -update** 更新 CVE 映射到最新版本
- **-duc, -disable-update-check** 禁用自动 CVE 映射更新检查
### 过滤:
- **-q, -search string** 在 CVE 数据中搜索
- **-k, -kev** 显示被 CISA 标记为可利用漏洞的 CVE(默认值为 true)
- **-t, -template** 显示具有公开 Nuclei 模板的 CVE(默认值为 true)
- **-poc** 显示具有公开发布的 POC 的 CVE(默认值为 true)
- **-h1, -hackerone** 显示在 HackerOne 报告的 CVE(默认值为 true)
- **-re, -remote** 显示远程可利用的 CVE(AV:N & PR:N | PR:L)(默认值为 true)
### 输出:
- **-f, -field value** 在 CLI 输出中显示的字段,支持:age(年龄)、kev、template(模板)、poc、cwe、vendor(供应商)、vstatus(漏洞状态)、epss、product(产品)、assignee(分配者)
- **-fe, -exclude value** 在 CLI 输出中排除的字段,支持:age、kev、template、poc、cwe、vendor、vstatus、epss、product、assignee
- **-lsi, -list-id** 仅在输出中列出 CVE ID
- **-l, -limit int** 限制显示的结果数量(默认 50)
- **-offset int** 偏移要显示的结果
- **-j, -json** 以 JSON 格式返回输出
- **-epk, -enable-page-keys** 启用页面键以导航结果
### 调试:
- **-version** 版本
- **-silent** 静默模式
- **-verbose** 详细模式
3. 获取 PDCP API 密钥
前往 ProjectDiscovery Cloud Platform,使用现有账号登录或注册新账号。 登录后,点击获取 API 密钥。此密钥用于访问 cvemap 的 API 数据。 4. 配置 cvemap
使用以下命令将 API 密钥配置到 cvemap 中:
cvemap -auth
系统会提示输入 API 密钥,粘贴前面获取的密钥,然后按回车完成配置。
实例操作:
列出已知的高利用率漏洞:使用命令
cvemap -limit 10
可以列出前 10 个已知被利用的漏洞。输出结果包括 CVE ID、CVSS 评分、严重程度、EPSS、受影响产品等信息。特定产品的漏洞列表:例如,要查看 Atlassian Confluence 的相关漏洞,可以使用命令:
cvemap -product confluence -l 5
>
该命令会列出与 Confluence 相关的前 5 个 CVE。复杂查询与过滤:使用 cvemap,可以组合多重过滤条件。例如,利用 EPSS 分数和 CVSS 分数进行筛选:
cvemap -silent -cs '> 7' -es '> 0.00053' -l 5
>
通过此命令,用户能筛选出 EPSS 和 CVSS 高于特定阈值的漏洞。返回特定格式的输出:用户可以选择返回 JSON 格式的结果,以便进一步处理或集成:
cvemap -json
高级应用:
定制化输出:使用
f
选项可以自定义输出字段,例如:
cvemap -severity critical -field assignee,vstatus,poc -l 5
自动化与集成:通过组合命令与 JSON 输出,开发者可以将结果集成到自动化工作流中,便于漏洞管理和响应。
参考链接 🌲
https://docs.projectdiscovery.io/tools/cvemap/overview
https://github.com/projectdiscovery/cvemap
原文始发于微信公众号(人遁安全):CVEMAP 漏洞管理工具详解:全面管理漏洞信息,确保系统安全
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论