【免费下载链接】AutoPentestX
AutoPentestX – Automated Pentesting & Vulnerability Reporting Tool
AutoPentestX 是一款自动化渗透测试与漏洞评估工具,它把「端口扫描 → 漏洞识别 → CVE 情报查询 → CVSS 风险评分 → PDF 报告」串成一条流水线。很多人好奇:扫描出的服务版本,到底是怎么变成一条条带分数的 CVE 漏洞的?这篇文章带你用几分钟搞懂 AutoPentestX 的 CVE 情报来源——CIRCL CVE API 与 NVD API 的集成方式,以及 CVSS 评分在代码里是如何落地为 CRITICAL / HIGH / MEDIUM / LOW 风险等级的。
一、CVE 情报从哪来?两大数据源一览 🗂️
AutoPentestX 在 modules/cve_lookup.py 中预置了两个权威漏洞数据库接口:
| 数据源 | 接口地址 | 角色定位 |
|---|---|---|
| CIRCL CVE API | https://cve.circl.lu/api | 主力查询通道,实际发起搜索 |
| NVD API(NIST 官方) | https://services.nvd.nist.gov/rest/json/cves/2.0 | 预留数据源,已接入配置待扩展 |
在 CVELookup 类的初始化部分可以看到,两个地址被分别赋给api_url与nvd_api。当前的查询流程走的是 CIRCL 通道:它以关键词搜索返回该产品的 CVE 列表,结构简洁、响应快,非常适合按「产品名 + 版本号」做快速情报匹配。NVD 则是美国国家标准与技术研究院的官方漏洞库,接口能力更强,代码与 config.json 中均已预留位置,便于后续做更精确的 CVE ID 级查询。
二、三步看懂 CVE 查询主流程 🔍
整个情报获取过程可以概括为「产品名映射 → API 搜索 → 解析评级」三步,核心逻辑集中在 search_cve_by_product 与 lookup_services 两个方法。
第 1 步:把服务名翻译成产品名
扫描阶段发现的服务名往往比较「泛」,比如http、ssh、netbios-ssn。extract_product_name 方法内置了一张映射表,把它们翻译成漏洞库里真实存在的产品名:
http/https/ssl/http→apachessh→opensshmicrosoft-ds→microsoft windowsnetbios-ssn→sambasmtp→postfix
如果映射表没命中,还会尝试从版本字符串里提取 apache、nginx、mysql 等常见产品关键词,确保搜索词尽量精准。
第 2 步:向 CIRCL API 发起搜索并过滤
拼好产品名后,工具会请求{api_url}/search/{产品名},并做了三件「克制」的事:
- 结果限量:只取前 10 条最相关结果,避免无关 CVE 刷屏;
- 版本过滤:若拿到了具体版本号,会用 version_matches 做版本匹配;
- 限速保护:每轮查询后
time.sleep(1),对公共 API 保持友好,也呼应了 config.json 里rate_limit_delay: 1的设置。
第 3 步:解析条目并生成风险标签
parse_cve_entry 方法把每条原始 JSON 提炼成一个结构化的情报对象,包含 6 个关键字段:
cve_id:CVE 编号,如 CVE-2021-44790description:漏洞描述(截断至 500 字)cvss_score:CVSS 评分(下文详述)risk_level:由评分换算出的风险等级exploitable:是否存在公开利用references:最多保留 3 条参考链接
解析完成后,main.py 的 PHASE 4 阶段会把这些 CVE 情报连同端口、服务、版本号一起写入 SQLite 数据库,供后续风险引擎和 PDF 报告直接使用。
三、CVSS 评分解析:一个分数如何定出风险等级 📊
CVSS(Common Vulnerability Scoring System)是业界通用的漏洞严重性评分标准,0~10 分。AutoPentestX 的取分逻辑兼容新老两版数据结构:优先读cvss字段;若没有,则依次回退到impact.baseMetricV3.cvssV3.baseScore(CVSS v3)和impact.baseMetricV2.cvssV2.baseScore(CVSS v2),见 parse_cve_entry 的取分代码。
拿到分数后,calculate_risk_level 用一套清晰的阈值将其映射为风险等级:
| CVSS 分数区间 | 风险等级 | 直观理解 |
|---|---|---|
| 9.0 ~ 10.0 | 🔴 CRITICAL | 严重,必须立即处理 |
| 7.0 ~ 8.9 | 🟠 HIGH | 高危,尽快修复 |
| 4.0 ~ 6.9 | 🟡 MEDIUM | 中危,计划内修复 |
| 0.1 ~ 3.9 | 🟢 LOW | 低危,择机关注 |
| 无评分 | ⚪ UNKNOWN | 待人工研判 |
这套阈值在 config.json 的 risk_scoring 配置段 中也有对应定义(critical: 9.0 / high: 7.0 / medium: 4.0 / low: 0.1),保证了配置与代码语义一致。
值得一提的是 check_exploit_availability 方法:它会扫描 CVE 条目和参考链接中的exploit、poc、metasploit、exploit-db等关键词。一旦命中,说明该漏洞已有公开利用代码——在实战中,这意味着攻击门槛大幅降低,因此该标记会在后续风险计算中被重点加权。
四、CVSS 如何驱动整体风险评分?🧮
CVE 情报并非孤立的,它会被送入 modules/risk_engine.py 参与全局风险计算。calculate_port_risk 按端口维度累加风险分:
- 每个 CVE 的 CVSS 分数按
分数 / 2计入端口风险分; - 若该 CVE 有公开利用(上一步检测出的
exploitable标记),端口风险分额外 ×1.3; - 本地漏洞库中「可被利用」的漏洞则 ×1.5;
- 敏感服务(mysql、telnet、rdp 等)暴露会叠加基础分;
- 最终结果截断到 0~10 分并再次套用 CVSS 阈值定级。
再往上,calculate_overall_risk 把所有端口风险、Web 漏洞(每条 +2 分)、SQL 注入(每条 +5 分)汇总,由 determine_overall_risk_level 输出系统级风险等级(CRITICAL / HIGH / MEDIUM / LOW / MINIMAL),并自动生成 整改建议清单——例如检测到 CRITICAL 级 CVE 时会直接给出「Patch Critical CVEs」的优先行动项。
五、如何验证 CVE 情报效果?🚀
在已获授权的测试环境中,按 QUICKSTART.md 安装依赖后运行一次完整评估:
python3 main.py -t 127.0.0.1执行到 PHASE 4 时,终端会输出类似 SAMPLE_OUTPUT.md 中这样的 CVE 查询摘要:
[*] Searching CVEs for: apache 2.4.41 [✓] Found 4 relevant CVEs for apache [!] CVE-2021-44790 - CVSS: 9.8 (CRITICAL) [!] CVE-2021-44224 - CVSS: 8.2 (HIGH)每条 CVE 都带着分数与等级实时回显,最终还会汇总到reports/目录下的 PDF 报告与database/autopentestx.db数据库中。想单独调试查询逻辑,也可以直接运行python3 modules/cve_lookup.py,它会用内置的样例服务(OpenSSH 7.4、Apache 2.4.6)跑一遍完整流程。
六、延伸阅读:核心文件导航 📚
| 文件 | 说明 |
|---|---|
| modules/cve_lookup.py | CVE 情报查询、CVSS 解析与利用性检测 |
| modules/risk_engine.py | 端口级 / 系统级风险评分算法 |
| config.json | API 地址、评分阈值、限速参数配置 |
| main.py | 七阶段流水线编排(PHASE 4 触发 CVE 查询) |
| SAMPLE_OUTPUT.md | 真实查询输出示例 |
| INDEX.md | 全项目模块结构与数据流总览 |
小结:AutoPentestX 的 CVE 情报来自 CIRCL CVE API(主通道)与 NVD API(预留通道)双源架构;CVSS 分数通过兼容 v2/v3 的取分逻辑提取,再以 9.0 / 7.0 / 4.0 三级阈值转化为风险等级,并进一步驱动端口级与系统级风险评分、整改建议生成。理解了这条「API → 解析 → 评分 → 风险」的链路,你就掌握了这类自动渗透测试工具情报系统的核心脉络。
⚠️ 提醒:本工具仅可用于你拥有或已获书面授权的系统,未授权访问属于违法行为。使用前请阅读 DISCLAIMER.md。
【免费下载链接】AutoPentestX
AutoPentestX – Automated Pentesting & Vulnerability Reporting Tool
相关推荐
OpenCLI NVD 适配器实战:用 `opencli nvd cve` 在命令行与 AI Agent 中查询 CVE 漏洞详情
OpenCLI NVD 适配器实战:用 opencli nvd cve 在命令行与 AI Agent 中查询 CVE 漏洞详情 NVD(NIST Nationa
开发工具CLI人工智能AI 应用浏览器控制GUI 自动化cve-mcp-server风险评分引擎深度解析:CVSS、EPSS、KEV如何算出0-100危险分
cve mcp server风险评分引擎深度解析:CVSS、EPSS、KEV如何算出0 100危险分 cve mcp server 是一款面向 Claude 的
CVE-bin-tool项目中的CVSS评分解析问题分析与解决方案
CVE bin tool项目中的CVSS评分解析问题分析与解决方案 背景介绍 CVE bin tool是一款由Intel开发的开源工具,主要用于扫描二进制文件中
网络安全漏洞扫描供应链安全SBOM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考