fix: NFS plugin RPC probe + UDP dispatch in auto mode

NFS: use RPC NULL call to detect NFS service before MOUNT EXPORT
UDP dispatch: query plugin registry directly in auto mode instead of
GetPlugins which excludes UDP from FilterService
This commit is contained in:
ZacharyZcR committed 2026-05-19 00:37:35 +08:00
1 parent 0a28db7371
commit a92df59dfe
2 files changed
+70 -19

No files matched your search

+13 -4
View File
@@ -221,12 +221,21 @@ func (s *ServiceScanStrategy) performHostScan(ctx context.Context, session *comm
// dispatchUDPPlugins 分发UDP协议插件,跳过TCP端口扫描链路
func (s *ServiceScanStrategy) dispatchUDPPlugins(ctx context.Context, session *common.ScanSession, hosts []string, baseInfo common.HostInfo, config *common.Config, ch chan struct{}, wg *sync.WaitGroup) {
allPlugins, isCustomMode := s.GetPlugins(config)
_, isCustomMode := s.GetPlugins(config)
var udpPlugins []string
for _, name := range allPlugins {
if plugins.IsUDP(name) {
if isCustomMode || plugins.IsSafe(name) {
if isCustomMode {
// custom mode: 只跑用户指定的 UDP 插件
requested, _ := s.GetPlugins(config)
for _, name := range requested {
if plugins.IsUDP(name) {
udpPlugins = append(udpPlugins, name)
}
}
} else {
// auto mode: 跑所有已注册的安全 UDP 插件
for _, name := range plugins.All() {
if plugins.IsUDP(name) && plugins.IsSafe(name) {
udpPlugins = append(udpPlugins, name)
}
}