AhmadNaaem/hev-scan
GitHub: AhmadNaaem/hev-scan
HEV-Scan 是一个将 DNS 解析、nmap 服务扫描与 NVD CVE 匹配整合为单一流水线的命令行漏洞扫描工具,专为防御性安全教育与实验场景设计。
Stars: 0 | Forks: 0
# HEV-Scan — 主机枚举与漏洞扫描器
HEV-Scan 是一个单文件 CLI 侦察到风险的流水线工具:它会解析主机,
使用 `nmap` 扫描其服务,通过 NVD API 将检测到的软件与已知的
CVE 进行匹配,并将结果渲染为独立的 HTML
报告。专为防御性/教育性安全课程而构建 —— 请在您拥有或获得明确授权测试的
主机(例如您自己的实验 VM)上运行它。
## 功能
- 目标主机名的 DNS 解析(如果失败会发出警告并继续)
- 对前 N 个端口执行 `nmap -sV` 服务/版本检测,从 XML 解析
- 针对具有已知产品 + 版本的服务,使用 NVD `keywordSearch` API 进行 CVE 匹配,遵守 NVD 速率限制
- 所有服务的扫描结果按 CVSS 分数排序,最高分优先
- 深色、终端风格、独立的 HTML 报告(无外部资源)
- 终端中的彩色 `rich` 输出:阶段之间的状态微调器
以及严重性颜色编码的表格,除了 HTML 文件外
- 优雅降级:缺失 `nmap`、DNS 失败、NVD 错误或
无法解析的扫描输出都会产生警告,而不是崩溃
## 前置条件
- Python 3
- 已安装 [`nmap`](https://nmap.org/) 并位于您的 `PATH` 中(Kali
默认自带)。如果缺失,HEV-Scan 将发出警告并跳过端口扫描,
而不是崩溃。
## 安装
```
git clone
cd hev-scan
pip install -r requirements.txt
```
较新的 Kali(以及其他外部管理的 Python 安装环境)将拒绝
系统范围的 `pip install`,并报 `externally-managed-environment` 错误。
请使用虚拟环境:
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
或直接覆盖该限制:
```
pip install -r requirements.txt --break-system-packages
```
## 可选:NVD API key
NVD 的公共关键字搜索 API 无需 key 即可工作,限制为 5 次请求/30秒。
设置 `NVD_API_KEY` 可将其提升至 50 次请求/30秒,从而加快包含
大量服务的扫描速度:
```
export NVD_API_KEY=your-key-here
```
在 申请 key。该
key 仅从环境中读取 —— 切勿硬编码。
## 使用方法
```
python3 hev_scan.py
```
如果省略 `host`,HEV-Scan 将以交互方式提示输入。
```
positional arguments:
host target hostname or IP
options:
-h, --help show this help message and exit
-o, --output OUTPUT HTML report path (default: hev_report.html)
-p, --top-ports TOP_PORTS
number of top ports for nmap to scan (default: 100)
--no-cve skip NVD CVE lookups, scan only
```
示例:
```
# 使用默认设置扫描 lab VM,写入 hev_report.html
python3 hev_scan.py 192.168.56.10
# 扫描 top 1000 端口并写入自定义路径
python3 hev_scan.py testvm.local -p 1000 -o testvm_report.html
# 仅进行端口/服务扫描,无 NVD 查询
python3 hev_scan.py 192.168.56.10 --no-cve
```
## 限制:CVE 匹配是模糊的
CVE 匹配使用 NVD 的 `keywordSearch` endpoint 针对 `"
"` 进行,而非精确的 CPE (Common Platform Enumeration) 匹配。这是
为了简单起见而做出的权衡:它能有效地捕获明显过时的、
广为人知的存在漏洞的软件,但也可能遗漏真实的
匹配(如果 NVD 的措辞与 nmap 的服务 banner 不同)或过度匹配
(引入名称相似但无关产品的 CVE)。请将
报告视为需要手动验证的线索列表,而非绝对事实。
## 许可证
MIT — 请参阅 [LICENSE](LICENSE)。
标签:多模态安全, 逆向工具