Sudheer-pi/-Vulnerability-scanner

GitHub: Sudheer-pi/-Vulnerability-scanner

一个面向网络安全初学者的 Python 多线程漏洞扫描器,提供端口扫描、TCP Banner 抓取与 HTTP 安全标头审计功能,支持 GUI 与 CLI 双模式运行及报告导出。

Stars: 0 | Forks: 0

# 🛡️ 网络安全漏洞扫描器 [![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/) [![License](https://img.shields.io/badge/license-MIT-emerald.svg?style=for-the-badge)](LICENSE) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-slate.svg?style=for-the-badge)](#) [![SecOps Category](https://img.shields.io/badge/Security-Audit--Tool-red.svg?style=for-the-badge)](#) 一个高性能、达到作品集标准且对新手友好的**网络安全漏洞扫描器**,使用 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, 密码管理, 插件系统, 数据统计, 无后门, 端口扫描, 逆向工具