工具概述
Moon-Gazing-Tower(望月塔)是一款现代化的自动化安全扫描平台,旨在为安全从业者及企业安全团队提供集成度高、易于部署的一站式安全检测解决方案。该平台基于 Go 1.24 与 React 18 技术栈构建,采用 MongoDB 存储核心数据,并支持 Redis 作为任务队列,有效解决了传统扫描工具配置复杂、功能分散等痛点。
平台功能主要围绕五大核心模块展开:资产、任务、漏洞、扫描与情报。

核心功能简介
资产管理
- 多种资产类型:支持对域名、IP、URL、服务等资产进行统一纳管。
- 分组与标签:提供资产分组管理及灵活的标签系统,便于分类与检索。
- 批量操作:支持资产的批量导入与导出。


任务管理
- 灵活的目标输入:支持直接输入IP、域名、URL、CIDR等目标格式。
- 多样化的扫描类型:涵盖子域名枚举、端口扫描、漏洞扫描、指纹识别等。
- 任务调度与跟踪:提供任务调度能力,并可实时跟踪任务状态。
- 实时结果推送:扫描结果可通过WebSocket等方式进行实时推送。


漏洞管理
- 可视化仪表盘:提供漏洞统计概览,展示严重程度分布(严重/高危/中危/低危/信息)。
- 全生命周期管理:支持对漏洞状态(待处理/已确认/已修复/已忽略/误报)进行跟踪管理。
- 漏洞验证与批量操作:内置漏洞验证功能,并支持批量处理。


扫描能力集成
- 子域名枚举:集成
ksubdomain 工具。
- 端口扫描:集成
gogo 工具。
- Web资产探测:集成
katana、rad 作为爬虫。
- 漏洞扫描:集成
Nuclei CLI,具备强大的POC检测能力。
- 指纹识别:内置丰富的Web应用指纹库。
- 辅助功能:支持CDN节点识别与子域名接管风险检测。

第三方情报集成
平台支持从主流网络空间测绘引擎同步资产数据,目前集成的平台包括:
- FOFA
- Hunter
- Quake
- SecurityTrails
- Crt.sh

其他功能
- 页面监控:对指定Web页面进行持续性监控。
- 通知提醒:支持邮件通知。
- 实时通信:基于WebSocket实现扫描结果的实时推送。
- 身份认证:采用JWT进行用户认证与授权。

快速部署指南
使用 Docker Compose 部署(推荐)
这是最快速启动整个平台的方式。
# 克隆项目仓库
git clone https://github.com/SantaVp3/Moon-Gazing-Tower.git
cd Moon-Gazing-Tower
# 使用 Docker Compose 启动所有服务
docker-compose up -d
# 查看服务日志
docker-compose logs -f
服务启动后,可以通过以下地址访问:
- 前端界面:
http://localhost
- 后端API:
http://localhost:8080
- 默认账号:
admin / admin123
本地开发环境搭建
如果你需要参与开发或进行定制,可以按照以下步骤搭建本地环境。
后端服务启动:
cd backend
# 安装Go模块依赖
go mod download
# 使用Docker快速启动依赖的中间件服务,这是现代[云原生](https://yunpan.plus/f/47-1)开发和测试的常见做法
docker run -d --name mongodb -p 27017:27017 mongo:6.0
docker run -d --name redis -p 6379:6379 redis:7-alpine
# 运行后端程序
go run main.go
前端服务启动:
cd frontend
# 安装Node.js依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产环境包
npm run build
项目结构说明
Moon-Gazing-Tower/
├── backend/ # 后端服务目录
│ ├── api/ # HTTP请求处理器
│ ├── config/ # 配置管理
│ │ └── dicts/ # 静态字典数据
│ ├── database/ # 数据库连接层
│ ├── middleware/ # 中间件(如JWT验证)
│ ├── models/ # 数据模型定义
│ ├── router/ # 路由定义
│ ├── scanner/ # 核心扫描引擎模块
│ │ ├── portscan/ # 端口扫描 (集成GoGo)
│ │ ├── subdomain/ # 子域名扫描 (集成ksubdomain)
│ │ ├── fingerprint/ # Web应用指纹识别
│ │ ├── webscan/ # Web扫描 (集成Katana, 敏感信息探测)
│ │ └── vulnscan/ # 漏洞扫描 (集成Nuclei)
│ ├── service/ # 业务逻辑层
│ │ └── pipeline/ # 扫描任务流水线调度
│ ├── tools/ # 集成的第三方二进制工具
│ │ ├── darwin/ # macOS版本
│ │ └── linux/ # Linux版本
│ └── utils/ # 通用工具函数
├── frontend/ # 前端项目目录
│ └── src/
│ ├── api/ # 前端API请求封装
│ ├── components/ # 可复用Vue组件
│ ├── pages/ # 页面组件
│ └── store/ # 状态管理 (Pinia)
└── docker-compose.yml # 容器化编排配置文件
基础配置详解
后端主配置文件 (config/config.yaml)
server:
port: 8080 # 服务监听端口
mode: debug # 运行模式
mongodb:
uri: mongodb://localhost:27017 # MongoDB连接字符串
database: moongazing # 使用的数据库名
redis:
addr: localhost:6379 # Redis服务器地址
password: "" # Redis密码(若无则留空)
db: 0 # Redis数据库编号
jwt:
secret: your-jwt-secret # JWT令牌签名密钥,生产环境务必修改
expire: 24h # Token过期时间
关键环境变量
您也可以通过环境变量覆盖上述配置:
| 变量名 |
默认值 |
说明 |
SERVER_PORT |
8080 |
后端服务端口 |
MONGODB_URI |
mongodb://localhost:27017 |
MongoDB连接地址 |
REDIS_ADDR |
localhost:6379 |
Redis服务器地址 |
JWT_SECRET |
- |
JWT签名密钥,必须设置 |
结语
Moon-Gazing-Tower 通过聚合多种优秀的开源扫描工具,并提供了统一的资产、任务与漏洞管理界面,显著降低了自动化安全扫描与渗透测试的入门与操作门槛。其模块化设计和清晰的代码结构也便于开发者进行二次功能扩展与集成,适合安全团队用于内部常态化安全监测。
|