clients

package
v2.4.1 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: GPL-3.0 Imports: 1 Imported by: 0

Documentation

Overview

Package clients holds the interface for network communications

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	// Authenticate executes the configured authentication method sending the necessary messages to the server to
	// complete authentication. Function takes in a Base message for when the server returns information to continue the
	// process or needs to re-authenticate.
	Authenticate(msg messages.Base) error
	// Get retrieve's a client's configured option
	Get(key string) string
	// Initial contains all the steps the agent and/or the communication profile need to take to set up and initiate
	// communication with server
	Initial() error
	// Listen is used by synchronous Agents to consistently listen for new incoming messages that aren't the result of a check in
	Listen() ([]messages.Base, error)
	// Send takes in a Base message, transforms it according to the configured encoders/encrypters, and sends the message
	// at the infrastructure layer according to the client's protocol
	Send(base messages.Base) ([]messages.Base, error)
	// Set updates a client's configured options
	Set(key string, value string) error
	// Synchronous identifies if the client connection is synchronous or asynchronous, used to determine how and when messages
	// can be sent/received.
	Synchronous() bool
}

Client is an interface definition a client must implement to interact with a remote server

type Repository

type Repository interface {
	// Add stores the Client structure
	Add(client Client)
	// Get returns a copy of the current Client structure
	Get() Client
	// SetJA3 reconfigures the client's TLS fingerprint to match the provided JA3 string
	SetJA3(ja3 string) error
	// SetListener changes the client's upstream listener ID, a UUID, to the value provided
	SetListener(listener string) error
	// SetPadding changes the maximum amount of random padding added to each outgoing message
	SetPadding(padding string) error
	// SetParrot reconfigures the client's HTTP configuration to match the provided browser
	SetParrot(parrot string) error
}

Directories

Path Synopsis
Package http implements the Client interface and contains the structures and functions to communicate to the Merlin server over the HTTP protocol
Package http implements the Client interface and contains the structures and functions to communicate to the Merlin server over the HTTP protocol
Package memory is an in-memory repository for storing and managing Merlin clients used to communicate with the Merlin server or for peer-to-peer Agent communications
Package memory is an in-memory repository for storing and managing Merlin clients used to communicate with the Merlin server or for peer-to-peer Agent communications
Package smb contains a configurable client used for Windows-based SMB peer-to-peer Agent communications
Package smb contains a configurable client used for Windows-based SMB peer-to-peer Agent communications
Package tcp contains a configurable client used for TCP-based peer-to-peer Agent communications
Package tcp contains a configurable client used for TCP-based peer-to-peer Agent communications
Package udp contains a configurable client used for UDP-based peer-to-peer Agent communications
Package udp contains a configurable client used for UDP-based peer-to-peer Agent communications

Jump to

Keyboard shortcuts

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