mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

目录结构优化: - 保留 plugins/ 目录下的老版本插件代码不变 - 新增 adapters/ 目录专门存放适配器相关代码 - adapters/legacy_plugin.go - 老版本插件适配器框架 - adapters/legacy_plugins/ - 老版本插件适配器实现 架构分离: - plugins/ - 原始老版本插件代码,保持不变 - plugins/services/ - 新架构服务插件 - adapters/ - 各种适配器,实现架构间桥接 设计原则: - 零侵入性:老版本插件完全不需要修改 - 分离关注点:不同类型的代码放在合适的目录 - 统一管理:通过注册表统一管理所有插件 测试验证:✓ 重组后所有插件功能正常
54 lines
1.6 KiB
Go
54 lines
1.6 KiB
Go
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)
|
||
} |