ssh

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2026 License: MIT Imports: 11 Imported by: 6

Documentation

Overview

Package ssh implements a scan module for SSH host fingerprinting and authentication testing.

Index

Constants

View Source
const Label = "Ssh"

Variables

This section is empty.

Functions

func CheckSetup

func CheckSetup() error

CheckSetup checks whether Setup() executed accordingly. Scan arguments should be checked by the scanner.

func Setup

func Setup(logger utils.Logger) error

Setup configures the environment accordingly, if the scan module has some special requirements. A successful setup is required before a scan can be started.

Types

type FakeClient

type FakeClient struct{}

FakeClient is a stub GSSAPI client used to probe for GSSAPI authentication support during SSH scanning.

func (*FakeClient) DeleteSecContext

func (f *FakeClient) DeleteSecContext() error

func (*FakeClient) GetMIC

func (f *FakeClient) GetMIC(micField []byte) ([]byte, error)

func (*FakeClient) InitSecContext

func (f *FakeClient) InitSecContext(target string, token []byte, isGSSDelegCreds bool) (outputToken []byte, needContinue bool, err error)

type Result

type Result struct {
	Data      *ResultData
	Status    string // Final scan status (success or graceful error). Should be stored along with the scan results.
	Exception bool   // Indicates if something went wrong badly and results shall be discarded. This should never be

}

type ResultData

type ResultData struct {
	AuthenticationMechanisms   []string
	KeyExchangeAlgorithms      []string
	ServerKeyAlgorithms        []string
	ServerEncryptionAlgorithms []string
	ServerMacAlgorithms        []string
	ServerCompressAlgorithms   []string
	UsesGuessedKeyExchange     bool
	ProtocolVersion            string
}

type Scanner

type Scanner struct {
	Label    string
	Started  time.Time
	Finished time.Time
	// contains filtered or unexported fields
}

func NewScanner

func NewScanner(
	logger utils.Logger,
	target string,
	port int,
	dialTimeout time.Duration,
) (*Scanner, error)

func (*Scanner) Run

func (s *Scanner) Run(timeout time.Duration) (res *Result)

Run starts scan execution. This must either be executed as a goroutine, or another thread must be active listening on the scan's result channel, in order to avoid a deadlock situation.

func (*Scanner) SetContext added in v1.1.0

func (s *Scanner) SetContext(ctx context.Context)

SetContext can be used to pass an existing context from outside. If timeout is supplied later when calling Run() the external context and the deadline context will be combined. Once set, the context cannot be changed anymore, because it might have been wrapped internally already.

Jump to

Keyboard shortcuts

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