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, 加密, 插件系统, 数据统计, 无后门, 服务检测, 漏洞扫描器, 端口扫描, 逆向工具