AMALRAJ24/PORT-SCANNER

GitHub: AMALRAJ24/PORT-SCANNER

一个基于Python的多线程TCP端口扫描器,用于快速识别目标主机的开放端口与服务。

Stars: 0 | Forks: 0

# 🔍 端口扫描器 一个使用 Python 构建的多线程 TCP 端口扫描器,用于识别目标主机上的开放服务。模拟了渗透测试中使用的核心侦察方法论。 ## 📸 示例输出 ``` ================================================== Target : 127.0.0.1 (127.0.0.1) Ports : Common (50) Threads : 100 Started : 2026-04-21 10:30:00 ================================================== [OPEN] 21 FTP [OPEN] 53 DNS [OPEN] 443 HTTPS ================================================== Scan complete: 10:30:08 Ports scanned : 50 Open ports : 3 PORT SERVICE ──────────────────── 21 FTP 53 DNS 443 HTTPS ================================================== ``` ## 🚀 功能特性 - 多线程扫描(最多 500 个线程),结果快速 - 支持单个端口、端口范围、逗号分隔端口和常见端口模式 - 自动服务指纹识别(SSH、FTP、HTTP、RDP、MySQL、MongoDB 等) - 主机名解析 — 兼容 IP 地址和域名 - 干净的 Ctrl+C 退出处理 - 扫描完成后自动退出 ## 🛠️ 要求 - Python 3.6+ - 无需外部依赖 — 仅使用 Python 标准库(`socket`、`threading`、`queue`) ## ⚙️ 安装 ``` git clone https://github.com/AMALRAJ24/port-scanner.git cd port-scanner ``` 无需 pip 安装。 ## 📖 使用方法 ``` # 扫描常用 50 个端口 python port_scanner.py -t 127.0.0.1 --common # 扫描端口范围 python port_scanner.py -t 192.168.1.1 -p 1-1000 # 扫描特定端口 python port_scanner.py -t 192.168.1.1 -p 80,443,22,3306 # 使用更多线程扫描(更快) python port_scanner.py -t 192.168.1.1 -p 1-5000 --threads 300 ``` ### 参数说明 | 参数 | 描述 | 示例 | |------|------|------| | `-t` | 目标 IP 或主机名 **(必需)** | `-t 192.168.1.1` | | `-p` | 要扫描的端口 | `-p 80` 或 `-p 1-1000` 或 `-p 80,443` | | `--common` | 扫描 50 个最常用的渗透测试端口 | `--common` | | `--threads` | 线程数量(默认:100,最大:500) | `--threads 200` | ## 🧠 工作原理 1. 将目标主机名解析为 IP 地址 2. 使用 Python 的 `threading` 和 `queue` 模块创建线程池 3. 每个线程尝试对端口执行 TCP 连接(`connect_ex`) 4. 如果连接成功(返回 0),则标记该端口为 **OPEN** 5. 将开放端口与指纹字典进行匹配以识别服务 6. 扫描完成后打印汇总信息 这与 **Nmap** 和 **Masscan** 等工具使用的核心机制相同。 ## 📡 扫描的常见端口(--common 模式) | 端口 | 服务 | 端口 | 服务 | |------|------|------|------| | 21 | FTP | 3306 | MySQL | | 22 | SSH | 3389 | RDP | | 23 | Telnet | 5432 | PostgreSQL | | 25 | SMTP | 5900 | VNC | | 53 | DNS | 6379 | Redis | | 80 | HTTP | 8080 | HTTP-Alt | | 443 | HTTPS | 27017 | MongoDB | | 445 | SMB | 9200 | Elasticsearch | ## 🔐 合法与道德使用 仅限用于以下场景: - 自己的机器(`127.0.0.1`) - 自己的家庭/实验室网络(`192.168.x.x`) - 实践目标如 `scanme.nmap.org`(Nmap 官方允许) - 你已获得**书面授权**的系统 未经授权的端口扫描可能违反你所在国家的计算机欺诈法律。 ## 📚 演示概念 - TCP/IP 网络与套接字编程 - 多线程与生产者-消费者模式 - 网络侦察方法论(PTES / CEH 框架) - 服务枚举 — 渗透测试第一步 ## 👤 作者 **Amal Raj R** - GitHub:[@AMALRAJ24](https://github.com/AMALRAJ24) - LinkedIn:[ajx4](https://linkedin.com/in/ajx4) - TryHackMe:全球前 25% ## 📄 许可证 本项目采用 MIT 许可证 — 可自由使用、修改和分发,但需保留署名。
标签:DNS, DNS查询工具, HTTPS, MongoDB, Python, RDP, Scrypt密钥派生, SSH, TCP扫描, 二进制发布, 开源工具, 情报分析, 数据泄露防护, 数据统计, 无后门, 服务指纹识别, 端口扫描, 端口扫描器, 网络安全, 网络探测, 网络诊断, 逆向工具, 隐私保护