mar-i0/vulnChecker

GitHub: mar-i0/vulnChecker

一款基于 Python 的 CVE 漏洞扫描器,收录 1999-2018 年间 92,960+ 条检测脚本,通过被动式 banner 和版本匹配对多种网络服务进行安全评估并生成专业报告。

Stars: 0 | Forks: 0

# vulnChecker 🔍 [![Python](https://img.shields.io/badge/Python-3.8%2B-blue.svg)](https://www.python.org/) [![CVE Database](https://img.shields.io/badge/CVE%20Database-1999--2018-red.svg)](https://cve.mitre.org/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) ## 🚀 特性 ✨ **海量数据库**:+92,960 个 CVE 验证脚本 🎯 **多种服务**:HTTP, SSH, FTP, MySQL, PostgreSQL, Redis, MongoDB, RDP, VNC 等 ⚡ **快速检测**:通过 banners 和 versions 进行被动验证 📊 **深度分析**:关于严重性和可利用性的详细信息 🔗 **网络扫描**:网络服务的自动识别 📈 **完整报告**:生成包含图表和详细分析的 PDF 报告 ## 📊 CVE 覆盖范围 | 年份 | 漏洞数 | 脚本 | |-----|------------------|---------| | 1999 | 960 | ✅ | | 2000 | 958 | ✅ | | 2001 | 1,232 | ✅ | | 2002 | 2,027 | ✅ | | 2003 | 1,241 | ✅ | | 2004 | 2,269 | ✅ | | 2005 | 4,051 | ✅ | | 2006 | 6,517 | ✅ | | 2007 | 6,014 | ✅ | | 2008 | 6,428 | ✅ | | 2009 | 4,585 | ✅ | | 2010 | 4,474 | ✅ | | 2011 | 4,193 | ✅ | | 2012 | 4,892 | ✅ | | 2013 | 5,482 | ✅ | | 2014 | 6,210 | ✅ | | 2015 | 7,021 | ✅ | | 2016 | 7,423 | ✅ | | 2017 | 10,367 | ✅ | | 2018 | 6,616 | ✅ | | **总计** | **92,960** | **✅** | ## 🛠️ 安装 ``` # 克隆仓库 git clone https://github.com/mar-i0/vulnChecker.git cd vulnChecker # 基本使用不需要外部依赖 # 生成 PDF 报告 (可选): pip install reportlab matplotlib numpy ``` ## 📖 快速使用 ### 1️⃣ 验证特定 CVE ``` python3 cve_checker_scripts_2016/CVE-2016-8721_check.py 192.168.1.100 -p 80 ``` ### 2️⃣ 使用通用扫描器 ``` # 扫描主机上的所有 CVE python3 cve_scanner.py 192.168.1.100 # 限制为特定数量的 CVE python3 cve_scanner.py 192.168.1.100 --limit 50 # 搜索特定 CVE python3 cve_scanner.py 192.168.1.100 --cve CVE-2016-8721 ``` ### 3️⃣ 网络扫描 ``` # 发现网络服务并验证漏洞 python3 network_scan.py ``` ### 4️⃣ 生成报告 ``` python3 generate_pdf_report.py output_report.pdf ``` ## 🎯 实战示例 ### 验证 Web 服务器上的 Apache ``` python3 cve_checker_scripts_2017/CVE-2017-5645_check.py 192.168.1.50 -p 80 python3 cve_checker_scripts_2017/CVE-2017-5645_check.py 192.168.1.50 -p 443 -s ``` ### 审计服务器上的 OpenSSH ``` python3 cve_checker_scripts_2016/CVE-2016-1984_check.py 192.168.1.22 -p 22 -v ``` ### 验证 MySQL ``` python3 cve_checker_scripts_2016/CVE-2016-6662_check.py 192.168.1.100 -p 3306 ``` ### 审计多种服务 ``` for port in 21 22 80 443 3306 5432 6379; do python3 cve_scanner.py 192.168.1.100 -p $port done ``` ## 📁 项目结构 ``` vulnChecker/ ├── README.md # Este archivo ├── USAGE.md # Documentación detallada ├── cve_scanner.py # Escáner universal ├── network_scan.py # Escaneo de red ├── generate_pdf_report.py # Generador de reportes ├── enrich_cves.py # Enriquecimiento de datos ├── analyze_unknown_cves.py # Análisis de CVEs desconocidos │ ├── cve_checker_scripts/ # Scripts base de verificación ├── cve_checker_scripts_1999/ # CVEs año 1999 ├── cve_checker_scripts_2000/ # CVEs año 2000 │ ├── CVE-2000-XXXX_check.py │ ├── remote_cves.txt │ └── unknown_cves.txt │ ├── cve_checker_scripts_2001-2018/ # Años 2001-2018 └── ... ``` ## 🔍 输出示例 ### 成功扫描输出: ``` [+] Conectando a 192.168.1.100:80... [✓] Servicio identificado: Apache/2.4.41 [!] CVE-2017-5645: Vulnerability found in Apache 2.4.41 Severidad: MEDIA CVSS Score: 5.3 Descripción: Use of uninitialized memory in Apache httpd [!] CVE-2017-9798: Possible match Severidad: ALTA CVSS Score: 7.5 Descripción: Mod_auth_digest race condition [📊] Resumen: - Vulnerabilidades críticas: 0 - Vulnerabilidades altas: 1 - Vulnerabilidades medias: 5 - Total de CVEs verificados: 47 ``` ## 📊 生成的报告示例 PDF 报告包含: - 📈 按年份、严重程度和服务类型划分的**分布图表** - 🔴 突出显示的**关键漏洞** - 📋 发现的所有 CVE 的**详细列表** - 🌐 指向 CVE.MITRE 和安全公告的**外部参考** - 📅 **时间戳和执行摘要** ``` ┌─────────────────────────────────────────┐ │ INFORME DE VULNERABILIDADES │ │ vulnChecker v1.0 │ │ Generado: 2026-03-07 │ ├─────────────────────────────────────────┤ │ │ │ Distribución por Severidad: │ │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ │ │ 🔴 Crítica: ████░░░░░░░░░░░ 2 (5%) │ │ 🟠 Alta: ████████░░░░░░░ 8 (20%) │ │ 🟡 Media: ████████████░░░ 15(38%) │ │ 🟢 Baja: ███████████░░░░ 12(30%) │ │ ⚪ Info: ███░░░░░░░░░░░░ 2 (5%) │ │ │ │ CVEs Verificados: 39 │ │ Hosts Escaneados: 1 │ │ Tiempo de Escaneo: 2m 34s │ │ │ └─────────────────────────────────────────┘ ``` ## ⚙️ 高级选项 ### 可用 Flags ``` -p, --port PORT Puerto a verificar (default: 80) -s, --ssl Usar SSL/HTTPS -v, --verbose Salida verbosa con detalles --timeout SECONDS Timeout de conexión (default: 5) --limit NUM Limitar número de CVEs a verificar --cve CVE-ID Verificar un CVE específico --year YYYY Filtrar CVEs por año ``` ### 带选项的示例 ``` # 详细扫描与自定义 timeout python3 cve_scanner.py 192.168.1.100 -v --timeout 10 # 仅检查 HTTPS 端口上的 2017 年 CVE python3 cve_scanner.py 192.168.1.100 -p 443 -s --year 2017 # 限制为 25 个 CVE 并输出详细信息 python3 cve_scanner.py 192.168.1.100 --limit 25 -v ``` ## ⚠️ 重要要求 ### 法律声明 - 📋 **仅授权使用**:请勿在未经许可的情况下扫描系统 - 🔒 **责任**:用户需对本工具的使用负责 - ✅ 适用于:授权审计、CTF、实验室、自身测试 ### 技术要求 - ✅ 被动检测(不利用漏洞) - ⚡ 需要与目标建立网络连接 - 🔍 验证 banners 和 versions(可能存在误报) - 📦 兼容 Python 3.8+ ## 📚 完整文档 查看 [USAGE.md](USAGE.md) 获取详细文档,包括: - 各服务示例 - 常见端口 - 完整用例 - 快速参考表 ## 📝 许可证 MIT 许可证 - 详情请查看 LICENSE 文件 ## 👤 作者 **mar-i0** - [GitHub](https://github.com/mar-i0)
标签:Banner识别, Claude, CVE-1999-2018, CVE数据库, CVE检测, GPT, Maven, Python, Qt框架, Snort++, SSH, 云存储安全, 加密, 密码管理, 插件系统, 无后门, 无线安全, 服务识别, 漏洞扫描器, 漏洞管理, 漏洞验证, 版本探测, 网络安全, 网络扫描, 被动扫描, 逆向工具, 隐私保护