tejasadi13/Automated-Vulnerability-Scanner-for-Network-Devices
GitHub: tejasadi13/Automated-Vulnerability-Scanner-for-Network-Devices
基于 Nmap 和 Node.js 构建的 Web 端网络设备漏洞扫描平台,通过交互式仪表盘实现实时端口与服务扫描、风险评估及报告导出。
Stars: 0 | Forks: 0
# 网络设备自动化漏洞扫描器








这是一个实时的网络安全与网络工程项目,通过交互式仪表盘扫描 IP 地址、主机名、小型子网范围和 Web URL,以识别暴露的端口、运行的服务和基本的安全风险。
## 核心亮点
- 由真正的 `Nmap` 驱动的网络扫描
- 支持 IP、主机名、CIDR 范围和 URL
- 包含设备清单、告警和日志的实时仪表盘
- 基于规则的漏洞发现与严重性评分
- 支持 CSV 报告导出,用于项目文档记录与演示
## 项目概述
本项目是一个基于 Web 的漏洞扫描平台,专为学术研究和实际安全评估而构建。它结合了:
- 由真正的 `Nmap` 驱动的扫描
- 实时主机和端口发现
- 服务与 OS 提示检测
- 基于规则的漏洞分析
- 严重性评分与设备清单
- 扫描历史、告警与 CSV 导出
该系统专为受控的实验室使用、课程演示以及基础的网络暴露评估而设计。
## 核心功能
- 基于登录的仪表盘访问权限
- 支持扫描 IPv4 地址、主机名、小型 CIDR 范围(如 `192.168.1.0/30`)以及完整的 URL(如 `https://example.com`)
- 扫描模式:`Quick Discovery`、`Web Surface` 和 `Deep Inspection`
- 真正的 `Nmap` 集成及重试机制
- 当目标 Nmap 扫描失败时,支持 TCP 回退机制
- 可展开的设备卡片,包含主机名、IP、设备类型、OS 提示、开放端口、服务、发现的问题和风险评分
- 告警与近期扫描历史
- CSV 报告导出
## 技术栈
- `Node.js`
- `Express.js`
- `HTML`
- `CSS`
- `JavaScript`
- `Nmap`
## 演示流程
1. 登录仪表盘。
2. 输入 IP、子网、主机名或 URL。
3. 选择扫描模式。
4. 执行扫描。
5. 查看发现的资产、服务和结果。
6. 将结果导出为 CSV 报告。
## 项目结构
```
realtime-vulnerability-scanner/
|-- public/
| |-- app.js
| |-- index.html
| `-- styles.css
|-- src/
| |-- routes/
| | |-- auth.js
| | |-- health.js
| | `-- scans.js
| |-- services/
| | |-- networkScanner.js
| | `-- scanEngine.js
| `-- server.js
|-- .env
|-- .env.example
|-- .gitignore
|-- package.json
|-- package-lock.json
`-- README.md
```
## 工作原理
1. 用户登录仪表盘。
2. 输入作为 IP、主机名、CIDR 范围或 URL 的目标。
3. 后端验证输入,并根据模式选择扫描行为。
4. `Nmap` 扫描目标并返回服务和主机信息。
5. 后端解析结果并生成安全发现。
6. 前端以设备卡片、告警和报告的形式展示结果。
## 环境要求
- `Node.js`
- `npm`
- 需安装 `Nmap` 以获取完整的扫描功能
- Windows、Linux 或其他能够运行 Node 和 Nmap 的系统
## 环境配置
使用 `.env.example` 创建一个 `.env` 文件。
示例:
```
PORT=5050
APP_NAME=PulseGuard
STREAM_INTERVAL_MS=5000
NMAP_PATH=C:\Program Files (x86)\Nmap\nmap.exe
```
## 运行项目
### 在 Windows 的 VS Code 中
```
npm.cmd install
npm.cmd run dev
```
打开:
`http://127.0.0.1:5050`
### 演示登录
- Email: `admin@pulseguard.local`
- Password: `admin123`
## 包含的界面
- 登录页面
- 仪表盘概览
- 漏洞扫描器
- 设备清单
- 告警和日志
- CSV 报告导出
## 示例测试输入
### 本地主机扫描
- Target: `127.0.0.1`
- Mode: `Quick Discovery`
- Ports: `80,443,5050`
### 局域网扫描
- Target: `192.168.1.0/30`
- Mode: `Quick Discovery`
### 网站扫描
- Target: `https://example.com`
- Mode: `Web Surface`
## API 端点
- `POST /api/auth/login`
- `GET /api/health`
- `GET /api/scans/overview`
- `GET /api/scans/devices`
- `GET /api/scans/events`
- `GET /api/scans/history`
- `POST /api/scans/run`
示例扫描请求:
```
{
"targets": "127.0.0.1",
"ports": "80,443,5050",
"scanMode": "quick"
}
```
## 学术范围
本项目目前包含:
- 由 `Nmap` 驱动的实时主动扫描
- 基于规则的漏洞发现
- 交互式仪表盘报告
- 可导出的 CSV 报告
本项目暂不包含:
- 来自实时漏洞数据库的完整 CVE 关联
- 持久化的数据库扫描存储
- 企业级分布式扫描
- 经过身份验证的深度主机审计
## 未来增强功能
- CVE 和 NVD 关联
- PDF 导出
- 用于扫描记录的持久化数据库
- 邮件或 Webhook 告警
- 高级 Web 应用指纹识别
- 经过身份验证的扫描支持
## 安全提示
仅在你拥有或被明确授权评估的系统、网络和 Web 目标上使用此项目。
## 项目背景
此代码库是作为一项网络安全与网络工程课程项目准备的,主要侧重于实际扫描、暴露分析以及基于仪表盘的报告。
标签:CTI, Express, Facebook API, GNU通用公共许可证, MITM代理, Nmap, Node.js, Ubuntu, 云存储安全, 多模态安全, 密码管理, 插件系统, 数据可视化, 网络安全, 网络扫描, 自定义脚本, 虚拟驱动器, 隐私保护