fscan/adapters/legacy_plugins/README.md
ZacharyZcR 32223db6e3 refactor: 重新组织插件架构,分离老版本插件和适配器
目录结构优化:
- 保留 plugins/ 目录下的老版本插件代码不变
- 新增 adapters/ 目录专门存放适配器相关代码
- adapters/legacy_plugin.go - 老版本插件适配器框架
- adapters/legacy_plugins/ - 老版本插件适配器实现

架构分离:
- plugins/ - 原始老版本插件代码,保持不变
- plugins/services/ - 新架构服务插件
- adapters/ - 各种适配器,实现架构间桥接

设计原则:
- 零侵入性:老版本插件完全不需要修改
- 分离关注点:不同类型的代码放在合适的目录
- 统一管理:通过注册表统一管理所有插件

测试验证:✓ 重组后所有插件功能正常
2025-08-09 16:24:26 +08:00

2.5 KiB
Raw Blame History

Legacy Plugin Adapters

这个目录包含了老版本插件的适配器实现,使用适配器模式将老版本插件无缝接入新的插件架构。

架构设计

老版本插件函数 (plugins/*.go)
      ↓
LegacyPlugin适配器 (adapter/legacy_plugin.go)
      ↓
新插件系统 (base/*.go)

已适配插件列表

漏洞检测类插件

  • ms17010 - SMB远程代码执行漏洞检测 (EternalBlue)

    • 端口: 445
    • 功能: MS17010漏洞检测
    • 原函数: Plugins.MS17010
  • smbghost - CVE-2020-0796 远程代码执行漏洞检测

    • 端口: 445
    • 功能: SMBGhost漏洞检测
    • 原函数: Plugins.SmbGhost

服务检测类插件

  • smb - SMB服务弱密码检测和共享枚举

    • 端口: 445, 139
    • 功能: SMB弱密码检测、共享枚举
    • 原函数: Plugins.SmbScan
  • smb2 - SMB2服务弱密码检测 (支持NTLM哈希)

    • 端口: 445
    • 功能: SMB2弱密码检测、NTLM哈希支持
    • 原函数: Plugins.SmbScan2
  • rdp - RDP远程桌面服务弱密码检测

    • 端口: 3389
    • 功能: RDP弱密码检测
    • 原函数: Plugins.RdpScan
  • elasticsearch - Elasticsearch弱密码检测和未授权访问检测

    • 端口: 9200, 9201, 9300
    • 功能: 弱密码检测、未授权访问检测
    • 原函数: Plugins.ElasticScan

信息收集类插件

  • netbios - NetBIOS信息收集和主机名解析
    • 端口: 139, 445
    • 功能: NetBIOS信息收集、主机名解析
    • 原函数: Plugins.NetBIOS

适配器特点

  1. 零侵入性 - 老版本插件代码完全不需要修改
  2. 完整兼容 - 实现完整的Plugin接口 (Scanner + Exploiter)
  3. 类型感知 - 根据插件类型自动配置能力和行为
  4. 统一管理 - 与新架构插件一起统一调度和管理

配置选项

每个适配器支持以下配置选项:

  • CheckBruteFlag - 是否检查暴力破解开关
  • IsVulnPlugin - 是否为漏洞检测插件
  • IsInfoPlugin - 是否为信息收集插件
  • CustomPorts - 自定义端口列表

使用方式

适配器插件会自动注册到全局插件注册表,无需额外配置。通过标准的插件系统调用即可:

# 扫描特定端口
fscan -h target -p 445

# 使用特定插件
fscan -h target -m ms17010,smb2

未来扩展

如需添加更多老版本插件适配器,按以下步骤操作:

  1. 在此目录下创建新的插件目录
  2. 实现plugin.go文件参考现有适配器
  3. 在core/Registry.go中添加import语句
  4. 更新此README文档