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.

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)

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.