jonathanrodrigues15287/cybersecurity_vulnerability_scanner
GitHub: jonathanrodrigues15287/cybersecurity_vulnerability_scanner
一款基于 Python 的网络安全漏洞扫描工具。
Stars: 0 | Forks: 0
# 网络安全漏洞扫描器
一个基于 Python 的网络漏洞扫描器,执行端口扫描、服务指纹识别、banner 抓取和 CVE 匹配的漏洞分析。
## 功能
- **多线程端口扫描** — 可配置线程数的快速并发扫描
- **双栈支持** — 完全的 IPv4 和 IPv6 扫描能力
- **服务指纹识别** — 基于多阶段探测的 banner 抓取,以实现准确的服务检测
- **漏洞分析** — 自动 CVE 匹配、过时软件检测和弱配置识别
- **风险评分** — 基于 CVSS 评分的聚合风险评估(关键/高/中/低/信息)
- **多种报告格式** — 文本、CSV、JSON 和 HTML 报告
- **HTML 报告** — 自包含的暗色主题报告,包含风险分布图
- **CLI & 交互模式** — 完整的命令行界面和交互式菜单
## 安装
**要求:** Python 3.8+
```
# 克隆或下载项目
cd cybersecurity_vulnerability_scanner
# 无需外部依赖 — 仅使用 Python 标准库
```
## 使用
### 命令行界面
```
# 基本扫描(前 1024 个端口,文本报告)
python main.py -t 192.168.1.1
# 使用 HTML 输出扫描特定端口范围
python main.py -t 192.168.1.1 -p 80-443 -o html
# 完整扫描,JSON 输出,自定义超时和线程
python main.py -t 10.0.0.1 -p 1-65535 -o json --timeout 2.0 --threads 200
# 使用详细日志扫描
python main.py -t scanme.nmap.org -p 1-1024 -v
# IPv6 目标
python main.py -t ::1 -p 1-1024 -o csv
```
### 交互式菜单
```
# 无参数启动以使用交互式菜单
python main.py
```
交互式菜单提供了针对目标、端口范围、输出格式和扫描速度配置文件的引导选项。
### CLI 选项
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `-t, --target` | 目标 IP 地址或主机名 | _(必需)_ |
| `-p, --ports` | 端口范围(例如,`1-1024`) | `1-1024` |
| `-o, --output` | 输出格式:`text`、`csv`、`json`、`html` | `text` |
| `--timeout` | 套接字超时(秒) | `1.0` |
| `--threads` | 最大并发扫描线程数 | `100` |
| `-v, --verbose` | 启用调试级别日志 | `false` |
## 报告格式
| 格式 | 描述 | 适用于 |
|--------|-------------|----------|
| **文本** | 可读性高,包含摘要和风险分布 | 快速查看 |
| **CSV** | 带有漏洞列的表格数据 | 电子表格分析 |
| **JSON** | 结构化数据,包含完整元数据 | CI/CD 集成、API |
| **HTML** | 带有图表的暗色主题视觉报告 | 利益相关者演示 |
报告保存到 `data/scan_results/`。
## 项目结构
```
cybersecurity_vulnerability_scanner/
├── main.py # Entry point
├── core/
│ ├── scanner.py # Main Scanner class with threading
│ ├── port_checker.py # TCP port checking
│ ├── service_detector.py # Multi-stage service fingerprinting
│ └── vulnerability_engine.py # CVE matching, risk scoring, weak config detection
├── reports/
│ ├── text_report.py # Text report generator
│ ├── csv_report.py # CSV report generator
│ ├── json_report.py # JSON report generator
│ └── html_report.py # HTML report generator
├── ui/
│ ├── cli.py # Argument parser
│ └── menu.py # Interactive menu
├── utils/
│ ├── validators.py # IP validation and hostname resolution
│ └── constants.py # Common ports and defaults
├── data/
│ ├── cve_db.json # Local CVE database (25 entries)
│ └── scan_results/ # Generated reports
├── tests/
│ ├── test_scanner.py
│ ├── test_validator.py
│ ├── test_vulnerability_engine.py
│ └── test_reports.py
├── requirements.txt
└── README.md
```
## 运行测试
```
# 运行所有测试
python -m pytest tests/ -v
# 运行特定测试模块
python -m pytest tests/test_vulnerability_engine.py -v
# 使用 unittest
python -m unittest discover tests/
```
## ⚠️ 声明
本工具仅用于 **授权的安全测试和教育目的**。未经明确许可扫描网络或系统在大多数司法管辖区是非法的。在扫描任何目标之前,请始终获得适当的授权。作者不对误用承担责任。
标签:CSV报告, CVE匹配, HTML报告, IPv4, IPv6, JSON报告, PowerShell, Python, Qt框架, 交互式菜单, 命令行界面, 数据统计, 无后门, 服务识别, 端口扫描, 网络安全, 逆向工具, 隐私保护, 风险评分