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 |
Click to show internal directories.
Click to hide internal directories.