sandshark-labs/tcp-port-scanner
GitHub: sandshark-labs/tcp-port-scanner
Sandshark TCP 端口扫描器是一款轻量级、跨平台的网络端口扫描工具,用于发现开放端口和安全审计。
Stars: 0 | Forks: 0
# tcp-port-scanner
# Sandshark TCP 端口扫描器(v1.0.0.00)
Sandshark 是一款轻量级、跨平台的网络套接字审计工具,使用 Python 3 原生编写。作为 CompTIA Network+ 课程中学习的第 4 层网络概念的实用实现,此实用程序为系统管理员提供了一种快速、无依赖的发现开放网络路径和审计端点安全控制的方法。
## 核心工程特性
- **强大的输入验证:** 动态解析输入字符串,将端口号范围(例如:`20-80`)转换为可用的整数流,对有效网络端口($1$ 到 $65535$)施加硬边界。
- **双操作模式:** 支持交互式控制台运行时和通过原生命令行标志(`argparse`)的自动化脚本执行。
- **弹性异常处理:** 与遇到丢弃数据包就完全崩溃的基本扫描脚本不同,Sandshark 在执行循环内部隔离 `socket.timeout` 和 `socket.error` 异常。如果端口被过滤或死亡,活动套接字会干净地关闭,循环无缝地继续到下一个目标。
- **跨平台环境感知:** 动态嗅探主机操作系统,无缝地在 Windows (`cls`)、macOS 和 Linux 发行版(`clear`)上发出控制台清除命令。
- **零外部依赖:** 完全使用原生 Python 模块构建,以确保在安全系统上无摩擦和即时部署。
## 核心网络握手机制
Sandshark 通过 Python 的原生 `socket.connect_ex()` 方法使用 **TCP Connect Scan** 架构。此方法连接到操作系统的网络堆栈,尝试完成第 4 层的三向握手:
Sandshark (Scanner) 目标端点
| |
| ---------- SYN 数据包 ---------> | (开始握手)
| |
| <------- SYN-ACK 数据包 -------- | (端口开放:返回 0)
| |
| ---------- ACK 数据包 ---------> | (握手完成)
| |
| ---------- RST 数据包 ---------> | (安全关闭套接字)
通过跟踪环境返回代码而不是依赖基本 try/catch 超时,该工具快速分类网络状态。为了防止在防火墙主机上无限挂起,套接字被优化为具有积极的 $0.5\text{-second}$ 连接超时参数。
## 部署
### 1. 先决条件
Sandshark 需要在主机系统上安装 Python 3.x。本地克隆存储库或下载原始脚本文件:
```
git clone [https://github.com/sandshark-labs/python-tcp-scanner.git](https://github.com/sandshark-labs/python-tcp-scanner.git)
cd python-tcp-scanner
```
标签:HTTP 参数枚举, 服务器监控, 逆向工具