Documentation
¶
Overview ¶
Package service implements service fingerprinting functionality for discovering running services.
Index ¶
- func RunServiceFingerprint(ctx context.Context, config discoverfern.DiscoverServiceConfig) (*discoverfern.DiscoverServiceReport, error)
- func RunTCPServiceFingerprint(ctx context.Context, config discoverfern.DiscoverServiceConfig) (*discoverfern.DiscoverServiceReport, error)
- func RunUDPServiceFingerprint(ctx context.Context, config discoverfern.DiscoverServiceConfig) (*discoverfern.DiscoverServiceReport, error)
- type Fingerprinter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RunServiceFingerprint ¶
func RunServiceFingerprint(ctx context.Context, config discoverfern.DiscoverServiceConfig) (*discoverfern.DiscoverServiceReport, error)
RunServiceFingerprint fingerprints services using the transport selected in config. New callers should prefer RunTCPServiceFingerprint or RunUDPServiceFingerprint directly.
func RunTCPServiceFingerprint ¶ added in v0.12.0
func RunTCPServiceFingerprint(ctx context.Context, config discoverfern.DiscoverServiceConfig) (*discoverfern.DiscoverServiceReport, error)
RunTCPServiceFingerprint fingerprints the TCP service at target:port.
- If stealth mode is enabled, use targeted fingerprinting for the specified service type.
- Otherwise, for TCP (port-priority system): Phase 1: Run custom fingerprinters ONLY if port matches their default ports Phase 2: If nothing found, run the remaining plugins on non-default ports.
func RunUDPServiceFingerprint ¶ added in v0.12.0
func RunUDPServiceFingerprint(ctx context.Context, config discoverfern.DiscoverServiceConfig) (*discoverfern.DiscoverServiceReport, error)
RunUDPServiceFingerprint scans common UDP ports on one or more target hosts.
Types ¶
type Fingerprinter ¶
type Fingerprinter interface {
Name() string
// An empty DefaultPorts list makes the plugin applicable on every TCP port.
DefaultPorts() []int
Detect(context.Context, net.IP, int, string, int) (*discover.ServiceDetails, error)
}
Fingerprinter detects one application protocol at an endpoint.
Click to show internal directories.
Click to hide internal directories.