MaverickTheFirst/Port-Vulnerability-Checker
GitHub: MaverickTheFirst/Port-Vulnerability-Checker
一款基于Python和Tkinter构建的多线程桌面端口扫描器,能够快速探测开放端口、抓取服务Banner并提供即时的安全漏洞提示。
Stars: 0 | Forks: 0
🛡️ 端口漏洞扫描器
一款快速、多线程并带有漏洞提示的端口扫描器 —— 包装在极简的 Graphite Mist GUI 中。
几秒钟内扫描数千个端口 · 抓取服务 Banner · 获取即时安全提示 · 将结果导出为 CSV
## ✨ 功能 | 功能 | 描述 | |---------|-------------| | 🔍 **DNS 解析** | 在扫描前将任何域名解析为其 IP | | ⚡ **多线程扫描** | 支持高达 1000 个并发线程,实现极快扫描 | | 🏷️ **Banner 抓取** | 通过感知 HTTP 的探测识别正在运行的服务 | | 🛡️ **漏洞提示** | 为每个开放端口提供即时安全建议 | | 📊 **实时进度** | 实时进度条和滚动日志输出 | | 📁 **CSV 导出** | 一键导出所有扫描结果 | | 🎨 **Graphite Mist 主题** | 使用 Tkinter 构建的暗黑黑客风格 GUI | ## 🚀 快速开始 ``` # 克隆 repository git clone https://github.com/your-username/Port-Vulnerability-Checker.git cd Port-Vulnerability-Checker # 启动 scanner python main.py ``` ## 🎯 使用说明 1. **输入一个域名**(例如 `example.com`)并点击 **Resolve Domain** 2. **配置扫描选项** —— 端口范围、线程数、超时时间 3. 点击 **▶ Start Scan**,实时查看结果流入 4. **查看结果** —— 表格中的开放端口、服务提示和 banner 5. 点击 **⬇ Export CSV** 保存您的发现 ## 🏗️ 架构 代码库遵循清晰的**模块化架构**,并实现了关注点分离: ``` Port-Vulnerability-Checker/ │ ├── main.py # Entry point │ └── port_vuln/ # Core package ├── __init__.py # Package metadata ├── config.py # Constants, colours, defaults ├── network.py # DNS resolution, TCP probing, banners ├── vuln_hints.py # Security hint engine ├── scanner.py # Multi-threaded scan engine │ └── gui/ # GUI sub-package ├── __init__.py ├── styles.py # Graphite Mist ttk theme ├── controls.py # Input panel widget ├── results.py # Results table + log widget └── app.py # Main window orchestrator ``` ### 模块概览 ``` ┌─────────────────────────────────────────────────────┐ │ main.py │ │ (entry point) │ └──────────────────────┬──────────────────────────────┘ │ ┌────────▼────────┐ │ gui/app.py │ ◄── Orchestrator │ (App class) │ └──┬──────────┬───┘ │ │ ┌────────────▼──┐ ┌────▼───────────┐ │ gui/controls │ │ gui/results │ │ (user input) │ │ (table + log) │ └───────────────┘ └────────────────┘ │ ┌────────▼────────┐ │ scanner.py │ ◄── Thread pool engine └──┬──────────┬───┘ │ │ ┌────────▼───┐ ┌────▼──────────┐ │ network.py │ │ vuln_hints.py │ │ (sockets) │ │ (security) │ └────────────┘ └───────────────┘ │ ┌──────▼──────┐ │ config.py │ ◄── Shared constants └─────────────┘ ``` ## ⚙️ 配置 所有默认值都位于 [`port_vuln/config.py`](port_vuln/config.py) 中: | 常量 | 默认值 | 描述 | |----------|---------|-------------| | `DEFAULT_TIMEOUT` | `1.0s` | Socket 连接超时时间 | | `MAX_THREAD_CAP` | `1000` | 最大并发线程数 | | `QUEUE_POLL_MS` | `120ms` | GUI 队列轮询间隔 | ## 🛡️ 漏洞提示 扫描器为常见服务提供即时安全提示: | 端口 | 服务 | 提示 | |------|---------|------| | 21 | FTP | 检查匿名登录 | | 22 | SSH | 使用基于密钥的身份验证 | | 23 | Telnet | 替换为 SSH | | 80 / 8080 | HTTP | 首选 HTTPS | | 443 | HTTPS | 检查 TLS 配置 | Banner 分析还可以检测 **Apache** 和 **nginx** 并提供量身定制的建议。 ## 📄 许可证 本项目是开源的,基于 [MIT 许可证](LICENSE) 提供。使用 🐍 Python 构建 · 无外部依赖 · 纯标准库
标签:Banner抓取, Python, Tkinter, 插件系统, 数据统计, 无后门, 服务器安全, 桌面应用, 端口扫描, 逆向工具