Muhtasim19/network-vulnerability-scanner
GitHub: Muhtasim19/network-vulnerability-scanner
一个基于 Python 命令行的网络漏洞扫描器,面向教育场景,通过端口扫描与服务检测结合本地漏洞数据库生成安全报告。
Stars: 0 | Forks: 0
# 网络漏洞扫描器
一个基于 Python 的命令行漏洞扫描器,专为 IT/网络安全项目构建。
该工具会扫描已授权的目标,检查常用端口,检测服务,尝试进行基础的 Banner Grabbing,将检测到的产品/版本信息与本地演示漏洞数据库进行比对,并生成易读的安全报告。
## 重要安全提示
本项目仅用于教育和授权测试。
仅限扫描:
- 您自己的计算机
- 您自己的本地网络
- 您获得明确测试权限的系统
未经许可,请勿扫描公共网站、学校系统、公司网络或他人的设备。
## 项目概述
扫描器遵循以下工作流程:
用户输入目标
↓
扫描器验证目标
↓
扫描器检查常用端口
↓
检测开放的服务
↓
尝试通过 Banner Grabbing 识别产品/版本
↓
漏洞查询检查本地演示记录
↓
报告生成器打印并保存结果
## 功能
* 命令行界面
* IP 地址与主机名验证
* 常用端口扫描
* 服务检测
* 基础 Banner Grabbing
* 产品与版本提取
* 本地演示漏洞查询
* 严重性摘要
* 终端报告生成
* 文本报告导出
* 针对目标验证的单元测试
## 项目结构
network-vulnerability-scanner/
│
├── main.py
├── README.md
├── requirements.txt
├── .gitignore
│
├── scanner/
│ ├── __init__.py
│ ├── port_scanner.py
│ ├── service_detection.py
│ └── banner_grabber.py
│
├── analyzer/
│ ├── __init__.py
│ ├── vulnerability_lookup.py
│ ├── severity.py
│ └── report_generator.py
│
├── docs/
│ └── scanner_contract.md
│
├── reports/
│
├── tests/
│ ├── __init__.py
│ └── test_target_validation.py
│
└── utils/
├── __init__.py
└── helpers.py
## 环境要求
* 推荐 Python 3.13
* Git
* VS Code 或其他代码编辑器
当前版本使用 Python 标准库模块,因此核心版本不需要额外的 Python 包。
## 安装说明
克隆仓库:
```
git clone https://github.com/Muhtasim19/network-vulnerability-scanner.git
cd network-vulnerability-scanner
```
创建虚拟环境:
```
python3.13 -m venv .venv
```
在 macOS/Linux 上激活虚拟环境:
```
source .venv/bin/activate
```
检查 Python 版本:
```
python --version
```
预期输出:
```
Python 3.13.x
```
## 如何运行扫描器
运行主程序:
```
python main.py
```
示例提示:
```
============================================================
NETWORK VULNERABILITY SCANNER
============================================================
Use this tool only on systems you own or have permission to test.
Enter an IP address or hostname, or type 'quit' to exit:
```
安全的测试目标:
```
127.0.0.1
localhost
```
## 示例输出
```
NETWORK VULNERABILITY SCAN REPORT
============================================================
Target: localhost
Generated: 2026-07-09 20:25:58
Total findings: 0
SEVERITY SUMMARY
------------------------------------------------------------
Critical: 0
High: 0
Medium: 0
Low: 0
FINDINGS
------------------------------------------------------------
No vulnerabilities were found in the local demonstration data.
Important: Verify every finding before taking action.
Use this scanner only on systems you own or have permission to test.
```
报告将作为文本文件保存在 `reports/` 文件夹中。
## 如何直接运行扫描器模块
如果仅想测试端口扫描器:
```
python -m scanner.port_scanner
```
然后输入一个安全的目标:
```
127.0.0.1
```
## 如何运行漏洞查询演示
```
python -m analyzer.vulnerability_lookup
```
## 如何运行报告生成器演示
```
python -m analyzer.report_generator
```
## 如何运行测试
运行所有测试:
```
python -m unittest discover -s tests -v
```
预期结果:
```
Ran 6 tests
OK
```
## 使用的 Git 工作流
本项目使用了基于分支的 Git 工作流:
```
feature branches
↓
develop
↓
main
```
主分支:
```
main = stable production branch
develop = testing/integration branch
```
功能和集成分支包括:
```
feature/ui-cli
feature/vulnerability-lookup
feature/report-generator
feature/port-scanner
feature/service-detection
feature/banner-grabbing
feature/integration-prep
integration/connect-scanner
```
## 扫描器输出格式
扫描器以以下格式返回数据:
```
{
"target": "localhost",
"ip": "127.0.0.1",
"ports": [
{
"port": 80,
"state": "open",
"service": "HTTP",
"product": "Apache",
"version": "2.4.49"
}
]
}
```
此输出将被传递到漏洞分析模块中。
## 当前局限性
* 使用本地演示漏洞数据库
* 尚未连接到实时的 CVE 或 NVD API
* 默认仅扫描有限的常用端口列表
* Banner Grabbing 可能无法识别所有服务
* 当前版本没有图形用户界面
## 未来改进
未来可能的升级:
* 添加 GUI 仪表板
* 添加 HTML 或 PDF 报告
* 连接到真实的漏洞数据库 API
* 添加扫描历史记录
* 添加严重性图表
* 在主 CLI 中添加自定义端口范围支持
* 改进服务/版本检测
* 添加 CSV 报告导出
## 教育目的
本项目演示了:
* Python 编程
* 网络基础知识
* TCP 端口扫描
* 服务检测
* 网络安全风险分析
* 报告生成
* Git/GitHub 协作
* 单元测试
* 团队软件开发
## 许可证
本项目仅用于教育用途。
标签:Banner抓取, Python, 加密, 插件系统, 数据统计, 无后门, 服务检测, 漏洞扫描器, 端口扫描, 逆向工具