fscan/Docs/Fscan2.0介绍.md
2024-12-23 07:49:04 +08:00

4.8 KiB
Raw Blame History

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 文件实现,使用简洁的注册语法:

Common.RegisterPlugin("mysql", Common.ScanPlugin{
    Name:     "MySQL",
    Ports:    []int{3306, 3307},
    ScanFunc: Plugins.MysqlScan,
})

注册结构包含三个关键要素:

  • 插件标识符(小写字符串)
  • 插件名称(显示名称)
  • 默认扫描端口
  • 具体实现函数

端口配置

Common/Ports.go 中定义了多组预设端口配置:

  • ServicePorts常用服务端口
  • DbPorts数据库相关端口
  • WebPortsWeb服务端口
  • AllPorts全端口范围1-65535
  • MainPorts核心服务端口

扫描模式配置

Common/ParseScanMode.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