JanVanYaku/port-vulnerability-scanner
GitHub: JanVanYaku/port-vulnerability-scanner
一款授权 TCP 端口扫描 CLI 工具,结合实时 NVD CVE 数据与 CISA KEV 目录为扫描结果提供漏洞情报富化。
Stars: 0 | Forks: 0
#######################################################################
# 作者:Lehlohonolo Adolf Matobakele
# 邮箱:lehlohonolo.matobakele@gov.ls
# 联系方式:00266 62320704
#######################################################################
# 端口漏洞扫描器
用于授权 TCP 端口扫描的 Python CLI。它以表格形式显示开放端口,识别可能的服务,可选择性地抓取简单的 banner,并利用来自实时公开来源的最新漏洞信息丰富扫描结果。
请仅在你拥有或获得明确测试授权的系统上使用此工具。
## 截图

## 功能
- 扫描单个主机名或 IP 地址。
- 默认扫描所有 65,535 个 TCP 端口。
- 支持自定义端口和范围,例如 `22,80,443,8000-8100`。
- 以易读的表格形式显示开放端口。
- 根据众所周知的 TCP 端口识别可能的服务用途。
- 执行轻量级的 banner 抓取以获取额外上下文。
- 在运行时查询 NVD 以获取当前的 CVE 匹配项。
- 标记出现在 CISA 的已知被利用漏洞 (KEV) 目录中的 CVE。
- 导出可选的 JSON 和 CSV 报告。
## 设置
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
```
## 在你自己的机器上进行快速测试
```
python .\port_vulnerability_scanner.py 127.0.0.1 --confirm-authorized --skip-vulns
```
这将扫描从 `1-65535` 的所有 TCP 端口。
## 扫描所有端口
```
python .\port_vulnerability_scanner.py example.com --confirm-authorized
```
## 扫描较小的自定义范围
```
python .\port_vulnerability_scanner.py 192.168.1.10 --ports 1-1024 --confirm-authorized
```
## 速度调优
在被过滤的网络上,全端口扫描可能需要更长时间。你可以调整并发和超时设置:
```
python .\port_vulnerability_scanner.py 192.168.1.10 --confirm-authorized --workers 512 --timeout 0.75
```
## 保存报告
```
python .\port_vulnerability_scanner.py 192.168.1.10 --ports 22,80,443,3389 --confirm-authorized --json-out .\reports\scan.json --csv-out .\reports\scan.csv
```
## 可选的 NVD API 密钥
扫描器可以在没有密钥的情况下查询 NVD,但如果需要频繁使用,最好使用 API 密钥。
```
$env:NVD_API_KEY="your_nvd_api_key_here"
python .\port_vulnerability_scanner.py 192.168.1.10 --confirm-authorized
```
如果没有 API 密钥,扫描器在 NVD 查询之间的等待时间会更长。你可以在适当的时候覆盖该延迟:
```
python .\port_vulnerability_scanner.py 192.168.1.10 --confirm-authorized --nvd-delay 6.1
```
如果 NVD 响应缓慢或超时,请增加超时/重试设置:
```
python .\port_vulnerability_scanner.py 192.168.1.10 --confirm-authorized --nvd-timeout 60 --nvd-retries 3
```
## 漏洞结果时效性
NVD 返回的 CVE 结果按发布日期升序排列,因此像 `http` 这样的广泛服务查询可能会优先显示 1999 年的旧记录。此扫描器会优先搜索最近的 NVD 发布日期窗口,并默认按最新发布日期对 CVE 进行排序。
显示过去 5 年内的最新 CVE:
```
python .\port_vulnerability_scanner.py example.com --ports 80,443 --confirm-authorized --vuln-sort latest --vuln-years 5
```
如果优先考虑高严重性:
```
python .\port_vulnerability_scanner.py example.com --ports 80,443 --confirm-authorized --vuln-sort severity --vuln-years 5
```
如果最近的结果很少,但你仍希望包含较早的匹配项:
```
python .\port_vulnerability_scanner.py example.com --ports 80,443 --confirm-authorized --include-older-cves
```
## 重要限制
漏洞表显示的是根据服务名称和 banner 得出的可能匹配项。它并不能证明目标存在漏洞。在做出修复决策之前,请确认确切的产品、版本、配置和补丁级别。
该扫描器不会利用漏洞、绕过身份验证、逃避检测或扫描网络/范围。它旨在用于防御性的资产盘点和分诊。
## 数据来源
- NVD CVE API v2.0:https://nvd.nist.gov/developers/vulnerabilities
- CISA 已知被利用漏洞目录:https://www.cisa.gov/resources-tools/resources/kev-catalog
标签:CLI, Python, WiFi技术, 威胁情报, 开发者工具, 插件系统, 数据统计, 文档结构分析, 无后门, 端口扫描, 逆向工具