JumanALH/PortHawk
GitHub: JumanALH/PortHawk
一款基于 Node.js 的轻量级网络端口扫描与安全评估工具,支持服务检测、CVE 漏洞筛查、安全评分和多格式报告导出。
Stars: 0 | Forks: 0
# PortHawk
## 功能特性
- **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



**高级网络端口扫描器、漏洞检测器与安全评估工具**
一款基于 Node.js 构建的网络安全工具,用于扫描网络端口、检测服务、检查已知漏洞、发现网络主机并生成安全报告。
## 截图
标签:Banner抓取, Claude, CVE检测, DNS查询工具, GNU通用公共许可证, MITM代理, Netcat替代, Node.js, Qt框架, TCP连接, 代码生成, 反取证, 后渗透, 安全报告生成, 安全评估, 安全评分, 实时处理, 密码管理, 并发处理, 插件系统, 操作系统识别, 攻击面分析, 无线安全, 服务器安全, 服务识别, 渗透测试工具, 端口扫描器, 网络安全, 自定义脚本, 隐私保护