NarendraVB/secure-port-scanner

GitHub: NarendraVB/secure-port-scanner

一个基于 Python 的模块化多线程 TCP 端口扫描器,通过 TCP Connect 方式探测端口开放状态并抓取服务 Banner,旨在帮助开发者学习网络安全底层概念。

Stars: 0 | Forks: 0

# 🔍 安全端口扫描器 一个模块化、多线程的 TCP Connect 端口扫描器,使用 Python 构建。 本项目作为 **CyberSpec** 学习路线的一部分而开发,旨在了解如何发现网络服务、TCP 通信的工作原理,以及 Nmap 等专业安全工具如何执行主机枚举。 # 功能 - TCP Connect 扫描 - 多线程扫描 - 端口范围支持 - 端口列表解析 - 输入验证 - Banner Grabbing - 基础 HTTP 服务检测 - 使用 argparse 构建的专业 CLI - 模块化架构 - 可配置超时 - 可配置线程池 # 项目结构 ``` secure-port-scanner/ │ ├── banner/ │ ├── grabber.py │ └── http.py │ ├── cli/ │ ├── networking/ │ └── socket_client.py │ ├── scanner/ │ └── scanner.py │ ├── tests/ │ ├── utils/ │ ├── port_parser.py │ └── validators.py │ ├── main.py ├── requirements.txt └── README.md ``` # 工作原理 扫描器执行 **TCP Connect 扫描**。 ``` User │ ▼ CLI │ ▼ Port Parser │ ▼ Scanner │ ▼ Thread Pool │ ▼ TCP Connection │ ▼ Banner Detection │ ▼ Results ``` # 扫描工作流程 对于每个目标端口: ``` Validate Input │ ▼ Create TCP Connection │ ▼ Connection Successful? │ ┌────┴─────┐ │ │ No Yes │ │ ▼ ▼ Closed Grab Banner │ │ └────┬─────┘ ▼ Store Result ``` # 使用技术 - Python 3 - socket - argparse - concurrent.futures - ThreadPoolExecutor # 使用方法 扫描特定端口 ``` python main.py scanme.nmap.org -p 22,80,443 ``` 扫描范围 ``` python main.py scanme.nmap.org -p 1-1024 ``` 自定义超时 ``` python main.py scanme.nmap.org -p 80 --timeout 2 ``` 自定义线程数 ``` python main.py scanme.nmap.org -p 1-1000 --threads 100 ``` 显示帮助 ``` python main.py --help ``` # 示例输出 ``` ===== Scan Results ===== Port 22 Status : OPEN Banner : SSH-2.0-OpenSSH_9.6 Port 80 Status : OPEN Banner : nginx Port 443 Status : OPEN Banner : HTTP (No Server Header) ``` # 学到的安全概念 - TCP/IP - TCP 三次握手 - 客户端与服务端 - TCP Connect 扫描 - 端口 - Socket 编程 - Banner Grabbing - HTTP 请求 - 服务检测 - 线程池 - 输入验证 - 资源所有权 - 分层架构 - 安全软件设计 # 与 Nmap 的对比 | 功能 | 本项目 | Nmap | |----------|-------------|-------| | TCP Connect 扫描 | ✅ | ✅ | | 多线程 | ✅ | ✅ | | Banner Grabbing | ✅ 基础 | ✅ 高级 | | HTTP 检测 | ✅ | ✅ | | SYN 扫描 | ❌ | ✅ | | UDP 扫描 | ❌ | ✅ | | 操作系统检测 | ❌ | ✅ | | NSE 脚本 | ❌ | ✅ | 本项目有意侧重于理解底层的网络概念,而不是为了取代 Nmap。 # 未来改进 - HTTPS 检测 - JSON 输出 - CSV 导出 - 进度条 - 彩色输出 - IPv6 支持 - UDP 扫描器 - SYN 扫描器 - 服务版本检测 - 日志记录 # 免责声明 本软件仅供教育目的和授权的安全评估使用。 未经许可,请勿扫描系统。 未经授权的扫描可能违反组织政策或适用法律。 # 许可证 本项目是我的 CyberSec 学习路线的一部分。
标签:Banner抓取, DNS枚举, Python, TCP协议, 云存储安全, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全工具, 网络扫描