service

package
v0.12.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 21, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package service implements service fingerprinting functionality for discovering running services.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunServiceFingerprint

RunServiceFingerprint fingerprints services using the transport selected in config. New callers should prefer RunTCPServiceFingerprint or RunUDPServiceFingerprint directly.

func RunTCPServiceFingerprint added in v0.12.0

RunTCPServiceFingerprint fingerprints the TCP service at target:port.

  1. If stealth mode is enabled, use targeted fingerprinting for the specified service type.
  2. Otherwise, for TCP (port-priority system): Phase 1: Run custom fingerprinters ONLY if port matches their default ports Phase 2: Run fingerprintx (which has its own port priority) Phase 3: If nothing found, run custom fingerprinters on all ports (comprehensive fallback)

func RunUDPServiceFingerprint added in v0.12.0

RunUDPServiceFingerprint scans common UDP ports on one or more target hosts.

Types

type Fingerprinter

type Fingerprinter interface {
	Name() string
	Detect(ctx context.Context, ip net.IP, port int, host string, timeout int) (*discoverfern.ServiceDetails, error)
	// DefaultPorts returns the list of default ports for this service
	// Empty list means the service can run on any port (no port restrictions)
	DefaultPorts() []int
}

Fingerprinter detects **one** specific application protocol (gRPC, MQTT, …). On match: (*ServiceDetails, nil) On "not mine": (nil, nil) On fatal error: (nil, err)

Directories

Path Synopsis
Package plugins provides ARD (Apple Remote Desktop) service fingerprinting
Package plugins provides ARD (Apple Remote Desktop) service fingerprinting

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL