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/ - 各种适配器,实现架构间桥接 设计原则: - 零侵入性:老版本插件完全不需要修改 - 分离关注点:不同类型的代码放在合适的目录 - 统一管理:通过注册表统一管理所有插件 测试验证:✓ 重组后所有插件功能正常
90 lines
2.5 KiB
Markdown
90 lines
2.5 KiB
Markdown
# 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文档 |