tombastinkjos/network-vulnerability-scanner
GitHub: tombastinkjos/network-vulnerability-scanner
一个基于Python标准库的多线程命令行网络漏洞扫描器,通过TCP端口扫描、banner抓取和CVE数据库匹配来识别目标主机的已知漏洞服务。
Stars: 0 | Forks: 0
# 🔍 网络漏洞扫描器


## 📖 目录
* [概述](#-overview)
* [功能](#-features)
* [工作原理](#-how-it-works)
* [项目结构](#-project-structure)
* [前置条件](#-prerequisites)
* [安装说明](#-installation)
* [用法](#-usage)
* [输出示例](#-example-output)
# 📌 概述
**网络漏洞扫描器**是一个基于 Python 的命令行工具,专为教育性网络安全项目设计。它执行快速的多线程 TCP 端口扫描,从开放端口捕获服务 banner,并将这些 banner 与内置的漏洞数据库进行比较,以识别潜在存在漏洞的软件版本。
该项目演示了几个基本的网络安全概念,包括:
* TCP socket 编程
* 多线程
* Banner 抓取
* 服务指纹识别
* 基础漏洞评估
* 基于 CVE 的软件检测
# ✨ 功能
* ⚡ 使用 `ThreadPoolExecutor` 进行多线程 TCP 端口扫描
* 🔍 检测开放的 TCP 端口
* 📡 对发现的服务执行 banner 抓取
* 🌐 在未收到 banner 时发送 HTTP `HEAD` 请求
* 🛡️ 将服务 banner 与内置 CVE 数据库进行匹配
* 📋 实时显示漏洞警告
* 📦 仅使用 Python 标准库(无外部依赖)
# ⚙️ 工作原理
扫描器遵循四个简单步骤:
### 1. 目标解析
将提供的主机名或 IP 地址解析为 IPv4 地址。
```
scanme.nmap.org
│
▼
45.xx.xx.xx
```
### 2. 端口扫描
线程池(最多 **100 个并发工作线程**)在选定的端口范围内执行 TCP connect 扫描。
```
Target
│
├── Port 22
├── Port 80
├── Port 443
├── Port 8080
└── ...
```
### 3. Banner 抓取
对于每个开放端口:
* 等待传入的服务 banner。
* 如果未收到 banner,则发送 HTTP `HEAD` 请求。
* 捕获响应。
示例:
```
HTTP/1.1 200 OK
Server: Apache/2.4.49
```
### 4. 漏洞匹配
将捕获的 banner 与内置漏洞数据库进行比较。
示例:
```
Apache/2.4.49
↓
Known Match
CVE-2021-41773
```
# 📁 项目结构
```
Network-Vulnerability-Scanner/
│
├── vulnerability_scanner.py
└── README.md
```
# 📋 前置条件
* Python **3.6** 或更高版本
* 无需外部软件包
* 不需要 `pip install`
该项目仅使用 Python 的标准库。
# 🚀 安装说明
克隆代码库:
```
git clone https://github.com/yourusername/network-vulnerability-scanner.git
```
进入项目目录:
```
cd network-vulnerability-scanner
```
运行扫描器:
```
python vulnerability_scanner.py
```
# 💻 用法
## 基础扫描
扫描默认的 TCP 端口 **1–1024**。
```
python vulnerability_scanner.py scanme.nmap.org
```
## 自定义端口范围
扫描前 100 个端口:
```
python vulnerability_scanner.py 192.168.1.1 -p 100
```
## 通用语法
```
python vulnerability_scanner.py [-p max_port]
```
示例:
```
python vulnerability_scanner.py example.com -p 5000
```
标签:Banner抓取, Python, 加密, 实时处理, 密码管理, 插件系统, 数据统计, 无后门, 漏洞扫描器, 端口扫描, 逆向工具