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,并利用来自实时公开来源的最新漏洞信息丰富扫描结果。 请仅在你拥有或获得明确测试授权的系统上使用此工具。 ## 截图 ![演示截图](https://raw.githubusercontent.com/JanVanYaku/port-vulnerability-scanner/main/assets/demo.svg) ## 功能 - 扫描单个主机名或 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技术, 威胁情报, 开发者工具, 插件系统, 数据统计, 文档结构分析, 无后门, 端口扫描, 逆向工具