tejasadi13/Automated-Vulnerability-Scanner-for-Network-Devices

GitHub: tejasadi13/Automated-Vulnerability-Scanner-for-Network-Devices

基于 Nmap 和 Node.js 构建的 Web 端网络设备漏洞扫描平台,通过交互式仪表盘实现实时端口与服务扫描、风险评估及报告导出。

Stars: 0 | Forks: 0

# 网络设备自动化漏洞扫描器 ![Node.js](https://img.shields.io/badge/Node.js-24.x-339933?style=for-the-badge&logo=node.js&logoColor=white) ![Express.js](https://img.shields.io/badge/Express.js-Backend-000000?style=for-the-badge&logo=express&logoColor=white) ![Nmap](https://img.shields.io/badge/Nmap-Scanning-214478?style=for-the-badge) ![JavaScript](https://img.shields.io/badge/JavaScript-ES6+-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black) ![HTML5](https://img.shields.io/badge/HTML5-Frontend-E34F26?style=for-the-badge&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/CSS3-Styling-1572B6?style=for-the-badge&logo=css3&logoColor=white) ![Cybersecurity](https://img.shields.io/badge/Domain-Cybersecurity-0f172a?style=for-the-badge) ![Status](https://img.shields.io/badge/Status-Project%20Ready-22c55e?style=for-the-badge) 这是一个实时的网络安全与网络工程项目,通过交互式仪表盘扫描 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, 云存储安全, 多模态安全, 密码管理, 插件系统, 数据可视化, 网络安全, 网络扫描, 自定义脚本, 虚拟驱动器, 隐私保护