pallab-js/vuln-scanner
GitHub: pallab-js/vuln-scanner
一款适用于 macOS 的离线优先局域网漏洞扫描器,提供设备发现、漏洞映射、合规过滤和结构化报告生成功能。
Stars: 1 | Forks: 0
# LANScanner
适用于 macOS 14+ 的离线优先网络漏洞扫描器。可发现局域网 (LAN) 上的设备,识别其 OS 和服务指纹,根据内置规则签名映射漏洞,并生成结构化报告。
## 功能
- **网络发现** — 基于 ARP 的主机检测,支持 CIDR 子网,自动子网检测
- **端口扫描** — TCP connect + UDP 探测扫描 (swift-nio),banner 抓取,服务版本提取
- **OS 指纹识别** — SSH/HTTP banner 分析 + 基于端口签名的 OS 推断
- **漏洞映射** — 20+ 条离线规则(弱协议、过时版本、弱加密算法、EOL 系统、危险端口),支持 regex 模式匹配
- **合规性过滤** — 规则和检测结果支持 PCI-DSS、HIPAA、GDPR、SOC2、NIST 框架标签
- **自定义规则** — App 内置编辑器,带有 regex 测试器,与内置规则一起持久化存储
- **网络拓扑** — 力导向图可视化 (SpriteKit),节点按风险着色,支持交互式选择
- **资产标签** — 每个设备支持颜色编码标签,侧边栏过滤
- **定时扫描** — App 内置计时器 + launchd 代理用于后台执行
- **REST API** — 可配置端口上的 NIOHTTP1 server(endpoint:`/api/v1/devices`、`/api/v1/scans`、`/api/v1/vulnerabilities`、`/api/v1/export`、`/api/v1/health`、`POST /api/v1/scans`)
- **规则自动更新** — 扫描启动时从签名 URL 获取最新规则,带有规则过期指示器
- **Webhook 告警** — 扫描完成时发送 Slack/Discord webhook
- **报告** — HTML(包含执行摘要、严重程度图表、合规性映射的样式)、CSV、JSON 导出
- **CLI 无头模式** — `--scan --subnet 10.0.0.0/24 --output report.html`
- **扫描历史** — JSON 持久化存储,随时间变化的趋势(漏洞数量、风险评分、热门 CVE)
## 使用说明
```
# 启动 GUI
swift run LANScanner
# Headless 扫描
swift run LANScanner --scan --subnet 192.168.1.0/24 --output report.html
# 计划扫描(需要 launchd agent)
swift run LANScanner --scheduled-scan
```
## 环境要求
- macOS 14+ (Sonoma 或更高版本)
- Swift 6.0+ (Xcode 16+ 或 Command Line Tools)
- Network client + server 权限(用于原始 socket 访问)
## 构建
```
swift build --target App
swift test
```
## 许可证
MIT
标签:RESTful API, Swift, 云存储安全, 提示词优化, 插件系统, 网络扫描, 网络测绘