Pulsar 网络足迹扫描平台技术分析
一、项目概述
1. 项目背景
A. 项目简介
Pulsar 是一个自动化的网络足迹扫描平台,专为红队、渗透测试人员和漏洞赏金猎人设计。该平台专注于发现组织的公开资产,即使在对其基础设施了解最少的情况下也能有效运行。
B. 核心特点
- 100% 免费,无需任何 API 密钥
- 提供网络数据可视化功能
- 基础漏洞评分系统
- 可用作自定义漏洞扫描器
- 适用于广泛且未知的扫描范围
C. 项目状态
项目已于 2022 年 5 月 24 日被作者归档,仅进行安全补丁和修复。作者表示由于社区支持不足和关注度低,不再继续开发该项目。
2. 目标用户
- 红队成员
- 渗透测试人员
- 漏洞赏金猎人
- 安全研究人员
二、技术架构
1. 技术栈
A. 前端技术
- Vue.js 2.6.11:前端框架
- JavaScript:主要编程语言(占比 47.5%)
- CSS:样式表(占比 27.3%)
B. 后端技术
- Django 3.2.12:Web 框架
- Django Rest Framework:API 框架
- Python 15.0%:后端逻辑
- Nginx:反向代理服务器
- Gunicorn:WSGI HTTP 服务器
C. 容器化部署
- Docker:容器化平台
- Docker Compose:容器编排
- 基于多容器架构的 PaaS 平台
2. 系统架构
graph TB
Client[客户端浏览器] -->|HTTPS| Nginx[Nginx 反向代理]
Nginx -->|WSGI| Gunicorn[Gunicorn 应用服务器]
Gunicorn -->|WSGI| Django[Django REST Framework]
Django -->|读写| PostgreSQL[(PostgreSQL 数据库)]
Django -->|存储| Redis[(Redis 缓存)]
Django -->|队列| Celery[Celery 任务队列]
subgraph 扫描引擎
Amass[OWASP Amass]
ZMap[ZMap]
Nmap[Nmap]
CloudEnum[CloudEnum]
SSHAudit[SSH Audit]
WhatWeb[WhatWeb]
end
Celery -->|调用| Amass
Celery -->|调用| ZMap
Celery -->|调用| Nmap
Celery -->|调用| CloudEnum
Celery -->|调用| SSHAudit
Celery -->|调用| WhatWeb
Django -->|查询| RIPEstat[RIPEstat API]
Django -->|查询| NVD[NVD 数据馈送]3. 组件说明
A. Web 服务层
- Nginx:处理 HTTPS 连接,静态文件服务,反向代理
- Gunicorn:管理 Django 应用进程,处理并发请求
- Django:提供 REST API,用户认证,任务调度
B. 数据存储层
- PostgreSQL:持久化存储扫描结果、用户数据、配置信息
- Redis:缓存频繁访问的数据,任务队列代理
C. 任务队列层
- Celery:异步任务处理,扫描任务调度
- 支持定时任务和后台任务执行
D. 扫描引擎层
- 集成多个开源扫描工具
- 通过统一的接口调用各类扫描器
- 支持自定义扫描器扩展
三、核心功能
1. 资产发现功能
A. 子域名发现
使用 OWASP Amass 进行子域名枚举:
- 被动信息收集
- 主动DNS 枚举
- 证书透明度日志查询
- 搜索引擎爬取
B. 顶级域名发现
- 跨 TLD 资产识别
- 新注册域名检测
- 域名变体发现
C. 云资源发现
集成 CloudEnum 工具:
- AWS 资源发现
- Azure 资源发现
- GCP 资源发现
- 存储桶识别
- 云虚拟机发现
2. 漏洞扫描功能
A. 基础漏洞扫描
- 端口扫描(ZMap)
- 服务指纹识别(Nmap)
- Web 技术栈识别(WhatWeb)
- SSH 配置审计(SSH Audit)
B. 漏洞评分系统
- 基础漏洞严重程度评分
- 资产关联性分析
- 弱点识别与优先级排序
C. NVD 数据集成
- 实时漏洞数据库查询
- CVE 信息匹配
- 漏洞影响评估
3. 数据可视化功能
A. 网络拓扑图
- 资产关系可视化
- 攻击面展示
- 依赖关系图
B. 扫描结果展示
- 仪表板视图
- 扫描进度追踪
- 历史数据对比
4. 协作与导出功能
A. 多用户协作
- 基于 OAuth 的认证
- 角色权限管理
- 团队共享空间
B. 数据导出
- 支持多种格式导出
- REST API 访问
- 批量数据导出
5. 任务调度与通知
A. 定时扫描
- 周期性任务调度
- 自定义扫描策略
- 扫描策略优化
B. 通知系统
- 邮件通知
- 扫描完成提醒
- 异常情况告警
四、集成工具分析
1. OWASP Amass
功能:子域名枚举工具
特点:
- 多种数据源集成
- 高度可配置
- 支持被动和主动枚举
- 社区活跃维护
2. ZMap
功能:高速网络扫描器
特点:
- 单台机器可扫描整个互联网
- 适用于大规模端口扫描
- 低调的网络负载
3. Nmap
功能:网络探测和安全审计
特点:
- 功能强大的端口扫描器
- 服务版本检测
- 操作系统指纹识别
4. RIPEstat API
功能:网络数据分析
特点:
- 提供丰富的网络数据
- IP 地址信息查询
- 路由前缀信息
5. CloudEnum
功能:云资源枚举
特点:
- 跨云平台支持
- 无需 API 密钥
- 被动信息收集
6. SSH Audit
功能:SSH 服务器审计
特点:
- SSH 配置安全检查
- 密钥交换算法分析
- 加密强度评估
7. WhatWeb
功能:Web 技术栈识别
特点:
- 超过 1700 个插件
- 版本识别
- 快速扫描
8. NVD 数据馈送
功能:国家漏洞数据库
特点:
- 实时 CVE 信息
- CVSS 评分
- 漏洞详细描述
五、部署架构
1. Docker 容器结构
graph LR
subgraph 前端层
Nginx[Nginx 容器]
end
subgraph 应用层
Web[Web 应用容器]
Worker[Celery Worker 容器]
Beat[Celery Beat 容器]
end
subgraph 数据层
PostgreSQL[(PostgreSQL 容器)]
Redis[(Redis 容器)]
end
Nginx --> Web
Web --> PostgreSQL
Web --> Redis
Worker --> PostgreSQL
Worker --> Redis
Beat --> Redis2. 存储卷结构
- db_storage:PostgreSQL 数据持久化
- queue_storage:Redis 数据持久化
- secrets_storage:敏感信息存储
- sandbox_storage:沙箱环境存储
3. 网络配置
- 默认 HTTPS 端口:8443
- 容器间通信:Docker 内部网络
- 支持云端环境部署
六、安装部署
1. 系统要求
A. 硬件要求
- CPU:建议 4 核心以上
- 内存:建议 8GB 以上
- 存储:建议 50GB 以上
B. 软件要求
- 操作系统:Linux 或 Windows
- Docker:最新版本
- Docker Compose:最新版本
- Git:版本控制工具
2. 安装步骤
A. Linux 安装
# 克隆仓库
git clone https://github.com/FooBallZ/pulsar
# 运行安装脚本
./install.sh
# 访问控制台
https://localhost:8443/B. Windows 安装
# 克隆仓库
git clone https://github.com/FooBallZ/pulsar
# 运行安装脚本
.\install.ps1
# 访问控制台
https://localhost:8443/3. 配置说明
A. 邮件通知配置
在 portal/portal/settings.py 中配置 EMAIL_BACKEND 设置
B. 外部 API 配置
参考 USAGE.md 文档配置外部 API 集成
七、REST API 接口
1. API 端点
- 基础路径:/pulsar/api/v1/
- 认证方式:OAuth
- 数据格式:JSON
2. 主要接口
A. 扫描任务管理
- 创建扫描任务
- 查询任务状态
- 获取扫描结果
B. 资产管理
- 添加资产
- 查询资产列表
- 更新资产信息
C. 报告生成
- 生成扫描报告
- 导出数据
- 统计分析
3. API 文档
- 自动生成的 API 文档:/pulsar/api/v1/
- 开发文档:/admin/doc/
八、项目现状与挑战
1. 项目归档原因
A. 社区支持不足
- 缺乏活跃贡献者
- 用户反馈有限
- 社区生态不完善
B. 维护成本高
- 多技术栈维护复杂
- 安全更新工作量大
- 功能扩展困难
2. 技术挑战
A. 性能优化
- 大规模扫描性能瓶颈
- 数据库查询优化
- 任务队列调度优化
B. 安全性
- 扫描活动的法律合规性
- 用户权限管理
- 敏感数据保护
C. 可扩展性
- 支持更多扫描工具集成
- 插件系统完善
- 分布式扫描支持
九、技术特点总结
1. 优势
A. 开箱即用
- Docker 容器化部署
- 一键安装脚本
- 预配置的扫描工具
B. 功能全面
- 覆盖资产发现全流程
- 集成多个开源工具
- 可视化分析能力
C. 开放性
- 100% 免费开源
- 无需 API 密钥
- 支持自定义扩展
2. 局限性
A. 性能限制
- 单机部署架构
- 扫描速度有限
- 大规模任务处理能力弱
B. 功能深度
- 基础漏洞扫描为主
- 不支持高级漏洞利用
- 缺少 AI 辅助分析
C. 维护状态
- 项目已归档
- 仅安全补丁更新
- 长期维护不确定性
十、应用场景
1. 红队演练
- 目标组织资产发现
- 攻击面分析
- 漏洞优先级排序
2. 渗透测试
- 信息收集阶段
- 资产盘点
- 安全基线检查
3. 漏洞赏金
- 大范围资产发现
- 持续监控
- 自动化初筛
4. 安全监控
- 资产变更监控
- 新资产发现
- 定期安全评估
十一、法律合规提示
1. 法律风险
- 端口扫描在某些国家可能违法
- 未经授权的扫描可能构成犯罪
- 需确保获得目标资源授权
2. 合规建议
- 仅在授权范围内使用
- 遵守当地法律法规
- 做好使用记录和审计
十二、替代方案
1. 商业产品
- 被动资产发现平台
- 攻击面管理(ASM)工具
- 漏洞管理平台
2. 开源替代
- Subfinder + Naabu:子域名和端口发现
- Recon-ng:信息收集框架
- Assetnote:持续安全监控
3. 自建方案
- 基于开源工具组合
- 定制化扫描流程
- 集成内部工作流