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, 加密, 字符串匹配, 插件系统, 数字签名, 无后门, 漏洞扫描器, 虚拟驱动器, 逆向工具