PesaraLimal/port_scanner--selfproject

GitHub: PesaraLimal/port_scanner--selfproject

一个专注于教育和实验室环境的网络安全端口扫描器。

Stars: 0 | Forks: 0

# ⚡ 安全端口扫描器 安全端口扫描器是一个专业、易于上手、用于教育目的的网络安全审计工具,用Python编写。它具有高保真度的视觉仪表板,采用现代深色主题(并提供柔和的浅色模式),响应式的实时日志调试控制台,搜索过滤器,历史记录,以及本地的CSV/JSON导出器。 该工具专门为**大学实验室**、**学术作品集**和**自学网络安全爱好者**开发,展示了低级网络套接字编程、多线程控制、线程安全GUI同步和安全的收集信息实践的核心概念。 ## 🧭 教育重点与核心网络概念 此工具的结构旨在作为实用的学习参考: 1. **低级TCP套接字(`socket`模块)**:使用标准的IPv4(`socket.AF_INET`)和TCP(`socket.SOCK_STREAM`)抽象。使用非阻塞连接尝试API `socket.connect_ex()`,展示标准TCP握手如何在不触发系统异常的情况下工作。 2. **多线程并发(`threading`模块)**:使用`queue.Queue`实现工作池。教授如何通过将网络任务分配给线程工作员来提高检查速度,最多提高50倍,而不会阻塞主进程执行。 3. **信息收集与协议设计(`banner.py`)**:演示了*服务器先说话*协议(例如SSH、FTP、SMTP立即问候)和*客户端先说话*协议(例如HTTP,需要符合TCP探测以释放头部)之间的区别,以及安全的字节解码例程。 4. **线程安全GUI更新**:展示如何通过协调后台线程和通过主事件循环上的线程安全FIFO队列读取更新来维护UI响应性和避免界面冻结。 ## ✨ 功能 - **主机DNS解析器**:支持IP地址(`127.0.0.1`、`10.0.0.1`)和域名(`scanme.nmap.org`、`localhost`),使用系统级DNS调用解析它们。 - **端口范围检查**:自定义验证器,在连接启动之前捕获输入错误、无效边界或字符。 - **多线程扫描器**:可配置的线程级别(最多250个线程)和安全的工人,以保护系统资源。 - **响应式表格树**:显示端口、状态、服务类型和横幅信息。所有列均具有升序/降序排序功能。 - **实时搜索与过滤**:实时过滤,允许用户仅查看`开放`端口或匹配任何字段的关键字子串。 - **学术日志面板**:一个实时滚动的调试控制台,显示时间戳、连接尝试、套接字警告和线程事件。 - **持久化本地历史记录**:自动加载完成的扫描列表视图及其目标和发现的端口数量。双击历史记录项自动完成输入表单。 - **CSV和JSON导出器**:集成本地的文件保存对话框以导出审计。 - **主题定制切换**:立即在网络安全深色主题和高度对比的浅色主题之间切换。 - **内置参考指南**:一个包含网络理论清晰摘要的模态框。 ## 🛠️ 技术栈与依赖 为了使其尽可能易于访问,安全端口扫描器完全依赖于Python 3的内置标准库: - **`tkinter`**:图形用户界面引擎。 - **`socket`**:低级网络连接和主机解析。 - **`threading`**:并行执行器编排。 - **`queue`**:线程安全内存队列。 - **`csv` & `json`**:序列化和读取日志格式。 - **`re` & `os`**:系统操作和验证。 **先决条件**: - Python `3.8`或更高版本。 - 无需外部包!(无需任何`pip install`设置)。 ## 🚀 安装与运行方法 1. 克隆或下载此项目文件夹。 2. 在项目目录中打开命令提示符或终端。 3. 执行入口点: python main.py *(注意:在无头Linux系统上,您可能需要使用包管理器安装Tkinter库,例如`sudo apt-get install python3-tk`或`sudo dnf install python3-tkinter`).* ## 📐 项目结构 ``` secureport-scanner/ │ ├── main.py # Environment verifier and window launcher ├── scanner.py # Thread pooling and connect_ex TCP engine ├── banner.py # Protocol banner grabber (SSH greetings & HTTP probes) ├── exporter.py # CSV and JSON file export functions ├── ui.py # Responsive Tkinter custom styled interface ├── utils.py # Validator regexes, history loader, configurations ├── requirements.txt # Academic package prerequisites listing ├── scan_history.json # Persisted local history entries (Auto-generated) ├── sample_scan_results.csv # Reference of CSV format exports ├── sample_scan_results.json # Reference of JSON format exports └── assets/ # App logos and aesthetic visual assets folder ``` ## 🛡️ 教育与法律免责声明 ## 🔮 未来改进与作品集添加 此存储库旨在易于扩展。学生作品集扩展的优秀选项包括: 1. **CVE查找API集成**:使用服务名称和版本横幅查询在线数据库(例如NIST NVD)以获取漏洞。 2. **操作系统检测(横幅分析)**:解析欢迎横幅以猜测目标操作系统版本(例如Ubuntu、Debian、CentOS、Windows Server)。 3. **异步扫描集成**:使用现代Python `asyncio`流重写扫描器操作,以减轻内存负载。 4. **SQL历史数据库**:用SQLite模块(`sqlite3`)替换轻量级的JSON日志文件,以实现完整的排序、删除和高级统计存储。 5. **网络可视化地图**:使用Python标准画布小部件绘制实时连接图或导出节点配置到可视化图表。
标签:ETW劫持, GUI开发, JSON导出, Python, TCP套接字, 内核驱动, 学术研究, 实验室工具, 教育工具, 数据统计, 无后门, 日志记录, 暗网主题, 端口扫描, 线程安全, 网络协议, 网络安全, 网络编程, 自我学习, 逆向工具, 隐私保护