narimene-cyber/pyscanner

GitHub: narimene-cyber/pyscanner

一个纯 Python 标准库实现的快速多线程 TCP 端口扫描器,支持服务检测、Banner 抓取和 JSON 报告导出。

Stars: 0 | Forks: 0

# PyScanner 一个使用 Python 编写的快速、多线程 TCP 端口扫描器。它可以发现开放端口、识别运行中的服务,并抓取 banner 来指纹识别软件版本——所有操作均可通过命令行完成。 本项目是网络安全学习项目的一部分。 ## 功能 - 多线程扫描 —— 同时扫描数百个端口 - 服务检测 —— 通过端口号识别服务(HTTP、SSH、FTP 等) - Banner 抓取 —— 指纹识别开放端口上的软件名称和版本 - JSON 输出 —— 将结果保存为结构化的报告文件 - 简洁的 CLI —— 提供灵活的参数以适应任何扫描范围 ## 环境要求 - Python 3.6+ - 无需外部库 —— 仅使用 Python 的标准库 ## 安装说明 ``` git clone https://github.com/yourusername/pyscanner.git cd pyscanner ``` 就这么简单。无需 pip install。 ## 用法 ``` # 基础扫描(端口 1-1024) python port_scanner.py # 自定义端口范围 python port_scanner.py -s 1 -e 9999 # 调整线程数 python port_scanner.py -t 200 # 保存结果到 JSON python port_scanner.py -o results.json # 完整示例 python port_scanner.py 127.0.0.1 -s 1 -e 9999 -t 100 -o results.json ``` ### 参数 | 参数 | 描述 | 默认值 | |---|---|---| | `host` | 目标 IP 或域名 | 必填 | | `-s`, `--start` | 起始端口 | 1 | | `-e`, `--end` | 结束端口 | 1024 | | `-t`, `--threads` | 线程数 | 100 | | `-o`, `--output` | 将结果保存到 JSON 文件 | 无 | ## 示例输出 ``` [*] Starting scan on 127.0.0.1 (127.0.0.1) [*] Ports: 1-9999 | Threads: 100 [+] 22/tcp open ssh | SSH-2.0-OpenSSH_10.2 [+] 631/tcp open ipp | HTTP/1.0 400 Bad Request [+] 1716/tcp open xmsg [+] 5355/tcp open llmnr [*] Scan complete in 7s — 4 open port(s) found [*] Results saved to results.json ``` ### JSON 报告 ``` { "host": "127.0.0.1", "ip": "127.0.0.1", "scanned": "1-9999", "open_ports": [ { "port": 22, "service": "ssh", "banner": "SSH-2.0-OpenSSH_10.2" }, { "port": 631, "service": "ipp", "banner": "HTTP/1.0 400 Bad Request" }, { "port": 1716, "service": "xmsg", "banner": null }, { "port": 5355, "service": "llmnr", "banner": null } ], "timestamp": "2026-06-15 10:06:50" } ``` ## 工作原理 1. 将目标主机名解析为 IP 地址 2. 生成线程以并发扫描端口(TCP connect 扫描) 3. 对于每个开放端口,尝试进行 banner 抓取: - 首先被动监听(捕捉 SSH、FTP、SMTP 的 banner) - 如果没有收到响应,则发送 HTTP 探测(捕捉 Web 服务器) 4. 收集并排序结果,可选择保存到 JSON ## 法律免责声明 本工具旨在用于您拥有或获得**明确书面授权**进行扫描的系统。未经授权的端口扫描在您所在的司法管辖区可能属于违法行为。作者不对本工具的任何滥用行为负责。 请仅在以下对象上使用本工具: - 您自己的机器(`127.0.0.1`、您的本地网络) - 专门的练习目标,如 `scanme.nmap.org` - 您已获得书面授权的系统 ## 作者 **Narimene** —— 网络安全学生 GitHub: [github.com/narimene-cyber](https://github.com/narimene-cyber)
标签:Banner Grabbing, DNS查询工具, Python, 插件系统, 文档结构分析, 无后门, 服务器安全, 端口扫描器, 网络安全, 逆向工具, 隐私保护