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

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

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

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

54 lines
1.6 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package smb2
import (
"github.com/shadow1ng/fscan/adapters"
"github.com/shadow1ng/fscan/plugins/base"
Plugins "github.com/shadow1ng/fscan/plugins"
)
// NewSmb2Plugin 创建SMB2弱密码检测插件
func NewSmb2Plugin() base.Plugin {
// 插件元数据
metadata := &base.PluginMetadata{
Name: "smb2",
Version: "1.0.0",
Author: "fscan-team",
Description: "SMB2服务弱密码检测和共享枚举 (支持NTLM哈希)",
Category: "service",
Ports: []int{445}, // SMB2端口
Protocols: []string{"tcp"},
Tags: []string{"smb2", "weak-password", "service", "brute-force", "ntlm"},
}
// 适配器选项
options := &adapters.LegacyPluginOptions{
CheckBruteFlag: true, // SMB2依赖暴力破解标志
IsVulnPlugin: false, // 这是服务检测插件,不是漏洞检测
IsInfoPlugin: true, // 包含信息收集功能
CustomPorts: []int{445}, // SMB2端口
}
// 创建适配器直接使用老版本的SmbScan2函数
return adapters.NewLegacyPlugin(metadata, Plugins.SmbScan2, options)
}
// init 自动注册SMB2插件
func init() {
// 创建插件工厂
metadata := &base.PluginMetadata{
Name: "smb2",
Version: "1.0.0",
Author: "fscan-team",
Description: "SMB2服务弱密码检测和共享枚举 (支持NTLM哈希)",
Category: "service",
Ports: []int{445},
Protocols: []string{"tcp"},
Tags: []string{"smb2", "weak-password", "service", "brute-force", "ntlm"},
}
factory := base.NewSimplePluginFactory(metadata, func() base.Plugin {
return NewSmb2Plugin()
})
base.GlobalPluginRegistry.Register("smb2", factory)
}