Documentation
¶
Overview ¶
Package smb contains a configurable client used for Windows-based SMB peer-to-peer Agent communications
Index ¶
- type Client
- func (client *Client) Authenticate(messages.Base) (err error)
- func (client *Client) Get(string) string
- func (client *Client) Initial() error
- func (client *Client) Listen() (returnMessages []messages.Base, err error)
- func (client *Client) Send(messages.Base) (returnMessages []messages.Base, err error)
- func (client *Client) Set(key string, value string) error
- func (client *Client) Synchronous() bool
- type Config
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
}
Client is a type of MerlinClient that is used to send and receive Merlin messages from the Merlin server
func (*Client) Authenticate ¶
Authenticate is the top-level function used to authenticate an agent to server using a specific authentication protocol The function must take in a Base message for when the C2 server requests re-authentication through a message
func (*Client) Initial ¶
Initial executes the specific steps required to establish a connection with the C2 server and checkin or register an agent
func (*Client) Listen ¶
Listen waits for incoming data on an established TCP connection, deconstructs the data into a Base messages, and returns them
func (*Client) Send ¶
Send takes in a Merlin message structure, performs any encoding or encryption, converts it to a delegate and writes it to the output stream. This function DOES not wait or listen for response messages.
func (*Client) Synchronous ¶
Synchronous identifies if the client connection is synchronous or asynchronous, used to determine how and when messages can be sent/received.
type Config ¶
type Config struct {
Address []string // Address the interface and port the agent will bind to
AgentID uuid.UUID // AgentID the Agent's UUID
AuthPackage string // AuthPackage the type of authentication the agent should use when communicating with the server
ListenerID uuid.UUID // ListenerID the UUID of the listener that this Agent is configured to communicate with
Padding string // Padding the max amount of data that will be randomly selected and appended to every message
PSK string // PSK the Pre-Shared Key secret the agent will use to start authentication
Transformers string // Transformers is an ordered comma seperated list of transforms (encoding/encryption) to apply when constructing a message
Mode string // Mode the type of client or communication mode (e.g., BIND or REVERSE)
}
Config is a structure used to pass in all necessary information to instantiate a new Client