eli-wynn/vulnerabilityScanner

GitHub: eli-wynn/vulnerabilityScanner

一款基于 Python 和 nmap 的轻量级漏洞扫描器,集成 NVD API 实现 CVE 自动关联查询,提供 GUI 与 CLI 双模式,适合网络资产快速评估与安全巡检。

Stars: 0 | Forks: 0

# 漏洞扫描器 一个基于 Python 的网络漏洞扫描器,可自动对 IP 范围进行安全评估。它会发现网络上的活跃主机,识别其操作系统和开放端口,并将结果与 NVD(国家漏洞数据库)进行关联,以查找已识别服务中已知的关键 CVE。 该项目与 Will Guo 合作开发,具有深色主题的桌面 GUI,可 straightforward 地进行点击扫描操作。 ## 功能 1. **主机发现** — 使用 ping 扫描扫描给定的网络范围(例如 `192.168.1.0/24`)以查找所有活跃主机 2. **深度扫描** — 对于每个存活主机,运行 OS 检测和 SYN 扫描,以识别操作系统、开放端口和正在运行的服务 3. **CVE 查询** — 查询 NVD API 以查找与已识别软件或服务匹配的已知关键漏洞 4. **报告输出** — 在 GUI 中显示结果,并将发现的 CVE 写入 `output.txt` 以供审查 ## 项目结构 ``` vulnerabilityScanner/ ├── main.py # Entry point for headless/CLI usage ├── device_identifier.py # Core scanning engine (nmap wrapper + NVD API integration) ├── gui.py # Tkinter desktop GUI ├── SecurityCheck.py # Security check module ├── test.py # Tests └── output.txt # CVE scan output ``` ## GUI 桌面界面是与 Will Guo 合作构建的。它提供了一个深色主题界面,您可以在其中输入目标网络范围,点击 Start Scan(开始扫描),并实时查看结果填充。 - 网络范围输入,在扫描开始前进行 CIDR 验证 - 扫描在后台线程上运行,因此 UI 保持响应 - 结果以格式化的 JSON 形式显示在可滚动的终端风格输出区域中 - 带有扫描时间戳的进度条和状态栏 - 错误处理,针对无效输入或扫描失败提供对话框提示 ![Scanner UI](https://raw.githubusercontent.com/eli-wynn/vulnerabilityScanner/main/screenshot.png) ## 工作原理 **主机发现** 使用 nmap 的 `-sn` 标志(ping 扫描)来查找存活主机,而无需进行端口扫描。只有做出响应的主机才会被添加到设备映射中。 **深度扫描** 对每个发现的主机运行 `-O -sS`(OS 检测 + TCP SYN 扫描),收集: - 主机名和 MAC 地址 - 操作系统(nmap 最佳匹配) - 所有开放 TCP 端口及其相关服务 **CVE 查询** 访问 NVD REST API v2,筛选出与给定产品关键字匹配的 `CRITICAL`(关键)严重性 CVE。结果将写入 `output.txt`。 ``` # 无头模式示例用法 identifier = identifier("10.0.0.0/24") identifier.scan() cves = identifier.searchCVE("httpd") ``` ## 环境要求 ``` pip install python-nmap requests ``` 您的系统上还必须安装 nmap: - **macOS:** `brew install nmap` - **Linux:** `sudo apt install nmap` - **Windows:** 从 https://nmap.org/download.html 下载 **注意:** OS 检测和 SYN 扫描(`-O -sS`)需要 root/管理员权限。 ``` sudo python main.py # Linux/macOS # 以管理员身份运行 # Windows ``` ## 运行 GUI ``` python gui.py ``` 以 CIDR 表示法输入网络范围(例如 `192.168.1.0/24`),然后点击 Start Scan(开始扫描)。 ## 无头模式运行 ``` python main.py ``` 在运行之前,直接在 `main.py` 中配置目标范围和产品关键字。 ## 示例输出 ``` Device: 192.168.1.42 Hostname: desktop-abc123 MAC: AA:BB:CC:DD:EE:FF State: up OS: Linux 4.15 - 5.6 Open Ports: - Port 22 (ssh): open - Port 80 (http): open - Port 443 (https): open ``` ## 注意事项 - 仅扫描您拥有或明确获得扫描权限的网络 - `device_identifier.py` 中的 NVD API 密钥应替换为您自己的 — 免费密钥可在 https://nvd.nist.gov/developers/request-an-api-key 获取 - `SecurityCheck.py` 是计划中的额外安全检查的占位符 ## 构建技术 - Python 3 - python-nmap - NVD REST API v2 - Tkinter - Threading
标签:CIDR, Facebook API, GPT, IP地址扫描, Nmap, NVD数据库, Python, SYN扫描, Tkinter, 代码生成, 加密, 域名解析, 安全测试, 密码管理, 插件系统, 操作系统指纹识别, 攻击性安全, 无后门, 桌面GUI应用, 渗透测试工具, 漏洞扫描器, 漏洞管理, 端口枚举, 网络安全, 自动化安全评估, 虚拟驱动器, 隐私保护