shadow1ng/fscan · error

netbios_port_only

Error message

netbios_port_only

What it means

Guard in NetBIOSPlugin.Scan: the scan only operates on UDP 137 (name service) and TCP 139 (session service), but info.Port held a different port. The plugin declines to run and returns this sentinel error so the scheduler can route the port elsewhere.

Solutions

  1. Run the netbios plugin only against ports 137 or 139
  2. Check port-configuration/service-mapping if NetBIOS was expected on this port
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at plugins/services/netbios.go:44 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06). Data as JSON: /api/errors/88b435628e3c4480. Report an issue: GitHub.

Appendix: source

Thrown at plugins/services/netbios.go:44

	return &NetBIOSPlugin{
		BasePlugin: plugins.NewBasePlugin("netbios"),
	}
}

// GetPorts 实现Plugin接口

// Scan 执行NetBIOS扫描 - 收集Windows主机和域信息
func (p *NetBIOSPlugin) Scan(ctx context.Context, info *common.HostInfo, session *common.ScanSession) *ScanResult {
	config := session.Config
	state := session.State
	target := info.Target()

	// 检查端口类型
	if info.Port != 137 && info.Port != 139 {
		return &ScanResult{
			Success: false,
			Service: "netbios",
			Error:   fmt.Errorf("%s", i18n.GetText("netbios_port_only")),
		}
	}

	var netbiosInfo *NetBIOSInfo
	var err error

	if info.Port == 137 {
		// UDP端口137 - NetBIOS名称服务
		netbiosInfo, err = p.queryNetBIOSNames(info.Host, config, state)
	} else {
		// TCP端口139 - NetBIOS会话服务
		netbiosInfo, err = p.queryNetBIOSSession(ctx, info.Host, session)
	}

	if err != nil {
		return &ScanResult{
			Success: false,
			Service: "netbios",

View on GitHub (pinned to 95cc12e753)