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)。
标签:多模态安全, 逆向工具