1. 项目概述
1.1 项目背景与需求分析
在网络安全领域,主机发现与端口扫描是最基础却至关重要的环节。传统工具如Nmap虽然功能强大,但在某些特定场景下存在明显不足:部署复杂(需要编译安装)、自定义程度低(规则修改困难)、输出结果不易集成(需要额外解析)。这些痛点促使我开发了PolyScan——一个基于Python的轻量级网络扫描系统。
PolyScan的设计初衷是解决以下三类典型问题:
- 快速部署需求:在临时性安全评估中,需要即装即用的工具
- 定制化扫描:针对特定业务场景的协议和端口组合
- 结果可视化:实时展示扫描进度和风险等级
1.2 核心功能设计
1.2.1 多维度探测体系
- 网络层探测:采用ICMP Echo Request实现基础存活检测,通过TTL值反推操作系统类型(误差率<15%)
- 传输层扫描:
- TCP SYN扫描(半开连接):发送SYN包后根据SYN-ACK/RST响应判断端口状态
- TCP全连接扫描:建立完整TCP三次握手,适用于权限受限环境
- 应用层识别:
- 服务指纹采集:建立TCP连接后读取前1024字节Banner信息
- 协议交互模拟:对HTTP/MySQL等常见协议发送特征探针
1.2.2 智能风险评估引擎
实现三级风险评估模型:
python复制def evaluate_risk(port, banner):
risk = "INFO"
if port in [22, 3389, 445]: # 高危端口列表
risk = "HIGH"
if "Apache/2.4.1" in banner: # 已知漏洞版本
risk = "CRITICAL"
return risk
1.2.3 可视化交互设计
采用PyQt5构建的GUI界面包含:
- 实时日志面板(支持关键词高亮)
- 扫描结果表格(按风险等级着色)
- 拓扑图展示(需额外安装graphviz)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构实现
2.1 技术栈选型考量
选择Python+Scapy组合主要基于:
- 开发效率:Scapy提供完整的
