SHAROZ221/CVE-Scanner
GitHub: SHAROZ221/CVE-Scanner
一款基于 Python 和 Nmap 的轻量级 CVE 漏洞扫描系统,自动检测目标服务版本并查询 NVD 数据库匹配已知漏洞,通过 Web 仪表板呈现结果。
Stars: 6 | Forks: 0
# CVE 扫描器 — 漏洞检测系统
## 📁 项目文件
## | 文件 | 用途 |
|---|---|
| `app.py` | Flask Web 服务器 — 路由和 API endpoint |
| `scanner.py` | 基于 Nmap 的端口和服务扫描器 |
| `cve_lookup.py` | 用于 CVE 查找的 NVD API 集成 |
| `database.py` | SQLite 数据库 — 存储扫描和 CVE 结果 |
| `requirements.txt` | Python 依赖 |
## 🔍 项目功能
1. 接收目标 IP 或主机名
2. 运行 Nmap `-sV` 扫描以检测开放端口和服务版本
3. 查询 **NVD (National Vulnerability Database) API** 以获取与每个服务匹配的已知 CVE
4. 在实时仪表板中显示结果,并提供严重性评分(CRITICAL / HIGH / MEDIUM / LOW)
5. 将所有扫描历史存储在 SQLite 中以便审查
## ⚙️ 设置
### 步骤 1 — 安装依赖
```
pip install -r requirements.txt
```
### 步骤 2 — 安装 Nmap
## 下载地址:https://nmap.org/download.html
在安装过程中将 Nmap 添加到您的系统 path 中
## ▶️ 如何运行
```
python app.py
```
## 然后在浏览器中打开 `http://127.0.0.1:5000`。
输入目标 IP(例如 `127.0.0.1` 或 `scanme.nmap.org`)并点击 **Run Scan**。
## 🧰 技术栈
- **Python** + **Flask** — Web 服务器和 API
- **Nmap** + **python-nmap** — 端口和服务检测
- **NVD API** — 来自 NIST 的真实 CVE 数据
- **SQLite** — 扫描历史存储
- **HTML / CSS / JS** — 漏洞仪表板
## 🔒 仪表板展示内容
## | 功能 | 详情 |
|---|---|
| Severity Summary | CRITICAL / HIGH / MEDIUM / LOW 计数 |
| CVE Results | CVE ID、受影响端口、CVSS 评分、描述 |
| Severity Distribution | 扫描发现的条形图 |
| Scan History | 包含目标和 CVE 计数的所有过往扫描 |
| CVE Database | 浏览所有已存储的 CVE 结果 |
| Export Results | 下载扫描报告 |
## ⚠️ 法律声明
仅扫描您拥有或获得明确许可扫描的系统。
未经授权的扫描是非法的。make like this
标签:Claude, CTI, CVE检测, DInvoke, Flask, Nmap, Python, SQLite, 后端开发, 插件系统, 无后门, 虚拟驱动器, 逆向工具