From 04ee3afb07bad7fd8d7c36a56bb481b0d1a7dda7 Mon Sep 17 00:00:00 2001 From: ZacharyZcR <2903735704@qq.com> Date: Sun, 22 Dec 2024 05:17:40 +0800 Subject: [PATCH] =?UTF-8?q?docs:=202.0=E4=BD=BF=E7=94=A8=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Docs/Fscan2.0介绍.md | 149 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 Docs/Fscan2.0介绍.md diff --git a/Docs/Fscan2.0介绍.md b/Docs/Fscan2.0介绍.md new file mode 100644 index 0000000..bb76e3d --- /dev/null +++ b/Docs/Fscan2.0介绍.md @@ -0,0 +1,149 @@ +# Fscan2.0使用指南 + +大家好,我是ZacharyZcR,很荣幸能参与Fcan的重构工作,本文档将会带您详细了解Fcan2.0的新特性。 + +## 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