fscan/Plugins/legacy/ms17010/plugin.go
ZacharyZcR b2b2c4a215 refactor: 统一插件分类系统,修复FindNet执行问题
- 修复FindNet插件分类从information改为service,解决不在服务扫描阶段执行的问题
- 统一所有插件分类为标准的三种类型:service、web、local
- 将vulnerability类型插件(smbghost、ms17010)重分类为service
- 将information类型插件(netbios、findnet)重分类为service
- 确保所有网络服务端口扫描插件都在服务扫描阶段正确执行
- 保持插件功能不变,仅调整分类以符合新架构要求

测试验证:FindNet现已能正确在135端口扫描时显示网络接口信息
2025-08-09 17:31:40 +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 ms17010
import (
"github.com/shadow1ng/fscan/plugins/adapters"
"github.com/shadow1ng/fscan/plugins/base"
LegacyPlugins "github.com/shadow1ng/fscan/plugins/legacy"
)
// NewMS17010Plugin 创建MS17010漏洞检测插件
func NewMS17010Plugin() base.Plugin {
// 插件元数据
metadata := &base.PluginMetadata{
Name: "ms17010",
Version: "1.0.0",
Author: "fscan-team",
Description: "MS17010 SMB远程代码执行漏洞检测 (EternalBlue)",
Category: "service",
Ports: []int{445}, // SMB端口
Protocols: []string{"tcp"},
Tags: []string{"smb", "ms17010", "eternalblue", "vulnerability"},
}
// 适配器选项
options := &adapters.LegacyPluginOptions{
CheckBruteFlag: false, // MS17010不依赖暴力破解标志
IsVulnPlugin: true, // 这是漏洞检测插件
IsInfoPlugin: false,
CustomPorts: []int{445}, // 固定使用SMB端口
}
// 创建适配器直接使用老版本的MS17010函数
return adapters.NewLegacyPlugin(metadata, LegacyPlugins.MS17010, options)
}
// init 自动注册MS17010插件
func init() {
// 创建插件工厂
metadata := &base.PluginMetadata{
Name: "ms17010",
Version: "1.0.0",
Author: "fscan-team",
Description: "MS17010 SMB远程代码执行漏洞检测 (EternalBlue)",
Category: "service",
Ports: []int{445},
Protocols: []string{"tcp"},
Tags: []string{"smb", "ms17010", "eternalblue", "vulnerability"},
}
factory := base.NewSimplePluginFactory(metadata, func() base.Plugin {
return NewMS17010Plugin()
})
base.GlobalPluginRegistry.Register("ms17010", factory)
}