JumanALH/PortHawk

GitHub: JumanALH/PortHawk

一款基于 Node.js 的轻量级网络端口扫描与安全评估工具,支持服务检测、CVE 漏洞筛查、安全评分和多格式报告导出。

Stars: 0 | Forks: 0

# PortHawk
![Version](https://img.shields.io/badge/version-1.0.0-blue) ![Node](https://img.shields.io/badge/node-%3E%3D18-green) ![License](https://img.shields.io/badge/license-MIT-purple) **高级网络端口扫描器、漏洞检测器与安全评估工具** 一款基于 Node.js 构建的网络安全工具,用于扫描网络端口、检测服务、检查已知漏洞、发现网络主机并生成安全报告。
## 截图
PortHawk Dashboard
## 功能特性 - **TCP 端口扫描** - 快速并发扫描,支持可配置的超时和并行度 - **服务检测** - 自动识别服务(SSH、HTTP、FTP、MySQL、Redis 等) - **Banner 抓取** - 捕获软件版本和服务 Banner - **漏洞检测** - 根据服务 Banner 检查已知 CVE - **安全评分** - 根据开放端口和漏洞生成安全等级(A-F) - **操作系统检测** - 通过服务指纹识别目标操作系统 - **网络发现** - 发现本地网络上的活动主机 - **风险评估** - 对每个开放端口进行评级(严重 / 高 / 中 / 低) - **安全建议** - 针对每个检测到的问题提供可操作的建议 - **实时进度** - 通过 Server-Sent Events (SSE) 实时更新 - **导出报告** - 支持下载 JSON、CSV 或 HTML 格式的报告 - **扫描历史** - 保存并查看过往扫描结果 - **暗黑赛博界面** - 专业的深色主题 Web 界面 ## 技术栈 | 组件 | 技术 | |-----------|------------| | 后端 | Node.js, Express.js | | 前端 | HTML5, CSS3, Vanilla JavaScript | | 实时通信 | Server-Sent Events (SSE) | | 扫描 | 原生 `net` 模块 (TCP Connect) | ## 项目结构 ``` PortHawk/ ├── server.js # Express API server + HTML report generator ├── package.json ├── scanner/ │ ├── portScanner.js # Port scanning engine with concurrency │ ├── serviceDetector.js # Service detection & risk assessment │ ├── vulnChecker.js # Vulnerability database & CVE checker │ └── networkDiscovery.js # Subnet scanner & host discovery ├── public/ │ ├── index.html # Web interface │ ├── style.css # Dark cyber theme styles │ └── script.js # Frontend logic, dashboard & SSE client └── results/ # Saved scan results (auto-created) ``` ## 安装 ``` git clone https://github.com/JumanALH/PortHawk.git cd PortHawk npm install ``` ## 使用方法 ``` npm start # 打开 http://localhost:3000 ``` ### 扫描选项 | 选项 | 描述 | |--------|-------------| | **常用端口** | 30 个最常用的服务端口 | | **快速扫描** | 13 个核心端口(最快) | | **前 100** | 前 100 个最常用端口 | | **完整范围** | 端口 1-1024 | | **自定义** | 定义你自己的范围(例如 `80,443,8080` 或 `1-500`) | ## API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/scan` | 启动新扫描 | | `GET` | `/api/scan/:id/stream` | 实时进度的 SSE 流 | | `GET` | `/api/scan/:id` | 获取扫描结果 | | `GET` | `/api/scan/:id/export/json` | 导出结果为 JSON | | `GET` | `/api/scan/:id/export/csv` | 导出结果为 CSV | | `GET` | `/api/scan/:id/export/html` | 导出完整 HTML 安全报告 | | `POST` | `/api/scan/:id/save` | 将结果保存到服务器 | | `GET` | `/api/results` | 列出所有已保存的扫描 | | `GET` | `/api/network/local` | 获取本地网络接口 | | `POST` | `/api/discover` | 发现子网上的主机 | ## 漏洞检测 PortHawk 检查包括以下的已知 CVE: | 服务 | 示例 CVE | |---------|-------------| | SSH | CVE-2016-0777, CVE-2018-15473, CVE-2021-41617 | | HTTP | CVE-2021-44790 (Apache), CVE-2021-23017 (nginx) | | FTP | CVE-2011-2523 (vsftpd 后门), CVE-2019-12815 | | SMTP | CVE-2019-10149 (Exim RCE) | | MySQL | CVE-2012-2122 (验证绕过) | | Redis | CVE-2022-0543 (Lua 沙箱逃逸) | | SMB | CVE-2017-0144 (EternalBlue) | | RDP | CVE-2019-0708 (BlueKeep) | ## 安全评分 | 等级 | 分数 | 含义 | |-------|-------|---------| | **A** | 90-100 | 优秀 - 暴露面极小 | | **B** | 75-89 | 良好 - 风险较低 | | **C** | 60-74 | 一般 - 存在隐患 | | **D** | 40-59 | 较差 - 风险显著 | | **F** | 0-39 | 危急 - 需立即处理 | ## 免责声明 ## 许可证 MIT License
标签:Banner抓取, Claude, CVE检测, DNS查询工具, GNU通用公共许可证, MITM代理, Netcat替代, Node.js, Qt框架, TCP连接, 代码生成, 反取证, 后渗透, 安全报告生成, 安全评估, 安全评分, 实时处理, 密码管理, 并发处理, 插件系统, 操作系统识别, 攻击面分析, 无线安全, 服务器安全, 服务识别, 渗透测试工具, 端口扫描器, 网络安全, 自定义脚本, 隐私保护