TechTensor/VulnScope-Vulnerability-Scanner
GitHub: TechTensor/VulnScope-Vulnerability-Scanner
一款基于 Flask 的轻量级 Web 漏洞评估工具,面向授权的本地和私有网络安全扫描,帮助用户学习端口扫描、服务检测和风险分级等基础安全概念。
Stars: 0 | Forks: 0
# 🛡️ VulnScope — 漏洞评估扫描器
**VulnScope** 是一款基于 Web 的漏洞评估工具,旨在对 **localhost 和私有网络系统** 执行有限的、非破坏性的安全检查。
该应用程序可识别开放的 TCP 端口、检测服务暴露情况、分析选定的 Web 安全标头、审查可见的软件信息、对安全发现进行分类,并生成简单的漏洞评估报告。
VulnScope 使用 **Python、Flask、HTML、CSS、JavaScript 和 SQLite** 构建,提供了一个交互式的网络安全仪表板,用于学习基础的漏洞评估和渗透测试概念。
## ✨ 功能
### 🔍 授权目标扫描
VulnScope 接受:
* Localhost 目标
* Loopback 地址
* 私有网络 IP 地址
* 私有网络主机名
这款教育性扫描器会故意拦截公共互联网目标。
### 🌐 常见 TCP 端口扫描
扫描器会检查预定义的 **15 个常见 TCP 端口**:
| 端口 | 服务 |
| ---- | ---------------- |
| 21 | FTP |
| 22 | SSH |
| 23 | Telnet |
| 25 | SMTP |
| 53 | DNS |
| 80 | HTTP |
| 110 | POP3 |
| 143 | IMAP |
| 443 | HTTPS |
| 445 | SMB |
| 3306 | MySQL |
| 5432 | PostgreSQL |
| 6379 | Redis |
| 8000 | 开发 HTTP |
| 8080 | 备用 HTTP |
扫描器使用 TCP 连接检查来识别接受连接的服务。
### 🖥️ 服务暴露检测
VulnScope 可识别通常暴露的服务,例如:
* FTP
* SSH
* Telnet
* SMB
* MySQL
* PostgreSQL
* Redis
* HTTP 和 HTTPS 服务
风险引擎会区分:
* **Localhost**
* **私有网络**
一个开放的 localhost 端口不会自动被视为高风险漏洞。
### 🔎 服务 Banner 分析
扫描器会审查在网络连接期间自愿返回的服务信息。
对于基于文本的服务,VulnScope 会提取可读的 banner 信息。
对于 MySQL 服务,应用程序会安全地处理二进制握手数据包,并提取有用的信息,例如:
```
MySQL service detected
Version: 8.0.42
Authentication Plugin: caching_sha2_password
```
原始的二进制协议数据不会直接显示在界面中。
### 🌍 HTTP 安全标头分析
对于检测到的 Web 服务,VulnScope 会检查选定的 HTTP 安全标头,包括:
* `Content-Security-Policy`
* `X-Content-Type-Options`
* `Referrer-Policy`
* 针对 HTTPS 服务的 `Strict-Transport-Security`
扫描器还可以识别通过 `Server` 响应标头暴露的可见 Web 服务器信息。
### ⚠️ 风险分类
安全观察结果分为五个级别:
* **严重**
* **高危**
* **中危**
* **低危**
* **信息**
总体评估风险是根据扫描期间检测到的最高严重程度计算的。
VulnScope 将**服务暴露观察结果**与**已确认的漏洞**区分开来。
仅凭一个开放的端口并不能自动证明系统存在漏洞。
### 🛠️ 修复建议
每项发现包括:
* 发现标题
* 严重程度
* 受影响的服务
* 技术证据
* 建议的修复措施
示例:
```
Finding:
Local MySQL Service Detected
Severity:
Informational
Evidence:
MySQL is accepting a connection on localhost.
Recommendation:
Keep MySQL patched and verify that it is bound only to intended interfaces.
```
### 📊 交互式安全仪表板
VulnScope 界面显示:
* 总体风险
* 目标范围
* 检查的端口数
* 开放端口数
* 安全发现总数
* 高危发现数量
* 检测到的服务
* 详细的漏洞发现
* 修复指导
该界面采用受网络安全启发的深色仪表板设计,并带有动态雷达可视化和扫描进度指示器。
### 📁 扫描历史记录
VulnScope 使用 **SQLite** 存储评估历史记录。
存储的扫描信息包括:
* 目标
* 解析的 IP 地址
* 总体风险
* 开放端口数
* 发现数量
* 安全发现
* 扫描时间戳
最近的评估报告会显示在扫描存档部分。
### 📄 漏洞报告导出
每次完成的扫描都可以导出为简单的基于文本的漏洞评估报告。
报告包括:
* 目标信息
* 解析的 IP 地址
* 总体风险
* 扫描时间戳
* 安全发现
* 技术证据
* 修复建议
## 🛠️ 使用的技术
| 技术 | 用途 |
| ------------------ | ---------------------- |
| Python | 扫描器和后端逻辑 |
| Flask | Web 应用框架 |
| Socket Programming | TCP 端口连接检查 |
| Python `ipaddress` | 目标范围验证 |
| Python `ssl` | HTTPS 连接处理 |
| SQLite | 扫描历史记录存储 |
| HTML5 | 应用程序结构 |
| CSS3 | 网络安全仪表板设计 |
| JavaScript | 交互式扫描界面 |
## 📂 项目结构
```
VulnScope/
│
├── app.py
├── scanner.py
├── database.py
│
├── database/
│ └── scanner.db
│
├── static/
│ ├── css/
│ │ └── style.css
│ │
│ └── js/
│ └── app.js
│
└── templates/
└── index.html
```
## 🚀 如何运行该项目
### 1. 安装 Flask
打开终端并运行:
```
pip install flask
```
### 2. 打开项目目录
导航到 VulnScope 项目文件夹:
```
cd VulnScope
```
### 3. 运行 Flask 应用程序
```
python app.py
```
### 4. 打开 VulnScope
打开 Web 浏览器并访问:
```
http://127.0.0.1:5000
```
## 🧪 测试扫描器
为了进行安全的本地演示,请输入:
```
127.0.0.1
```
确认:
```
I own this target or have explicit permission to assess it.
```
然后点击 **扫描目标**。
扫描结果取决于计算机上当前运行的服务。
例如,运行 MySQL 的计算机可能会将 TCP 端口 `3306` 显示为打开状态。
## 🧠 扫描器工作原理
```
Authorized Target
↓
Target Validation
↓
Target Scope Detection
↓
TCP Port Scanning
↓
Service Identification
↓
Banner Processing
↓
HTTP Header Analysis
↓
Risk Classification
↓
Remediation Generation
↓
Vulnerability Report
```
扫描器使用有限的预定义端口列表和非破坏性的 TCP 连接检查。
## 🔒 安全与道德使用
VulnScope 专为**网络安全教育学习和授权的漏洞评估**而设计。
用户应该:
* 仅扫描自己拥有的系统
* 在评估其他系统之前获得明确的许可
* 避免未经授权的网络扫描
* 遵守适用的网络安全法律和组织政策
扫描器故意将目标限制在 localhost 和私有网络系统。
## ⚠️ 局限性
VulnScope 是一款轻量级的教育性漏洞评估工具,**不能替代专业的安全扫描器**。
当前的局限性包括:
* 有限的预定义 TCP 端口列表
* 不执行漏洞利用
* 没有凭证攻击
* 没有暴力破解功能
* 不扫描公共互联网目标
* 没有自动化的 CVE 数据库集成
* 没有经过身份验证的漏洞评估
软件版本信息将作为观察结果报告。如果没有经过验证的漏洞或版本数据源,VulnScope 不会将软件归类为过时或存在漏洞。
## 🎯 项目目标
VulnScope 的目标是理解并演示与以下内容相关的概念:
* 漏洞评估
* TCP 端口扫描
* 网络服务暴露
* Socket 编程
* 服务 banner 分析
* HTTP 安全标头
* 风险分类
* 安全修复
* 道德渗透测试原则
* Flask Web 应用程序开发
## 📄 免责声明
VulnScope 的开发严格出于**教育和授权的安全评估目的**。
开发者不对本应用程序的未经授权或非法使用负责。
在对您不拥有的系统执行漏洞评估之前,请务必获得适当的授权。
标签:Flask, Python, 密码管理, 插件系统, 数据可视化, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护