Pri-S-Godase/Python-Vulnerability-Scanner
GitHub: Pri-S-Godase/Python-Vulnerability-Scanner
一款基于 Python 和 Nmap 的自动化漏洞扫描器,通过匹配 NVD 的 CVE 数据自动检测目标主机的已知漏洞并生成结构化报告。
Stars: 0 | Forks: 0
# 🔍 基于 Python 的漏洞扫描器
一个基于 Python 的自动化漏洞扫描器,它使用 **Nmap** 执行网络侦察,识别运行的服务和软件版本,通过 **National Vulnerability Database (NVD) API** 搜索公开披露的 **CVE**,并生成详细的漏洞报告。
## 📌 功能
* 🔎 使用 Nmap 扫描目标主机
* 🌐 检测开放端口和运行的服务
* 🏷️ 识别软件产品及其版本
* 🔍 使用 NVD API 搜索相关的 CVE
* 🚨 按严重程度对漏洞进行分类(低危、中危、高危、严重)
* 📄 生成结构化的 JSON 报告
* 🧩 模块化的项目架构,易于维护和扩展
## 🛠️ 使用的技术
* Python 3
* Nmap
* python-nmap
* Requests
* Jinja2(用于未来的 HTML 报告生成)
* Colorama
## 📂 项目结构
```
python-vulnerability-scanner/
│
├── scanner.py
├── requirements.txt
├── README.md
│
├── modules/
│ ├── network_scan.py
│ ├── cve_lookup.py
│ ├── report.py
│ └── utils.py
│
├── reports/
│ └── report.json
│
└── screenshots/
```
## ⚙️ 安装说明
### 1. 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/python-vulnerability-scanner.git
cd python-vulnerability-scanner
```
### 2. 安装 Nmap
Ubuntu/Debian
```
sudo apt update
sudo apt install nmap
```
### 3. 创建虚拟环境
```
python3 -m venv venv
```
激活虚拟环境
Linux/macOS
```
source venv/bin/activate
```
Windows
```
venv\Scripts\activate
```
### 4. 安装依赖
```
pip install -r requirements.txt
```
## 📦 环境要求
```
python-nmap
requests
jinja2
colorama
```
## 🚀 使用说明
运行扫描器
```
python scanner.py
```
根据提示输入目标
```
Enter Target IP:
scanme.nmap.org
```
## 📄 示例输出
```
Enter Target IP: 127.0.0.1
Scanning ipp CUPS 2.4
Report saved in reports/report.json
```
## 📊 示例 JSON 报告
```
[
{
"host": "127.0.0.1",
"port": 631,
"service": "ipp",
"product": "CUPS",
"version": "2.4",
"cve": "CVE-2023-32324",
"severity": "High",
"score": 7.5
},
{
"host": "127.0.0.1",
"port": 631,
"service": "ipp",
"product": "CUPS",
"version": "2.4",
"cve": "CVE-2023-34241",
"severity": "Medium",
"score": 5.3
},
{
"host": "127.0.0.1",
"port": 631,
"service": "ipp",
"product": "CUPS",
"version": "2.4",
"cve": "CVE-2023-4504",
"severity": "High",
"score": 7.0
}
```
## 📚 工作原理
1. 接收目标 IP 地址或主机名。
2. 使用 Nmap (`-sV`) 执行服务和版本检测。
3. 提取发现的服务和软件版本。
4. 查询 NVD API 以匹配对应的 CVE。
5. 使用 CVSS 评分计算漏洞严重程度。
6. 生成包含所有发现的 JSON 报告。
## 📁 模块
### network_scan.py
* 使用 Nmap 执行网络扫描
* 检测开放端口和运行的服务
### cve_lookup.py
* 查询 National Vulnerability Database (NVD)
* 获取匹配的 CVE 和 CVSS 评分
### utils.py
* 将 CVSS 评分转换为严重程度等级
### report.py
* 生成并以 JSON 格式保存漏洞报告
### scanner.py
* 主应用程序
* 协调扫描、CVE 查找、严重程度计算和报告生成
## 🔮 未来改进
* HTML 报告生成
* PDF 报告导出
* CSV 报告生成
* 多线程扫描
* 进度条
* Banner grabbing
* 端口过滤
* 多目标支持
* 子网扫描
* 日志记录
* Docker 支持
* 单元测试
* GitHub Actions CI/CD
## 📜 许可证
该项目基于 MIT License 授权。
## 👨💻 作者
**Pritesh Godase**
* 网络安全工程师
* Python 自动化爱好者
* 热衷于渗透测试、威胁检测和安全自动化
## ⭐ 支持
如果您觉得这个项目有用,请考虑在 GitHub 上给它点个 ⭐。这有助于其他人发现该项目,并支持未来的改进。
标签:CTI, CVE, Nmap, Python, 加密, 字符串匹配, 插件系统, 数字签名, 无后门, 漏洞扫描器, 虚拟驱动器, 逆向工具