Mouley-2806/Vulnerability_Scanner
GitHub: Mouley-2806/Vulnerability_Scanner
一款纯 Python 编写的零依赖终端漏洞扫描器,通过多阶段流水线完成端口扫描、CVE 匹配和风险评分并生成 HTML 报告。
Stars: 0 | Forks: 0
# 🛡️ VulnScanner — 漏洞评估工具
一款模块化、基于终端的漏洞扫描器,使用纯 Python 编写(无需第三方库)。
## ⚠️ 法律免责声明
## 📁 项目结构
```
vuln_scanner/
├── main.py ← Entry point / orchestrator
├── config.py ← Settings, limits, colour helpers
│
├── info_gathering.py ← Phase 1: DNS, SSL, tech detection, cloud
├── port_scanner.py ← Phase 2: Multi-threaded TCP port scan
├── web_scanner.py ← Phase 3: HTTP headers, sensitive files, SSL
├── service_detector.py ← Phase 4: Banner grabbing & version detection
├── vulnerability_analyzer.py ← Phase 5: CVE matching, risk scoring
├── remediation.py ← Phase 6: Attach fix steps
├── report_generator.py ← Phase 7: TXT + HTML reports
├── feedback.py ← Phase 8: Star rating & comments
├── scan_history.py ← Phase 9-10: Save / Quick Re-Verify
│
├── data/
│ ├── vulnerable_versions.json ← Known vulnerable software versions
│ └── remediation_db.json ← Actionable fix steps per vulnerability
│
├── reports/ ← Generated scan reports (.txt + .html)
├── scans/ ← Saved vulnerability baselines for re-verification
└── scans_history/ ← Scan log + feedback.log
```
## 🚀 快速开始
```
# 交互式运行
python main.py
# 直接指定 target
python main.py --target example.com
# 指定 target + 自定义 port 列表
python main.py --target 192.168.1.1 --ports 22,80,443,3306,8080
```
## 🔍 扫描阶段
| 阶段 | 模块 | 功能说明 |
|-------|--------|-------------|
| 1 | `info_gathering.py` | DNS 解析、SSL 证书、技术栈、云服务提供商 |
| 2 | `port_scanner.py` | 多线程扫描常见(或自定义)端口 |
| 3 | `web_scanner.py` | 安全标头、敏感文件、目录列表 |
| 4 | `service_detector.py` | Banner 抓取 → 软件名称 + 版本 |
| 5 | `vulnerability_analyzer.py` | CVE 匹配、风险评分 (0–100)、去重 |
| 6 | `remediation.py` | 查找并附加可操作的修复步骤 |
| 7 | `report_generator.py` | 控制台显示 + `.txt` + `.html` 报告 |
| 8 | `feedback.py` | 可选的 1–5 星评分 + 评论 |
| 9–10 | `scan_history.py` | 保存基线、快速重新验证(3 次机会)、自动删除 |
## 🔄 重新验证系统
扫描完成后,您可以保存结果以供日后重新检查:
```
Do you want to save these vulnerabilities for future re-verification?
(yes/no):
```
- 每次保存的扫描会授予 **3 次机会**。
- **快速重新验证** 仅重新检查之前发现的问题(消耗 1 次机会)。
- **完整扫描** 将使用新的基线再次运行完整的 pipeline。
- ⚠️ **当 3 次机会全部用完后,保存的文件将被自动删除。**
## 📊 风险评分
| 分数 | 等级 |
|-------|-------|
| 0–39 | 🟢 低 |
| 40–69 | 🟡 中 |
| 70–100 | 🔴 高 / 严重 |
评分权重:严重=25分,高=10分,中=4分,低=1分(最高 100 分)。
## ⚙️ 配置 (`config.py`)
| 设置 | 默认值 | 描述 |
|---------|---------|-------------|
| `MAX_TARGETS_PER_SESSION` | 20 | 每次运行的最大目标数 |
| `PORT_SCAN_TIMEOUT` | 1.0s | 每个端口的超时时间 |
| `MAX_THREADS` | 100 | 并发扫描线程 |
| `RE_VERIFY_CHANCES` | 3 | 每次保存扫描的重新验证机会 |
## 📦 依赖项
**无。** 仅使用 Python 标准库:
`socket`, `struct`, `ssl`, `json`, `os`, `re`, `datetime`, `concurrent.futures`, `urllib`
要求 **Python 3.10+**(使用 `str | None` union 语法)。
标签:Python, 加密, 实时处理, 密码管理, 插件系统, 数据统计, 无后门, 服务器安全, 漏洞扫描器, 端口扫描, 逆向工具