SkillAgentSearch skills...

NeoScan

NeoScan 是一个综合性自动扫描信息收集系统,采用分布式架构设计,支持多种扫描类型和智能任务调度,主要用于网络安全评估、资产发现和漏洞检测。

Install / Use

/learn @sun977/NeoScan
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

NeoScan

NeoScan 是一个综合性自动扫描信息收集系统,采用分布式架构设计,支持多种扫描类型和智能任务调度,主要用于网络安全评估、资产发现和漏洞检测。

项目架构

核心特性

  • 分布式架构: Master-Agent 架构,支持多节点协同工作
  • Thin Agent 架构: 采用 "瘦客户端" 模式,Agent 无状态,Master 统一编排
  • HTTP/WebSocket 通信: 全面采用标准 HTTP 协议,摒弃复杂的 gRPC,降低运维成本
  • 智能调度: Master 负责全生命周期管理,支持复杂的 ScanStage 调度循环
  • 多模块扫描: 资产扫描、Web扫描、POC漏洞扫描、目录扫描、域名扫描、弱口令扫描、代理扫描
  • 插件系统: 支持热插拔的插件架构,内置Shell、文件、监控插件
  • 实时监控: WebSocket实时通信,任务状态实时监控
  • 安全机制: JWT + RBAC认证,TLS加密通信,插件沙箱执行

技术栈

  • 后端技术: Go 1.25+, Gin (HTTP), MySQL 8.0+, SQLite, Redis 6.0+, RabbitMQ 3.8+
  • 前端技术: Vue.js 3 + Element Plus
  • 部署技术: Docker + Docker Compose, Nginx

目录结构

NeoScan/
├── neoMaster/              # Master节点
│   ├── cmd/               # 应用入口
│   ├── internal/          # 内部代码
│   ├── web/               # 前端代码
│   ├── configs/           # 配置文件
│   └── ...                # 其他目录
├── neoAgent/               # Agent节点
│   ├── cmd/               # 应用入口
│   ├── internal/          # 内部代码
│   ├── tools/             # 扫描工具
│   └── ...                # 其他目录
└── sdds/                  # 系统设计文档

核心功能

Master节点功能 (Brain)

  1. 工作流编排: 基于 DAG 的多阶段扫描任务调度 (Stage Scheduling)
  2. 任务管理: 原子任务 (ScanStage) 的生成、分发、回收
  3. 数据清洗: 负责将 Agent 返回的原始数据转换为标准资产
  4. 节点管理: Agent 节点注册、状态监控、配置推送
  5. 资产管理: 资产发现、同步、清单管理、导入导出
  6. 监控预警: 漏洞监控、GitHub爬取、告警通知
  7. 插件管理: 插件安装、远程控制、安全执行
  8. 用户管理: 用户认证、权限控制、审计日志
  9. 报告管理: 报告生成、模板管理、数据导出
  10. 通知系统: 蓝信、SEC、邮件、Webhook通知

Master节点详细能力

核心架构特性

  • 分层架构: Handler → Service → Repository → Database
  • RESTful API: 标准HTTP接口,易于集成
  • 智能调度: 支持DAG工作流、定时任务、实时调度
  • 策略执行: 白名单、作用域、跳过条件等多层策略
  • ETL处理: 提取、转换、加载扫描结果
  • 指纹识别: 多引擎并发识别服务指纹
  • 标签系统: 灵活的标签管理和自动打标签

Agent管理能力 ✅ 已完成

核心能力:

  • Agent注册与认证: 支持自动注册和手动预配置两种模式
  • 心跳维持: 接收Agent心跳,更新系统指标和任务状态
  • 任务分发: 支持Pull模式,Agent主动拉取任务
  • 结果接收: 接收Agent上报的扫描结果
  • 状态管理: 管理Agent的在线、离线、维护等状态
  • 标签管理: 支持为Agent添加/移除标签
  • 任务支持管理: 管理Agent支持的任务类型
  • 性能监控: 监控Agent的CPU、内存、磁盘等指标

注册流程:

  1. 自动注册模式(推荐批量部署):

    • Agent使用全局注册密钥向Master注册
    • Master验证密钥后生成专属Token和AgentID
    • Agent保存Token用于后续通信
  2. 手动预配置模式(高安全环境):

    • 管理员在Master端预先生成Token
    • Agent配置文件中直接使用该Token
    • 跳过注册步骤,直接通信

Agent注册参数:

  • hostname: 主机名(必填)
  • ip_address: IP地址(必填)
  • port: 监听端口(必填)
  • version: Agent版本(必填)
  • os: 操作系统类型(必填)
  • arch: 系统架构(必填)
  • cpu_cores: CPU核心数(必填)
  • memory_total: 总内存(必填)
  • disk_total: 总磁盘空间(必填)
  • task_support: 支持的任务类型列表(必填)
  • token_secret: 注册密钥(可选,自动注册模式)
  • token: 认证Token(可选,手动预配置模式)

心跳参数:

  • agent_id: Agent ID(必填)
  • cpu_usage: CPU使用率(百分比)
  • memory_usage: 内存使用率(百分比)
  • disk_usage: 磁盘使用率(百分比)
  • network_sent: 发送字节数
  • network_recv: 接收字节数
  • running_tasks: 运行中任务数
  • completed_tasks: 已完成任务数
  • failed_tasks: 失败任务数
  • work_status: 工作状态(idle/working/exception)
  • scan_type: 当前执行的扫描类型

编排器能力 ✅ 已完成

核心能力:

  • 工作流管理: 创建、查询、更新、删除工作流
  • 扫描阶段管理: 管理工作流中的各个扫描阶段
  • 项目管理: 管理扫描项目及其配置
  • 调度引擎: 定时触发扫描项目,监控项目状态
  • 任务生成器: 根据阶段配置生成可执行任务
  • 任务分发器: 将任务分配给合适的Agent
  • 结果摄入器: 接收并处理Agent上报的扫描结果
  • 策略执行器: 检查任务是否符合策略(白名单、作用域、跳过条件)
  • 资源分配器: 检查Agent能力和负载,进行资源调度

工作流参数:

  • name: 工作流名称(必填)
  • description: 工作流描述
  • stages: 扫描阶段列表(支持DAG依赖关系)

扫描阶段参数:

  • workflow_id: 所属工作流ID(必填)
  • name: 阶段名称(必填)
  • scan_tool: 扫描工具类型(必填)
  • tool_template: 工具模板配置
  • target_policy: 目标策略配置
    • target_sources: 目标来源(file/db/view/sql/manual/api/previous_stage)
    • whitelist_enabled: 是否启用白名单
    • whitelist_sources: 白名单来源
    • skip_enabled: 是否启用跳过条件
    • skip_conditions: 跳过条件列表
  • predecessors: 前置阶段ID列表

项目参数:

  • name: 项目名称(必填)
  • description: 项目描述
  • target_scope: 目标作用域(CIDR列表)
  • cron_expression: 定时表达式(可选)
  • status: 项目状态(pending/running/paused/completed/failed)

调度参数:

  • interval: 轮询间隔(默认10秒)
  • max_concurrency: 最大并发任务数(默认5)

资产管理能力 ✅ 已完成

核心能力:

  • 主机资产管理: 管理主机资产及其服务
  • Web资产管理: 管理Web应用资产
  • 网络资产管理: 管理网络资产
  • 漏洞资产管理: 管理漏洞信息
  • 统一资产管理: 提供统一的资产视图
  • 资产ETL处理: 提取、转换、加载扫描结果
  • 指纹识别与匹配: 识别服务指纹并打标签
  • 资产策略管理: 管理资产白名单和跳过策略

主机资产参数:

  • ip: IP地址(必填)
  • hostname: 主机名
  • os: 操作系统
  • os_version: 操作系统版本
  • mac: MAC地址
  • status: 状态(online/offline)

服务资产参数:

  • host_id: 所属主机ID(必填)
  • port: 端口号(必填)
  • proto: 协议类型(tcp/udp)
  • state: 端口状态
  • service: 服务名称
  • product: 产品名称
  • version: 版本号
  • banner: 服务Banner
  • cpe: CPE标识

Web资产参数:

  • url: URL地址(必填)
  • domain: 域名
  • title: 页面标题
  • server: 服务器信息
  • status_code: 状态码
  • content_length: 内容长度
  • tech_stack: 技术栈
  • fingerprint: 指纹信息

漏洞资产参数:

  • target_type: 目标类型(host/service/web)
  • target_ref_id: 目标引用ID(必填)
  • cve: CVE编号
  • title: 漏洞标题
  • description: 漏洞描述
  • severity: 严重程度
  • cvss: CVSS评分
  • poc: PoC信息
  • status: 状态(open/fixed/ignored)

标签系统能力 ✅ 已完成

核心能力:

  • 标签CRUD: 创建、查询、更新、删除标签
  • 规则管理: 管理匹配规则
  • 自动标签: 根据属性自动打标签
  • 标签传播: 根据规则批量打标签
  • 实体标签管理: 管理实体与标签的关联关系
  • 标签联动: 支持标签联动功能

标签参数:

  • name: 标签名称(必填)
  • parent_id: 父标签ID
  • color: 标签颜色
  • category: 标签分类
  • description: 标签描述

规则参数:

  • name: 规则名称(必填)
  • entity_type: 实体类型(host/service/web/network/vuln)
  • rule: 匹配规则(JSON格式)
  • tag_ids: 关联的标签ID列表
  • enabled: 是否启用

认证授权能力 ✅ 已完成

核心能力:

  • 用户注册: 支持用户注册
  • 用户登录: 用户名/密码登录
  • JWT令牌管理: 生成和验证JWT令牌
  • 会话管理: 管理用户会话
  • RBAC权限控制: 基于角色的访问控制
  • 密码管理: 密码哈希和验证

用户参数:

  • username: 用户名(必填)
  • email: 邮箱(必填)
  • password: 密码(必填)
  • nickname: 昵称
  • phone: 电话
  • status: 状态(enabled/disabled)
  • password_v: 密码版本

角色参数:

  • name: 角色名称(必填)
  • description: 角色描述
  • permissions: 权限列表

系统监控能力 ✅ 已完成

核心能力:

  • Agent健康监控: 监控Agent在线状态
  • Agent性能监控: 监控Agent性能指标
  • 任务状态监控: 监控任务执行状态
  • 项目进度监控: 监控项目执行进度

配置管理能力 🚧 部分完成

核心能力:

  • Agent配置查询: 查询Agent配置(占位实现)
  • Agent配置更新: 更新Agent配置(占位实现)

规则更新能力 ✅ 已完成

核心能力:

  • Agent规则更新: 支持Agent主动拉取规则更新

日志收集能力 🚧 部分完成

核心能力:

  • Agent日志收集: 收集Agent日志(占位实现)

即时告警能力 🚧 部分完成

核心能力:

  • Agent即时告警: 接收Agent即时告警(占位实现)

Master完成度总结

| 能力模块 | 完成度 | 说明 | |---------|--------|------| | Agent管理 | ✅ 100% | 完整实现,支持注册、认证、状态管理 | | 编排器 | ✅ 100% | 完整实现,支持DAG工作流 | | 资产管理 | ✅ 100% | 完整实现,支持多种资产类型 | | 标签系统 | ✅ 100% | 完整实现,支持自动打标签 | | 认证授权 | ✅ 100% | 完整实现,支持RBAC | | 系统监控 | ✅ 100% | 完整实现 | | 配置管理 | 🟡 30% | 占位实现 | | 规则更新 | ✅ 100% | 完整实现 | | 日志收集 | 🟡 30% | 占位实现 | | 即时告警 | 🟡 30% | 占位实现 |

总体完成度: 约 90%

Agent节点功能 (Worker)

核心架构特性

  • 无状态执行: 不维护任务上下文,执行完即销毁
  • Factory模式: 统一能力构建入口,确保配置一致性
  • QoS自适应限流: 基于RTT估算的动态并发控制
  • 跨平台支持: Linux/Windows/macOS原生支持
  • 零外部依赖: 纯Go实现,无需安装额外工具

扫描引擎详细能力

1. IP存活扫描 (ip_alive_scan) ✅ 已完成

核心能力:

  • 支持ARP/ICMP/TCP Connect三种探测协议
  • 自动策略选择(同网段优先ARP,跨网段ICMP+TCP)
  • 支持手动指定协议开关
  • 内置QoS自适应限流(初始200,最大5000并发)
  • 支持TTL猜测操作系统
  • 支持主机名反向解析

参数:

  • enable_arp (bool): 启用ARP探测
  • enable_icmp (bool): 启用ICMP探测
  • enable_tcp (bool): 启用TCP Connect探测
  • tcp_ports ([]int): TCP探测端口列表(默认[22,23,80,139,512,443,445,3389])
  • concurrency (int): 并发数(默认1000)
  • resolve_hostname (bool): 解析主机名(默认false)
  • timeout: 默认1小时
2. 端口服务扫描 (port_scan) ✅ 已完成

核心能力:

  • 基于Gonmap引擎的端口扫描
  • 支持Nmap服务指纹识别(内置规则库)
  • 支持服务探测(可选)
  • 支持CPE指纹识别
  • 内置QoS自适应限流(初始100,最大2000并发)
  • 动态超时控制(基于RTT估算)

参数:

  • port (string): 端口范围(如"80,443,1000-2000"、"top100"、"top1000")
  • rate (int): 扫描速率/并发数(默认1000)
  • service_detect (bool): 启用服务识别(默认true)
  • timeout: 默认1小时
3. 操作系统扫描 (os_scan) ✅ 已完成

核心能力:

  • 多引擎并发竞速识别
  • TTL引擎:基于TTL值快速猜测
  • Nmap Stack引擎:基于Nmap OS指纹库深度识别
  • Service Banner引擎:基于服务Banner识别
  • 支持三种模式:fast/deep/auto
  • 动态超时控制(基于RTT估算)

参数:

  • mode (string): 扫描模式
    • fast: 仅TTL快速识别
    • deep: Nmap深度识别
    • auto: 混合模式(默认)
  • timeout: 默认30分钟
4. 弱口令爆破 (brute_force) ✅ 已完成

核心能力:

  • 支持15+种协议爆破:SSH, RDP, MySQL, Redis, FTP, Telnet, SNMP, SMB, PostgreSQL, Oracle, MSSQL, MongoDB, Elasticsearch, Clickhouse等
  • 内置字典管理器
  • 支持自定义用户名/密码字典
  • 支持字典文件路径
  • 全局QoS自适应限流(初始50,最大200并发)
  • 支持找到即停或继续爆破
  • 单次尝试超时3秒

参数:

  • service (string): 目标服务(必须)
  • port (string): 目标端口(支持多个端口逗号分隔)
  • users (string): 用户名(支持文件路径或逗号分隔)
  • pass (string): 密码(支持文件路径或逗号分隔)
  • stop_on_success (bool): 找到即停(默认true)
  • timeout: 默认1小时
5. Web综合扫描 (web_scan) 🟡 部分完成

核心能力: Web指纹识别、目录枚举、敏感文件检测

参数:

  • ports (string): Web端口(默认"80,443")
  • path (string): 扫描路径(默认"/")
  • method (string): HTTP方法(默认"GET")
  • timeout: 默认30分钟
6. 目录扫描 (dir_scan) 🟡 部分完成

核心能力: 基于字典的目录爆破

参数:

  • dict (string): 字典路径
  • extensions (string): 文件扩展名
  • threads (int): 线程数(默认10)
  • timeout: 默认2小时
7. 漏洞扫描 (vuln_scan) 🟡 部分完成

核心能力: 集成Nuclei引擎进行漏洞验证

参数:

  • templates (string): Nuclei模板路径
  • severity (string): 漏洞等级(默认"medium,high,critical")
  • timeout: 默认1小时
8. 子域名扫描 (subdomain) 🟡 部分完成

核心能力: 字典爆破/被动收集子域名

参数:

  • dict (string): 字典路径
  • threads (int): 线程数(默认10)
  • timeout: 默认1小时
9. 代理服务 (proxy) 🟡 部分完成

核心能力: SOCKS5/HTTP代理服务器、端口转发

参数:

  • mode (string): 代理模式(socks5/http/port_forward,默认socks5)
  • listen (string): 监听地址(默认":1080")
  • auth (string): 认证信息(格式user:pass)
  • forward (string): 转发目标(仅port_forward模式需要)
  • timeout: 0(无超时)
10. 原始命令执行 (raw_cmd) 🔴 未实现

用途: 执行原始命令,用于特殊场景

Pipeline编排能力 ✅ 已完成

核心能力:

  • 自动化编排器(AutoRunner)
  • 漏斗式扫描流程:存活→端口→服务→OS→Web→漏洞
  • 目标生成器(支持IP/CIDR/域名)
  • 上下文传递(各阶段间共享数据)
  • 支持阶段依赖和条件执行

Pipeline参数:

  • target (string): 扫描目标(必须)
  • concurrency (int): 并发数(默认10)
  • port_range (string): 端口范围(默认"top1000")
  • show_summary (bool): 显示摘要
  • enable_brute (bool): 启用爆破(默认false)
  • brute_users (string): 爆破用户名
  • brute_pass (string): 爆破密码

网络基础设施

  • 统一网络连接层 (Dialer): 全局超时控制、代理支持(SOCKS5)、连接复用
  • Raw Socket能力 (NetRaw): Linux完整支持,Windows/macOS降级处理
  • QoS自适应限流: RTT估算器、自适应限流器、动态超时控制

结果输出能力

  • Console: 控制台输出
  • CSV: 文件输出
  • JSON: 可扩展格式

完成度总结

| 能力模块 | 完成度 | 说明 | |---------|--------|------| | IP存活扫描 | ✅ 100% | 完整实现,支持多协议、QoS | | 端口服务扫描 | ✅ 100% | 完整实现,基于Gonmap引擎 | | 操作系统扫描 | ✅ 100% | 完整实现,多引擎竞速 | | 弱口令爆破 | ✅ 100% | 完整实现,支持15+协议 | | Web扫描 | 🟡

View on GitHub
GitHub Stars22
CategoryDevelopment
Updated9d ago
Forks3

Languages

Go

Security Score

75/100

Audited on Mar 25, 2026

No findings