HITMANSDEATH/PortPeek

GitHub: HITMANSDEATH/PortPeek

一套基于 Python 标准库构建的高性能多线程 TCP 端口扫描工具,提供 CLI 和 GUI 双形态用于快速网络审计与服务发现。

Stars: 0 | Forks: 0

# PortPeek Suite:TCP 扫描工具 一套使用 Python 构建的高性能网络扫描实用工具。该套件包含一个用于快速审计的轻量级 CLI 工具,以及一个用于交互式服务发现的强大 GUI 应用程序。 ## 套件概览 ### PortPeek Light (CLI) 一款高速、无界面的端口扫描器,专为在终端环境下的高性能而设计。 - **最适用于:** 自动化脚本、快速网络审计和 CI/CD pipeline。 - **性能:** 可在 2 秒内扫描约 1,000 个端口。 ### PortPeek Pro (GUI) 一款使用 `tkinter` 构建的功能丰富的桌面应用程序,为复杂的网络映射提供可视化界面。 - **最适用于:** 交互式安全研究和详细的服务指纹识别。 - **包含:** 用于自动化服务识别的 Banner 抓取。 ## 功能 - **并发执行:** 利用线程安全的 Producer-Consumer 架构处理数千个并发 socket 连接,且不会发生冻结。 - **服务指纹识别:** Pro 版本执行“Banner Grabbing”以识别开放端口上运行的软件版本。 - **线程管理:** 优雅处理线程生命周期,确保在扫描完成或用户取消时立即释放资源。 - **零依赖:** 完全使用 Python 标准库(`socket`、`threading`、`tkinter`、`queue`)构建。 ## 运行方式 ### PortPeek Light (CLI) ``` python scanner.py -p 1-1024 -t 100 ``` ### PortPeek Pro (GUI) ``` python gui_scanner.py ``` ## 技术概述 NetScan Suite 的架构旨在通过并发处理和线程安全的数据处理来优先保证性能。 ### 核心架构 - **Producer-Consumer 模式:** 集中式的 `Queue` 负责管理端口范围的分配。Worker 线程作为 consumer 从队列中提取任务并执行 socket 操作,这确保了最佳的 CPU 利用率,并避免了为每个端口生成新进程的开销。 - **异步 UI(Pro 版本):** 为防止在进行密集的网络 I/O 操作时界面冻结,Pro 版本实现了解耦架构。`tkinter` 主循环负责处理用户输入和渲染,而专用的 `scan_manager` 线程则在后台编排 worker 线程。将结果注入 GUI 是通过线程安全的 callback(`root.after`)处理的,从而确保了后台 worker 线程与主 UI 线程之间的数据一致性。 ### 网络与并发 - **Socket 编程:** 该套件利用带有 `AF_INET` 和 `SOCK_STREAM` 协议的底层 `socket` 对象来执行 TCP 3 次握手。采用非阻塞的 `connect_ex` 调用,并结合可配置的 timeout,能够高效地将端口分类为 open、closed 或 filtered。 - **线程安全:** 实现了 `threading.Lock` 来同步控制台输出和结果列表更新,从而防止多个线程同时尝试向终端或 GUI 表格写入数据时发生竞态条件。 - **优雅终止:** Pro 版本具有非阻塞的“Stop”机制。通过清空任务队列并使用 daemon 线程,该套件确保在用户中止扫描时,所有网络连接都会被关闭,且线程会立即释放。 ### 服务指纹识别(Pro 版本) - **Banner Grabbing:** 在识别到开放端口后,该工具会发起二次握手尝试。它会发送一个通用的 `HEAD` 请求并捕获服务器的响应标头。生成的缓冲区会使用带错误抑制的 `utf-8` 进行解码,以确保该工具在遇到二进制数据或格式错误的响应时依然保持稳定。 ## 免责声明 本工具仅供教育和授权的安全审计目的使用。请仅在您拥有或已获得明确扫描授权的网络和设备上使用。
标签:GUI, Python, Scrypt密钥派生, 插件系统, 数据统计, 无后门, 服务指纹识别, 端口扫描, 网络扫描器, 逆向工具