18307519324az/ServerScout

GitHub: 18307519324az/ServerScout

基于 Spring Boot 与 React 的服务器资产攻击面管理与风险分析平台,集成 Nmap 与 Nuclei 实现从资产发现到漏洞检测、可视化与报告导出的全流程。

Stars: 0 | Forks: 0

# ServerScout 服务器资产攻击面管理与风险分析平台 ## 项目简介 ServerScout 是一个基于 Spring Boot、React、Nmap 与 Nuclei 构建的服务器资产攻击面管理与风险分析平台,围绕资产发现、端口与服务识别、漏洞检测、威胁情报查询、攻击面拓扑可视化、风险报告导出与 AI 风险简报生成等场景展开,帮助使用者将分散的扫描结果整理为可分析、可追踪、可展示的安全风险视图。 ## 项目定位 - 这是一个面向安全分析与资产治理场景的个人独立工程项目。 - 项目适合用于毕业设计展示、Java 全栈项目作品集和前后端分离实践说明。 - 项目重点展示扫描工具集成、风险数据聚合、权限认证、可视化分析与文档工程化能力。 ## 核心功能 - 资产发现与资产台账管理 - 端口扫描与服务识别 - 漏洞检测与风险分级 - Web 指纹识别 - 蜜罐识别 - 威胁情报查询 - 攻击面拓扑可视化 - 扫描任务管理与实时进度追踪 - PDF / Excel 风险报告导出 - AI 风险简报生成 - 用户认证、权限控制与操作日志记录 ## 项目亮点 - 采用前后端分离架构,后端负责扫描编排、数据聚合与报告生成,前端负责风险可视化与交互分析。 - 集成 Nmap 完成端口与服务探测,并将结果沉淀为资产画像。 - 集成 Nuclei 完成漏洞模板检测,支持漏洞归档、分级与详情展示。 - 结合 CVE、CVSS、EPSS 等信息辅助风险研判。 - 使用 ECharts、G6、D3.js 展示资产拓扑和攻击面关系。 - 提供 PDF / Excel 报告导出能力,便于结果汇报与项目验收。 - 支持 AI 风险简报,将技术扫描结果转换为更易阅读的风险摘要。 - 后端具备统一异常处理、统一响应结构与 JWT 认证机制。 - 提供 Docker Compose 启动方式,便于快速搭建基础运行环境。 ## 系统架构 flowchart LR A["用户浏览器"] --> B["React 前端"] B --> C["Spring Boot 后端"] C --> D["MySQL 数据库"] C --> E["Nmap 扫描引擎"] C --> F["Nuclei 漏洞检测引擎"] C --> G["外部情报接口"] C --> H["报告导出模块"] C --> I["AI 风险简报模块"] ## 技术栈 | 层级 | 技术 | | --- | --- | | 前端 | React 18、TypeScript、Vite、Tailwind CSS、Ant Design、ECharts、G6、D3.js | | 后端 | Java 17、Spring Boot 3、Spring Security、JWT、JPA / Hibernate | | 数据库 | MySQL 8.0、Redis | | 扫描工具 | Nmap、Nuclei | | 报告导出 | PDF、Excel | | AI 能力 | OpenAI 兼容接口、本地规则分析兜底 | | 部署 | Docker、Docker Compose、Shell | ## 扫描流程 创建扫描任务 -> 校验目标资产 -> 调用 Nmap 执行端口与服务探测 -> 调用 Nuclei 执行漏洞检测 -> 解析扫描结果 -> 存储资产、端口、服务、漏洞和风险数据 -> 前端展示资产拓扑与风险列表 -> 导出 PDF / Excel 报告 -> 生成 AI 风险简报 ## 仓库结构 . ├── backend/ # Spring Boot 后端服务 ├── frontend/ # React 前端项目 ├── docs/ # 中文项目文档 ├── prototype/ # 原型页面与演示资源 ├── .github/ # CI 工作流 ├── docker-compose.yml # 容器编排配置 ├── Dockerfile # 镜像构建配置 ├── deploy.sh # 部署辅助脚本 ├── serverscout-init.sql # 数据库初始化脚本 ├── .env.example # 环境变量示例 ├── .gitignore # Git 忽略规则 └── README.md # 仓库首页说明 ## 快速启动 ### 环境要求 - Java 17+ - Maven 3.9+ - Node.js 18+ - MySQL 8.0+ - 可选:Redis、Nmap、Nuclei ### 数据库初始化 mysql -u root -p < serverscout-init.sql ### 启动后端 cd backend mvn spring-boot:run -Dspring-boot.run.profiles=dev 默认地址: - API:`http://localhost:8080` - Swagger / OpenAPI:`http://localhost:8080/docs` ### 启动前端 cd frontend npm install npm run dev 默认地址: - 前端页面:`http://localhost:5173` - AI 风险简报:`http://localhost:5173/ai-briefing` ### 使用 Docker Compose 启动 docker-compose up -d --build ### 常见提示 - 若未安装 Nmap 或 Nuclei,扫描功能无法执行,但前后端基础页面仍可启动。 - 若需导出包含中文内容的 PDF,请确认系统已安装可用的中文字体,并正确配置 `PDF_FONT_PATH`。 - 首次运行前请根据 `.env.example` 或应用配置调整数据库与 JWT 相关环境变量。 ## 环境变量 | 变量名 | 说明 | | --- | --- | | `SERVER_PORT` | 后端服务端口 | | `SPRING_DATASOURCE_URL` | MySQL 连接地址 | | `SPRING_DATASOURCE_USERNAME` | 数据库用户名 | | `SPRING_DATASOURCE_PASSWORD` | 数据库密码 | | `JWT_SECRET` | JWT 签名密钥 | | `NMAP_PATH` | Nmap 可执行文件路径 | | `NUCLEI_PATH` | Nuclei 可执行文件路径 | | `AI_BASE_URL` | AI 接口地址 | | `AI_API_KEY` | AI 接口密钥 | | `PDF_FONT_PATH` | PDF 中文字体路径 | ## 文档导航 - [项目介绍](docs/项目介绍.md) - [技术架构](docs/技术架构.md) - [本地启动](docs/本地启动.md) - [功能清单](docs/功能清单.md) - [部署说明](docs/部署说明.md) - [接口说明](docs/接口说明.md) - [测试与验收](docs/测试与验收.md) - [面试讲解](docs/面试讲解.md) ## 安全声明 本项目仅用于授权资产的安全检测、学习研究和毕业设计展示。使用 Nmap、Nuclei 等工具前,请确认目标资产归属明确并已获得授权。严禁将本项目用于未授权扫描、攻击、入侵或破坏第三方系统。 ## 后续规划 - 完善更多扫描模板与插件化能力 - 增加更细粒度的任务调度和权限控制 - 补充更完整的审计、告警与报表能力 - 优化 AI 风险简报的上下文提取与结构化输出质量 ## 作者 作者:18307519324az GitHub:https://github.com/18307519324az
标签:CTI, Google, Nmap, Nuclei, React, Spring Boot, Syscalls, 域名枚举, 实时处理, 密码管理, 插件系统, 搜索引擎查询, 版权保护, 虚拟驱动器, 请求拦截