iam-varun2008/port-vulnerability-scanner
GitHub: iam-varun2008/port-vulnerability-scanner
一个基于 Python 的轻量级 TCP 端口扫描与基础风险评估工具,专为授权环境下的网络安全学习和服务暴露检测而设计。
Stars: 0 | Forks: 0
# 网络端口扫描器与基础漏洞风险报告工具
这是一个基于 Python 的工具,用于授权的网络暴露评估、TCP 端口扫描、基础服务识别和风险报告。
## 概述
本项目是一个基于 Python 的网络安全工具,用于扫描目标系统的常用 TCP 端口,识别开放的服务,根据基础风险规则进行检查,并生成安全报告。
本项目专为在 localhost、私有实验室网络和用户拥有的系统上进行合乎道德且经授权的安全测试而设计。
## 功能
* 扫描常见的 TCP 端口
* 识别相关服务,如 FTP、SSH、HTTP、SMB、MySQL 和 RDP
* 检测开放的端口
* 尝试从开放的服务中抓取基础 banner
* 分配风险严重级别
* 生成安全建议
* 将扫描结果保存为文本报告
* 包含安全验证以防止扫描公共 IP 地址
## 使用的技术
* Python
* Socket 编程
* IP 地址验证
* 文件处理
* 基础的网络安全风险分析
## 扫描的端口
扫描器会检查以下常见端口:
| 端口 | 服务 |
| ---- | ------- |
| 21 | FTP |
| 22 | SSH |
| 23 | Telnet |
| 25 | SMTP |
| 53 | DNS |
| 80 | HTTP |
| 110 | POP3 |
| 139 | NetBIOS |
| 143 | IMAP |
| 443 | HTTPS |
| 445 | SMB |
| 3306 | MySQL |
| 3389 | RDP |
## 工作原理
扫描器使用 Python 的 `socket` 模块尝试与目标系统上的选定端口建立 TCP 连接。
如果连接成功,则该端口被标记为开放。随后,扫描器会尝试从开放的服务中收集基础 banner。之后,会将开放端口与预定义的风险规则进行比较。
最终报告包括:
* 目标 IP 地址
* 扫描时间
* 扫描的端口总数
* 发现的开放端口
* 风险严重性
* Banner 信息
* 安全建议
* 道德使用声明
## 道德使用
本工具仅适用于:
* Localhost 测试
* 私有实验室网络
* 用户拥有的系统
* 经授权的网络安全实践环境
请勿使用此工具扫描公共 IP 地址、大学系统、公司服务器、政府网站或任何您未获得明确许可的系统。
本项目包含目标验证机制,仅允许扫描 localhost 和私有 IP 范围。
## 运行方式
克隆或下载本项目,然后运行:
```
python main.py
```
出现提示时,输入一个安全的目标,例如:
```
127.0.0.1
```
或:
```
localhost
```
## 示例输出
```
Network Port Scanner Report
---------------------------
Target: 127.0.0.1
Scan Time: 2026-06-30 16:56:52.081421
Total Ports Scanned: 13
Open Ports Found: 1
Risks Detected: 1
Ethical Notice: This tool is intended only for authorized systems, localhost, and private lab networks.
Open Ports:
Port 445 (SMB) is OPEN
Banner: Banner not available
Possible Risks:
[HIGH] Port 445 (SMB): SMB should not be exposed unnecessarily.
Recommendations:
- Review Port 445 (SMB) immediately and restrict access if not required.
Report saved as scan_report.txt
```
## 报告文件
每次扫描后,程序都会创建一个报告文件:
```
scan_report.txt
```
此文件包含终端中显示的相同扫描结果,可作为演示用的示例报告。
## 项目结构
```
port-vulnerability-scanner/
│
├── main.py
├── config.py
├── target_validator.py
├── port_scanner.py
├── risk_analyzer.py
├── report_generator.py
├── scan_report.txt
├── requirements.txt
├── LICENSE
├── README.md
└── .gitignore
```
## 学到了什么
通过这个项目,我学习了如何使用 Python sockets 进行基础的网络扫描。我还了解到,如果配置错误或不必要地暴露,开放的服务会如何带来安全风险。
这个项目帮助我理解了:
* TCP 端口扫描
* 服务识别
* Banner 抓取
* 风险分类
* 报告生成
* 网络安全中的道德界限
## 局限性
本项目执行基础的 TCP 端口扫描和基于规则的风险报告。它不执行深度的漏洞测试、漏洞利用验证、身份验证测试或高级服务指纹识别。
风险级别基于预定义的规则和常见的“服务-端口”映射。此工具不能替代专业的漏洞扫描器或全面的安全评估。
## 未来改进
可能的未来改进包括:
* 添加命令行参数
* 以 JSON 或 CSV 格式导出报告
* 添加更多端口和服务
* 改进 banner 分析
* 添加单元测试
* 创建简单的图形界面
* 在用户许可下支持受控的实验室扫描
## 免责声明
本项目仅用于教育和合乎道德的网络安全学习。该工具只能用于已获得明确许可的系统上。
标签:Python, 插件系统, 数据统计, 无后门, 服务器安全, 端口扫描, 网络安全, 逆向工具, 隐私保护