Sebithaz-dev/Simple-TCP-Fingerprinter
GitHub: Sebithaz-dev/Simple-TCP-Fingerprinter
基于原生 socket 库从零实现的轻量级 TCP 端口扫描器,用于学习网络编程基础和服务指纹识别原理。
Stars: 0 | Forks: 0
# Python TCP 扫描器 🔍🐍
一个自定义构建的 TCP 端口扫描器,旨在探索 **网络编程** 和 **防御性网络安全** 的基础知识。虽然 NMAP 等工具是行业标准,但本项目侧重于 socket 连接和服务识别的手动实现。
## 功能特性 ⚙️
- **底层 Socket 实现:** 使用 Python 的 `socket` 库处理 IPv4 和 TCP 连接。
- **Banner 抓取:** 自动捕获服务 banner(SSH、FTP、SMTP)以识别底层的 daemons(即将支持更多)。
- **协议探测:** 针对没有初始 banner 的 HTTP 服务(端口 80、8080、8000),通过发送手动构建的 `GET` 请求来实现特定逻辑。
- **十六进制与原始输出:** 以十六进制和原始格式显示数据,用于深度数据包检查分析。
## 我学到了什么 📝
- **TCP 三次握手:** 管理 `connect_ex` 以识别开放端口与关闭端口。
- **超时管理:** 实现 `settimeout` 以处理网络延迟和未响应的主机。
- **应用层行为:** 理解“连接成功”并不总是意味着“接收到数据”,某些协议需要主动探测。
## 如何使用 🐍❔
1. 克隆仓库。
2. 修改 `host` 变量为目标 IP 地址。
3. 运行脚本:
`python main.py`
## 使用的技术 🛠️
**Python 3.x 🐍**
原生库:socket, ipaddress(无外部依赖)。
## 路线图与未来改进 🚧🐍
- [ ] **并发:** 实现 `threading` 或 `asyncio` 以更高效地扫描 65535 个端口。
- [ ] **高级错误处理:** 深入研究 `errno` 常量,以区分不同类型的连接失败。
- [ ] **服务映射:** 扩展指纹字典以涵盖更多常见的企业服务。
作为我成为一名未来 AI 与网络安全工程师之旅的一部分而开发。 ❤️
标签:Banner Grabbing, HTTP探测, Python, Scrypt密钥派生, Socket编程, TCP协议, 代码生成, 低级网络交互, 协议分析, 插件系统, 数据统计, 无后门, 服务器安全, 服务指纹识别, 权限提升, 渗透测试工具, 端口扫描, 网络安全, 网络安全工程, 网络编程, 自主研发, 逆向工具, 隐私保护