s0xandrew/Network-Port-Scanner

GitHub: s0xandrew/Network-Port-Scanner

一款基于 Python 标准库的多线程 TCP 端口扫描器,支持 Banner 抓取与自动化风险评估,可快速发现目标主机的开放端口及潜在安全隐患。

Stars: 0 | Forks: 0

# 🔌 网络端口扫描器 一个多线程的 Python 端口扫描器,可对目标主机执行 TCP connect 扫描、 banner 抓取以及自动化风险评估。 ## ⚡ 功能 - **TCP Connect 扫描** — 使用 socket 连接测试端口 - **多线程** — 同时扫描 100 个端口(速度提升 10 倍) - **Banner 抓取** — 从开放端口提取服务版本信息 - **DNS 解析** — 同时接受主机名和 IP 地址 - **风险评估** — 标记危险的开放端口(Telnet、RDP、SMB 等) - **报告生成** — 将完整结果保存到 `port_scan_report.txt` ## 🛠️ 设置与安装 **环境要求:** Python 3.x(无需外部库) ``` # 克隆 repository git clone https://github.com/s0xandrew/network-port-scanner.git cd network-port-scanner # 运行 scanner python port_scanner.py ``` ## 📸 示例输出 NETWORK PORT SCANNER By Sourabh (s0xandrew) | Ethical Use Only Target: scanme.nmap.org [DNS] Resolving scanme.nmap.org... [DNS] Resolved to: 45.33.32.156 [SCAN] Scanning ports 1-1024 on 45.33.32.156 [SCAN] Using 100 threads for speed PORT SERVICE BANNER 22 SSH No banner 80 HTTP HTTP/1.1 200 OK [RESULTS] Total open ports found: 2 [RISK] No commonly dangerous ports found open. ## 🧠 工作原理 ### TCP Connect 扫描 通过使用 Python 的 `socket` 模块尝试完整的 TCP 握手来测试每个端口。 如果连接成功(返回 0),则该端口是开放的。这在基础层面上模拟了 像 nmap 等工具的工作方式。 ### 多线程 在没有线程的情况下,以 1 秒的超时时间扫描 1024 个端口需要 17 分钟以上。 使用带有 100 个 worker 的 `ThreadPoolExecutor` 可以将时间缩短至 60 秒以内 — 速度提升了 17 倍。 ### Banner 抓取 一旦发现开放端口,扫描器就会发送 HTTP HEAD 请求并读取第一段响应。 服务通常会在此处暴露其软件名称和版本 — 这是漏洞评估的关键数据。 ### 风险评估 系统会根据包含常被利用服务(Telnet、RDP、SMB、MongoDB、Redis)的字典 来检查开放端口。匹配项将触发带有解释的高风险警告。 ## 🎯 合法演练目标 | 目标 | 备注 | |--------|-------| | `scanme.nmap.org` | 由 nmap.org 维护 — 明确用于扫描练习 | | `localhost` | 你自己的机器 | | 你的家庭路由器 IP | 归你自己所有 | **未经许可,严禁扫描目标。** ## ⚖️ 道德使用免责声明 本工具仅用于: - 教育目的 - 归你所有或获得书面测试许可的系统 - 诸如 `scanme.nmap.org` 之类的合法演练环境 未经授权的端口扫描在《2000 年 IT 法案》(印度)和《计算机欺诈和滥用法》 (美国)下可能属于违法行为。作者对滥用行为 不承担任何责任。 ## 🔗 B.Cyber 相关性 | 概念 | 对应内容 | |---------|-----------| | TCP/IP & OSI Model | Socket 编程、connect 扫描 | | 网络侦察 (Network Reconnaissance) | 端口扫描方法论 | | Banner 抓取 | 服务指纹识别 | | 威胁情报 (Threat Intelligence) | 风险评估引擎 | | 纵深防御 (Defense in Depth) | 识别危险暴露的服务 | ## 📁 项目结构 network-port-scanner/ │ ├── port_scanner.py # 主扫描器 ├── port_scan_report.txt # 自动生成的报告 ## └── README.md # 本文件 ## 👨‍💻 作者 **Sourabh (s0xandrew)** 自学成才的网络安全爱好者 | ## 📚 我学到了什么 - Socket 层面的 TCP/IP 握手机制 - 诸如 nmap 等端口扫描器的底层工作原理 - 用于提升网络 I/O 性能的多线程技术 - Banner 抓取与服务指纹识别 - 基于风险的暴露网络服务思考方式 - Python:socket、threading、concurrent.futures
标签:Banner抓取, Python, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护