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.