fscan/adapters/legacy_plugins/rdp/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 rdp
import (
"github.com/shadow1ng/fscan/adapters"
"github.com/shadow1ng/fscan/plugins/base"
Plugins "github.com/shadow1ng/fscan/plugins"
)
// NewRdpPlugin 创建RDP弱密码检测插件
func NewRdpPlugin() base.Plugin {
// 插件元数据
metadata := &base.PluginMetadata{
Name: "rdp",
Version: "1.0.0",
Author: "fscan-team",
Description: "RDP远程桌面服务弱密码检测",
Category: "service",
Ports: []int{3389}, // RDP端口
Protocols: []string{"tcp"},
Tags: []string{"rdp", "remote-desktop", "weak-password", "service", "brute-force"},
}
// 适配器选项
options := &adapters.LegacyPluginOptions{
CheckBruteFlag: true, // RDP依赖暴力破解标志
IsVulnPlugin: false, // 这是服务检测插件,不是漏洞检测
IsInfoPlugin: false, // 主要是弱密码检测
CustomPorts: []int{3389}, // RDP端口
}
// 创建适配器直接使用老版本的RdpScan函数
return adapters.NewLegacyPlugin(metadata, Plugins.RdpScan, options)
}
// init 自动注册RDP插件
func init() {
// 创建插件工厂
metadata := &base.PluginMetadata{
Name: "rdp",
Version: "1.0.0",
Author: "fscan-team",
Description: "RDP远程桌面服务弱密码检测",
Category: "service",
Ports: []int{3389},
Protocols: []string{"tcp"},
Tags: []string{"rdp", "remote-desktop", "weak-password", "service", "brute-force"},
}
factory := base.NewSimplePluginFactory(metadata, func() base.Plugin {
return NewRdpPlugin()
})
base.GlobalPluginRegistry.Register("rdp", factory)
}