malek2minhaaz/PortScannerTool

GitHub: malek2minhaaz/PortScannerTool

PortScanner 是一款纯 Python 实现的网络端口扫描与安全风险分析工具,集成了操作系统指纹识别、CVE 参考及自动化报告生成功能。

Stars: 1 | Forks: 0

#在你的 kali linux 终端中 clone 此 repo # PortScannerTool # PortScanner 是一款基于 Python 从零开始使用 socket 编程开发的智能网络安全工具。与传统的端口扫描器不同,它将 TCP/UDP 端口扫描、banner grabbing、操作系统指纹识别、安全风险分析、漏洞利用感知和自动化报告生成结合在一个单一的应用程序中。 # ⚡ Port Scanner — 智能端口扫描器与服务风险分析器 **实习项目 | 网络安全 | 使用 Python 从零构建** ## 🔍 是什么让 Port Scanner 不同于 Nmap? | 功能 | Nmap | Port Scanner | |---|---|---| | 技术 | 基于 C 的二进制文件,packet crafting | 纯 Python socket 编程 | | 风险评分 | 无(仅显示开放端口) | 受 CVSS 启发的 0–10 分制评分 | | CVE 参考 | 无 | 每个服务内置 CVE 数据库 | | 修复指南 | 无 | 针对每个端口的详细修复说明 | | 操作系统检测方法 | Packet fingerprinting | TTL + TCP Window + 端口特征 | | 报告格式 | XML/grepable | HTML(dashboard)+ JSON + TXT | | Banner 分析 | 基础 | 基于 Regex 的服务识别 | ## 📁 项目结构 ``` Port Scanner/ ├── portscanner.py # Main CLI entry point ├── setup.sh # Setup & syntax check script ├── requirements.txt # Dependencies (stdlib only!) ├── README.md ├── core/ │ ├── scanner.py # TCP + UDP port scanner │ ├── banner_grab.py # Service banner grabber │ ├── risk_engine.py # Risk scoring & CVE database │ └── os_fingerprint.py # OS detection (TTL/Window/Port) ├── utils/ │ ├── display.py # Terminal output & colors │ └── logger.py # Scan session logger ├── reports/ │ └── report_gen.py # HTML / TXT / JSON report generator ├── logs/ # Auto-created: scan_history.log └── reports/ # Auto-created: output reports ``` ## ⚙️ 设置 ``` # 1. 克隆 / 解压项目 cd Port Scanner # 2. 运行 setup (检查 Python,创建目录,验证语法) chmod +x setup.sh ./setup.sh # 3. 验证 python3 portscanner.py --help ``` **要求:** 仅需 Python 3.8+。无需 pip 安装。全部使用标准库。 ## 🚀 用法 — 所有命令 ### 基础扫描(前 1024 个端口) ``` python3 portscanner.py -t 192.168.1.1 ``` ### 扫描指定端口 ``` python3 portscanner.py -t 192.168.1.1 -p 22,80,443,3306,3389 ``` ### 扫描端口范围 ``` python3 portscanner.py -t 192.168.1.1 -p 1-500 ``` ### 全端口扫描(所有 65535 个端口) ``` python3 portscanner.py -t 192.168.1.1 -p 1-65535 --threads 200 ``` ### UDP 扫描 ``` python3 portscanner.py -t 192.168.1.1 --scan-type udp -p 53,67,68,161,162 ``` ### TCP + UDP 组合扫描 ``` python3 portscanner.py -t 192.168.1.1 --scan-type both ``` ### 启用 Banner Grabbing ``` python3 portscanner.py -t 192.168.1.1 --banner ``` ### 启用风险分析 ``` python3 portscanner.py -t 192.168.1.1 --risk ``` ### 启用操作系统检测 ``` python3 portscanner.py -t 192.168.1.1 --os-detect ``` ### 完整扫描(启用所有功能) ``` python3 portscanner.py -t 192.168.1.1 --full-scan ``` ### 生成 HTML 报告 ``` python3 portscanner.py -t 192.168.1.1 --full-scan --report html ``` ### 生成所有报告(HTML + TXT + JSON) ``` python3 portscanner.py -t 192.168.1.1 --full-scan --report all ``` ### 详细模式(同时显示关闭的端口) ``` python3 portscanner.py -t 192.168.1.1 --verbose ``` ### 自定义输出目录 ``` python3 portscanner.py -t 192.168.1.1 --report html --output-dir /tmp/scans ``` ### 无颜色输出(用于 piping/logging) ``` python3 portscanner.py -t 192.168.1.1 --no-color > scan_output.txt ``` ### 自定义超时与线程 ``` python3 portscanner.py -t 192.168.1.1 -p 1-1024 --threads 150 --timeout 2.0 ``` ### 使用主机名扫描 ``` python3 portscanner.py -t scanme.nmap.org -p 1-100 --banner --risk ``` ## 🎯 完整演示命令(最适合实习演示) ``` python3 portscanner.py \ -t 192.168.1.1 \ -p 1-1024 \ --full-scan \ --threads 100 \ --timeout 1.5 \ --report all \ --output-dir reports \ --verbose ``` ## 📊 功能详解 ### 1. TCP 端口扫描器 - 使用 `concurrent.futures.ThreadPoolExecutor` 实现多线程 - 完整的 TCP connect 扫描(通过 `socket.connect_ex` 完成三次握手) - 状态:OPEN / CLOSED / FILTERED - 实时进度条 ### 2. UDP 端口扫描器 - 发送特定服务的 probe 数据包(DNS、SNMP probe) - 状态:OPEN / CLOSED / OPEN|FILTERED - 处理 ICMP Port Unreachable 响应 ### 3. Banner Grabber - 连接开放端口并发送协议 probe - 针对特定服务的 probe:HTTP HEAD、SMTP EHLO、Redis PING 等 - 基于 Regex 的服务识别:SSH、Apache、Nginx、MySQL、Redis 等 ### 4. 操作系统指纹识别 - **TTL 分析**:系统 ping → 解析 TTL → 映射到操作系统(Windows=128,Linux=64,Cisco=255) - **TCP Window**:Socket 缓冲区大小指纹识别 - **端口特征**:探测 Windows 特定(135、445、3389)和 Linux 特定(22、111)端口 ### 5. 风险引擎 - 每个端口受 CVSS 启发的评分(0.0–10.0) - 风险等级:CRITICAL / HIGH / MEDIUM / LOW / INFO - 每个服务的 CVE 参考 - 详细的修复步骤 - 整体安全态势评级 ### 6. 报告生成器 - **HTML**:带有暗色主题的完整网络安全 dashboard - **TXT**:用于终端/logging 的纯文本报告 - **JSON**:用于集成/解析的结构化数据 ## 🔐 风险评分示例 | 端口 | 服务 | 分数 | 等级 | |------|---------|-------|-------| | 23 | Telnet | 9.8 | CRITICAL | | 3389 | RDP | 9.8 | CRITICAL | | 6379 | Redis | 9.8 | CRITICAL | | 445 | SMB | 9.5 | CRITICAL | | 3306 | MySQL | 8.5 | HIGH | | 21 | FTP | 8.0 | HIGH | | 22 | SSH | 5.0 | MEDIUM | | 80 | HTTP | 5.0 | MEDIUM | | 443 | HTTPS | 2.0 | LOW | ## 🧪 在 Localhost 上测试 ``` # 针对你自己的机器进行安全测试 python3 portscanner.py -t 127.0.0.1 -p 1-1024 --full-scan --report html ``` ## 📚 展示的技术技能 - **Python Socket 编程**:`socket`、`AF_INET`、`SOCK_STREAM`、`SOCK_DGRAM` - **多线程**:`ThreadPoolExecutor`、`threading.Lock` - **TCP/UDP 协议**:端口状态,三次握手,ICMP - **服务识别**:Banner regex,probe 数据包 - **操作系统检测**:TTL 分析,window sizing - **安全概念**:CVE,CVSS,风险评分,修复 - **报告生成**:从零生成 HTML,JSON,TXT ## ⚠️ 法律声明 Port Scanner 仅用于**授权的网络安全测试**。 在扫描任何非您拥有的网络或系统之前,请务必获得书面许可。 未经授权的端口扫描可能违反计算机犯罪法规。 *为网络安全实习项目打造 | Port Scanner v1.0*
标签:Banner抓取, Python, 实时处理, 密码管理, 插件系统, 数据统计, 文档结构分析, 无后门, 服务器安全, 端口扫描, 网络安全, 自动化报告, 逆向工具, 隐私保护