Sudheer-pi/-Vulnerability-scanner
GitHub: Sudheer-pi/-Vulnerability-scanner
一个面向网络安全初学者的 Python 多线程漏洞扫描器,提供端口扫描、TCP Banner 抓取与 HTTP 安全标头审计功能,支持 GUI 与 CLI 双模式运行及报告导出。
Stars: 0 | Forks: 0
# 🛡️ 网络安全漏洞扫描器
[](https://www.python.org/)
[](LICENSE)
[](#)
[](#)
一个高性能、达到作品集标准且对新手友好的**网络安全漏洞扫描器**,使用 Python 编写。它具有令人惊艳且极具沉浸感的深色主题“黑客控制台” GUI,以及强大的 CLI 模式、多线程端口扫描、欢迎 Banner 抓取和非侵入式的 HTTP/HTTPS 标头安全审计。
本项目从零开始构建,无重度依赖,以最大化可移植性与可读性,非常适合学生作品集、网络安全训练营和技术面试。
## 🎯 核心特性
- **📡 并发引擎:** 使用多线程连接 socket 握手的高度响应式端口扫描器。
- **💻 沉浸式黑客主题:** 现代石板暗色 Tkinter GUI (`#090D16`),配有发光的翠绿色调以及实时滚动的终端进度。
- **🏷️ Banner 抓取器:** 拦截 TCP 欢迎 Banner(例如 FTP 问候文本、SSH 客户端字符串)以识别服务。
- **🔒 HTTP 标头安全审计器:** 向 Web 服务器发送非侵入式的 HTTP 审计以检测:
- `Server` 标头中的软件版本暴露。
- 缺少点击劫持保护 (`X-Frame-Options`)。
- 缺少内容注入缓解措施 (`Content-Security-Policy`)。
- 缺少跨站脚本嗅探防御 (`X-Content-Type-Options`)。
- 缺少安全传输策略 (`Strict-Transport-Security`)。
- **📊 高级导出:**
- **HTML 安全仪表板:** 动态响应式网页,显示元数据网格、严重威胁列表以及针对“另存为 PDF”导出优化的打印设置。
- **ASCII 纯文本:** 带有复古 ASCII 标头日志的经典网络报告。
- **🧠 混合执行:** 自动检测环境。启动可视化桌面 GUI,或平滑回退至 CLI 终端模式以进行服务器集成。
## 📁 仓库目录结构
```
Vulnerability Scanner/
├── README.md # Visual repository documentation & setup manual
├── LICENSE # Open-source MIT Licensing
├── requirements.txt # Package requirements (only requests is needed)
├── .gitignore # Ignores build cache, virtualenvs, local security scans
├── main.py # Application bootloader (dispatches GUI or CLI)
└── src/
├── __init__.py # Standard module initialization
├── scanner.py # Concurrency TCP socket scanner & HTTP header auditor
├── reporter.py # TXT ASCII report and CSS HTML dashboard exporter
└── gui.py # Tkinter multi-thread dashboard console layout
```
## ⚡ 设置与运行说明
确保您已安装 [Python 3.8+](https://www.python.org/downloads/)。
### 1. 克隆与初始化
创建一个虚拟环境并安装唯一的必需依赖 (`requests`):
```
# Clone 仓库(或复制项目目录)
cd "Vulnerability Scanner"
# Create 虚拟环境
python -m venv venv
# Activate 虚拟环境(Windows)
venv\Scripts\activate
# Activate 虚拟环境(macOS / Linux)
source venv/bin/activate
# 安装 HTTP header scanner 依赖
pip install -r requirements.txt
```
### 2. 在桌面 GUI 模式下运行(默认)
直接运行且不带任何参数即可打开交互式深色主题安全仪表板:
```
python main.py
```
### 3. 在命令行 (CLI) 模式下运行
完全在命令终端内执行扫描器。非常适合自动化审计:
```
# 扫描 localhost 上的默认常见 ports
python main.py --cli --target 127.0.0.1
# 使用自定义 thread pools 扫描自定义范围 ports
python main.py --cli --target scanme.nmap.org --ports 20-100 --threads 25
```
## ⚙️ 架构与面向对象设计
该扫描器遵循专业的面向对象设计和 SOLID 原则:
1. **关注点分离 (`src/scanner.py`):** 核心网络扫描器对 Tkinter 或控制台显示一无所知。它严格通过松散的回调进行通信,使得同一模块能够无缝接入 GUI 或 CLI。
2. **线程安全 (`src/gui.py`):** Tkinter 不是线程安全的。所有网络扫描都在后台工作线程中异步运行。发现的开放端口和进度更新被放入线程安全的 `queue.Queue` 中,由主 GUI 线程每 100ms 轮询一次,确保应用程序零卡死。
3. **响应式 CSS 报告 (`src/reporter.py`):** HTML 报告采用精心设计的配色方案和简洁的布局,包含 `@media print` 指令,在打印时会自动去除厚重的深色边框和背景,允许通过标准浏览器打印创建专业的矢量 PDF。
## ⚠️ 安全使用与法律免责声明
## 📄 许可证
基于 **MIT License** 分发。详情请参阅 `LICENSE`。
标签:GUI, Python, 密码管理, 插件系统, 数据统计, 无后门, 端口扫描, 逆向工具