开源|cscan分布式资产安全扫描平台诞生记

admin 2026-01-01 05:24:42 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍Gcow安全团队开源的分布式资产安全扫描平台cscan。该平台基于Go-Zero与Vue3构建,集成了端口扫描、指纹识别及POC验证功能。cscan解决传统工具臃肿痛点,提供轻量、高性能的一站式资产发现与风险识别方案,支持Docker一键部署。 综合评分: 90 文章分类: 安全工具,产品介绍,漏洞POC,安全建设


cover_image

开源|cscan 分布式资产安全扫描平台诞生记

sec0nd安全

2025年12月30日 15:28 北京

以下文章来源于Gcow安全团队 ,作者唐小风@绝影小组

Gcow安全团队 .

Gcow是当前国内为数不多的民间网络信息安全研究团队之一。本着“低调发展,自信创新,技术至上”理念,团队主要研究范围“APT捕获分析、渗透测试、代码审计、病毒样本分析、RedTeam、红蓝对抗、程序开发,Ai安全”

该扫描器作者为Gcow安全团队-唐小风,写下这段文字的时候,已经是凌晨三点。

屏幕上 cscan 的控制台还在疯狂跳动,一行行绿色的端口开放信息像瀑布一样流淌。看着任务管理器里几乎不仅不慢的 CPU 占用率,和那快得让我有点心惊肉跳的扫描进度,我长舒了一口烟气。

终于,我拥有了一个完全属于自己的、顺手的、不再臃肿的资产扫描工具。

做安全的朋友都知道,在这个圈子里,我们不仅缺漏洞,更缺好用的“铲子”。市面上的扫描器多吗?多,如过江之鲫。Nmap 是神,但它太重;Masscan 是快,但它太糙;各种语言写的小脚本满天飞,但一遇到大规模资产梳理,那个效果和资源占用能让你怀疑人生。

作为一名甲方安全建设者,我受够了在这个工具和那个工具之间切来切去,受够了维护那一堆支离破碎的脚本。

“为什么不能有一个既轻量、又高性能,还能把端口、指纹、POC 扫描一条龙搞定的东西?”

这个念头一旦产生,就像野草一样疯长。于是,我决定造轮子。这个轮子,就叫 cscan

一、 为什么是 Go-Zero?架构师的执念

决定重写的那一刻,我毫不犹豫地抛弃了Rust。不是 Rust 不好,而是我不会。

我要的是Go

但是,光用 Go 写个脚本是不够的。我要做的是一个平台,一个可以持续迭代、甚至可以微服务化的系统。这时候,go-zero 闯入了我的视野。

很多人问我,写个扫描器而已,至于上微服务框架吗? 我的回答是:至于。非常有必要。

Go-Zero 这种“契约优先”(API First)的设计理念,简直是强迫症患者的福音。在写下一行逻辑代码之前,我先用 .api 文件定义好了整个系统的灵魂。

你看,这是 cscan 的骨架,干净得让我着迷:

// 核心设计:任务、扫描、结果三权分立syntax = "v1"
info (    title:   "cscan 扫描平台核心 API"   desc:    "集成端口扫描、指纹识别和漏洞扫描功能的API" author:  "txf" version: "v1.0.0")
// ... (省略部分鉴权代码)
// 任务系统:一切扫描的起点@server (    jwt:   Auth   group: task)service newproject-api {@doc "创建扫描任务"@handler createTask  post /api/task/create (CreateTaskReq) returns (CreateTaskReply)
    // ... 实时监控任务状态@handler getTaskStatusget /api/task/status/:taskId (GetTaskStatusReq) returns (GetTaskStatusReply)}
// 结果系统:数据落地的港湾@server (    jwt:   Auth   group: scan)service newproject-api {@doc "获取端口扫描结果"@handler getPortScanResultsget /api/scan/port/:taskId (GetPortScanResultsReq) returns (GetPortScanResultsReply)
    // ... 指纹与POC结果@handler getFingerprintResultsget /api/scan/fingerprint/:taskId (GetFingerprintResultsReq) returns (GetFingerprintResultsReply)}

通过``goctl 一键生成代码的那一刻,我感到了前所未有的掌控感。

goctl api go -api cscan.api -dir .

随着这行命令敲下,路由、Handler、Logic 层瞬间就位。我不再需要去纠结项目目录结构,不再需要去手写繁琐的 HTTP 解析。我只需要专注于最核心的业务逻辑:怎么让扫描更快、更准。

这种开发体验,真的,一旦习惯了就回不去了。

二、 核心能力:不仅是快,更是全

cscan 不仅仅是一个端口扫描器,我给它的定义是“资产发现与风险识别的一站式平台”。

  1. 极速端口扫描:利用 Go 的 goroutine 优势,我直接调用nabbu的SDK作为端口扫描组件。它像一只不知疲倦的猎犬,嗅探着每一个开放的端口,同时还能精准识别 Banner 和协议。

  2. 指纹识别(Fingerprint):端口开了只是第一步。它是 Nginx 还是 Apache?是 Tomcat 还是 WebLogic?我通过近三年互联网公开收集整理的指纹集成了大量的指纹库,请求发出,瞬间回传技术栈信息。这对于后续的渗透测试至关重要。(同时只要扫描过的目标,后续新增自定义指纹,都能做到快速识别)

  3. POC 漏洞扫描:基于指纹识别的结果,自动调度对应的 POC 进行验证。再也不用盲目地打 Payload 了,精准打击,一击必中。

而在数据结构的设计上,我力求简洁明了:

// 扫描结果的标准化定义type (    ScanResult {        Type string      `json:"type"` // 结果类型(portscan, fingerprint, pocscan)        Data interface{} `json:"data"` // 泛型数据,灵活兼容  }    // ...  FingerprintResult {     URL          string            `json:"url"`     Title        string            `json:"title"`        Server       string            `json:"server"`       Technologies []string          `json:"technologies"` // 这一眼就能看透对方底裤  })

三、 前端 Vue3 + Element Plus:给极客的温柔

作为一个常年写后端的直男,写前端对我来说无异于绣花。

但是,我不希望 cscan 只是一个冰冷的命令行工具。我希望它有一个现代化的、清爽的 Dashboard。

于是我硬着头皮上了 Vue3 + Element Plus

npm create vite@latest ui -- --template vue

那个周末,我为了调一个 CSS 的 Flex 布局,陪AI模型熬掉了半盒烟。但当看到扫描任务在网页上实时滚动进度条,当看到扫描结果以漂亮的表格呈现时,我觉得一切都值了。

现在,你只需要简单几步,就能拥有这套前后端分离的现代化扫描平台:

git clone https://github.com/tangxiaofeng7/cscan.gitcd cscan# 直接启动docker-compose up -d --build

四、 开源的心声:我想换你一个 Star

说实话,把这个项目开源出来,我是有过犹豫的。

每一行代码都是AI的心血,每一个逻辑判断都藏着我对网络攻防的理解。但转念一想,开源精神不就是“独乐乐不如众乐乐”吗?

既然我已经造好了这个轮子,为什么不让更多的人用上它?也许你会发现我代码里的 Bug(请务必提 Issue!),也许你会觉得某个功能还可以优化(欢迎 PR!),也许它能帮你快速完成了某次紧急的资产盘点任务。

如果 cscan 能在你的工作中起到哪怕一点点的帮助,那我在那些深夜里敲击键盘的声音,就有了回响。

项目地址:

https://github.com/tangxiaofeng7/cscan

如果你觉得这个项目还不错,或者你认可这种 Go-Zero + Vue3 的全栈开发模式,请不要吝啬你的 Star

那颗小小的星星,对于坐在屏幕前的我来说,是最大的鼓励,也是我继续维护、更新、死磕性能的动力。

兄弟们,Star 走一波,扫码加入工具交流群,我们 GitHub 见!



免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:sec0nd安全 《开源|cscan 分布式资产安全扫描平台诞生记》

评论:0   参与:  0