From a8bd8ca5083315be70058040a7823cac1cfaf1d8 Mon Sep 17 00:00:00 2001 From: ZacharyZcR <2903735704@qq.com> Date: Sat, 26 Apr 2025 04:25:22 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E7=A7=BB=E9=99=A4=E8=AF=B4=E6=98=8E?= =?UTF-8?q?=EF=BC=8C=E7=89=88=E6=9C=AC=E5=8F=B7=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docs/Fscan2.0介绍.md | 155 ------------------------------------------- Docs/插件编写指南.md | 88 ------------------------ README.md | 2 +- 3 files changed, 1 insertion(+), 244 deletions(-) delete mode 100644 Docs/Fscan2.0介绍.md delete mode 100644 Docs/插件编写指南.md diff --git a/Docs/Fscan2.0介绍.md b/Docs/Fscan2.0介绍.md deleted file mode 100644 index 82615a7..0000000 --- a/Docs/Fscan2.0介绍.md +++ /dev/null @@ -1,155 +0,0 @@ -# Fscan2.0使用指南 - -大家好,我是ZacharyZcR,很荣幸能参与Fcan的重构工作,本文档将会带您详细了解Fcan2.0的新特性。 - -目前已经完成的新增功能: - -新增Telnet、VNC、Elasticsearch、RabbitMQ、Kafka、ActiveMQ、LDAP、SMTP、IMAP、POP3、SNMP、Zabbix、Modbus、Rsync、Cassandra、Neo4j扫描。 - -新增SYN和UDP端口扫描。 - -## 0x01 代码结构重构 - -代码架构经过全面重构,现已优化为四个主要模块:Common、Core、Plugins和WebScan。 - -每个模块都有其明确的职责划分: - -### Common 模块 -负责基础功能实现,包括参数解析和配置管理。作为底层支撑模块,为其他模块提供基础服务支持。 - -### Core 模块 -作为Fscan的核心引擎,实现端口扫描等基础功能。该模块是整个系统的中枢,负责协调和调度其他功能模块。 - -### Plugins 模块 -提供多样化的扫描插件实现,支持功能扩展和定制化需求。 - -### WebScan 模块 - -专门负责Web应用层面的扫描功能,提供深度的Web安全评估能力。 - -### 代码规范 -为提升代码质量和可维护性,我们制定了以下规范: - -1. 文件命名采用大驼峰命名法,所有文件名以大写字母开头 -2. 内部函数和方法的命名保持灵活性,以实用性为准 -3. 使用LLM技术对全部代码进行了注释补充和优化 -4. 完善了代码文档,便于开发者理解和进行二次开发 - -## 0x02 插件热插拔设计 - -Fcan 2.0采用了基于反射机制的插件热插拔架构,实现了插件的灵活添加和移除。以下是详细说明: - -### 插件注册机制 -插件注册通过 `Core/Registry.go` 文件实现,使用简洁的注册语法: - -```go -Common.RegisterPlugin("mysql", Common.ScanPlugin{ - Name: "MySQL", - Ports: []int{3306, 3307}, - ScanFunc: Plugins.MysqlScan, -}) -``` - -注册结构包含三个关键要素: -- 插件标识符(小写字符串) -- 插件名称(显示名称) -- 默认扫描端口 -- 具体实现函数 - -### 端口配置 -在 `Common/Ports.go` 中定义了多组预设端口配置: - -- ServicePorts:常用服务端口 -- DbPorts:数据库相关端口 -- WebPorts:Web服务端口 -- AllPorts:全端口范围(1-65535) -- MainPorts:核心服务端口 - -### 扫描模式配置 -`Common/ParseScanMode.go` 中定义了默认扫描模式分组: - -```go -var pluginGroups = map[string][]string{ - ModeAll: [...], // 全量扫描 - ModeBasic: [...], // 基础扫描 - ModeDatabase: [...], // 数据库扫描 - ModeWeb: [...], // Web服务扫描 - ModeService: [...], // 基础服务扫描 - ModeVul: [...], // 漏洞扫描 - ModeLocal: [...], // 本地信息收集 -} -``` - -### 使用方式 -插件注册后即可通过 `-m` 参数调用,无需额外配置。这种设计既保证了扩展性,又维持了使用的简便性。若需要更多便捷功能,可通过修改相应配置文件实现。 - -## 0x03 Fscan-Lab - -Fscan-Lab是一个集成的测试环境平台,专为安全学习和功能验证设计。 - -### 功能特点 - -1. 预配置Docker环境 - - 位于TestDocker目录下 - - 包含多种预设测试场景 - - 环境经过完整测试和验证 - -2. 使用场景 - - 新手用户快速入门 - - 功能学习与实践 - - 插件开发测试验证 - - 单点功能调试 - -### 优势 - -- 即开即用:预置环境免去繁琐配置 -- 标准化:统一的测试环境确保结果可复现 -- 安全可控:本地环境避免误操作风险 -- 快速验证:便于开发者进行功能测试 - -## 0x04 本地扫描与本地利用 - -Fscan 2.0正在开发一套全新的本地化功能模块,主要包含以下方向: - -### 计划功能 - -1. 本地敏感信息搜集 -2. 本地提权检测与利用 -3. 隧道搭建功能 -4. 权限维持组件 - -### 开发状态 - -该模块目前处于积极开发阶段,我们正在努力确保每个功能的安全性和可靠性。这个新增模块将极大扩展Fscan的功能范围,使其成为一个更全面的安全评估工具。 - -### 未来展望 - -我们将在确保功能稳定性的基础上,逐步发布这些新特性。欢迎社区持续关注项目进展,也欢迎有兴趣的开发者参与贡献。 - -具体发布时间和详细功能列表将在开发完成后公布,敬请期待。 - -## 0x05 更多功能与开发说明 - -### 持续开发 - -Fscan 2.0目前处于活跃开发阶段: -- 最新代码会持续发布到dev分支 -- 更新频率较高 -- 功能不断优化和扩展 - -### 版本选择建议 - -由于dev分支的特点: -- 更新速度快 -- 不保证完全稳定 -- 可能包含实验性功能 - -建议用户根据实际需求选择合适的版本: -- 追求稳定性的用户建议使用主分支 -- 需要尝试新功能的用户可以使用dev分支 - -### 致谢 - -感谢您对Fscan 2.0的关注。我们将继续完善功能,提供更好的使用体验。 - -ZacharyZcR \ No newline at end of file diff --git a/Docs/插件编写指南.md b/Docs/插件编写指南.md deleted file mode 100644 index e8a3820..0000000 --- a/Docs/插件编写指南.md +++ /dev/null @@ -1,88 +0,0 @@ -# FScan 插件开发指南 - -## 1. 创建插件 -在 `Plugins` 目录下创建你的插件文件,例如 `myPlugin.go`: - -```go -package Plugins - -import ( - "github.com/shadow1ng/fscan/Common" -) - -func MyPluginScan(info *Common.HostInfo) error { - // 1. 基础检查 - if info == nil { - return errors.New("Invalid host info") - } - - // 2. 实现扫描逻辑 - result, err := doScan(info) - if err != nil { - return err - } - - // 3. 处理结果 - if result.Vulnerable { - Common.LogSuccess(fmt.Sprintf("Found vulnerability in %s:%d", info.Host, info.Port)) - } - - return nil -} -``` - -## 2. 注册插件 -在 `Core/Registry.go` 中注册你的插件: - -```go -Common.RegisterPlugin("myplugin", Common.ScanPlugin{ - Name: "MyPlugin", - Port: 12345, // 指定端口,如果是web类插件可设为0 - ScanFunc: Plugins.MyPluginScan, -}) -``` - -## 3. 开发规范 - -### 插件结构 -- 每个插件应当是独立的功能模块 -- 使用清晰的函数名和变量名 -- 添加必要的注释说明功能和实现逻辑 - -### 错误处理 -```go -// 推荐的错误处理方式 -if err != nil { - return fmt.Errorf("plugin_name scan error: %v", err) -} -``` - -### 日志输出 -```go -// 使用内置的日志函数 -Common.LogSuccess("发现漏洞") -Common.LogError("扫描错误") -``` - -## 4. 测试验证 - -- 编译整个项目确保无错误 -- 实际环境测试插件功能 -- 验证与其他插件的兼容性 - -## 5. 提交流程 - -1. Fork 项目仓库 -2. 创建功能分支 -3. 提交代码更改 -4. 编写清晰的提交信息 -5. 创建 Pull Request - -## 注意事项 - -- 遵循 Go 编码规范 -- 保证代码可读性和可维护性 -- 禁止提交恶意代码 -- 做好异常处理和超时控制 -- 避免过度消耗系统资源 -- 注意信息安全,不要泄露敏感数据 diff --git a/README.md b/README.md index 0819c22..a69ace6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # FScan
+