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

90 lines
2.5 KiB
Markdown
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.

# 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` - 自定义端口列表
## 使用方式
适配器插件会自动注册到全局插件注册表,无需额外配置。通过标准的插件系统调用即可:
```bash
# 扫描特定端口
fscan -h target -p 445
# 使用特定插件
fscan -h target -m ms17010,smb2
```
## 未来扩展
如需添加更多老版本插件适配器,按以下步骤操作:
1. 在此目录下创建新的插件目录
2. 实现plugin.go文件参考现有适配器
3. 在core/Registry.go中添加import语句
4. 更新此README文档