mar-i0/vulnChecker
GitHub: mar-i0/vulnChecker
一款基于 Python 的 CVE 漏洞扫描器,收录 1999-2018 年间 92,960+ 条检测脚本,通过被动式 banner 和版本匹配对多种网络服务进行安全评估并生成专业报告。
Stars: 0 | Forks: 0
# vulnChecker 🔍
[](https://www.python.org/)
[](https://cve.mitre.org/)
[](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, 云存储安全, 加密, 密码管理, 插件系统, 无后门, 无线安全, 服务识别, 漏洞扫描器, 漏洞管理, 漏洞验证, 版本探测, 网络安全, 网络扫描, 被动扫描, 逆向工具, 隐私保护