Documentation ¶
Index ¶
- Variables
- func GetAgentFieldValue(agentID uuid.UUID, field string) (string, error)
- func GetEncryptionKey(agentID uuid.UUID) ([]byte, error)
- func GetLifetime(agentID uuid.UUID) (time.Duration, error)
- func KeyExchange(m messages.Base) (messages.Base, error)
- func RemoveAgent(agentID uuid.UUID) error
- func SetMaxRetry(agentID uuid.UUID, retry string) error
- func SetWaitTime(agentID uuid.UUID, wait string) error
- type Agent
Constants ¶
This section is empty.
Variables ¶
var Agents = make(map[uuid.UUID]*Agent)
Agents contains all of the instantiated agent object that are accessed by other modules
Functions ¶
func GetAgentFieldValue ¶
GetAgentFieldValue returns a string value for the field value belonging to the specified Agent
func GetEncryptionKey ¶
GetEncryptionKey retrieves the per-agent payload encryption key used to decrypt messages for any protocol
func GetLifetime ¶
GetLifetime returns the amount an agent could live without successfully communicating with the server
func KeyExchange ¶
KeyExchange is used to exchange public keys between the server and agent
func RemoveAgent ¶
func RemoveAgent(agentID uuid.UUID) error
RemoveAgent deletes the agent object from Agents map by its ID
func SetMaxRetry ¶
SetMaxRetry updates an Agent's MaxRetry limit
func SetWaitTime ¶
SetWaitTime updates an Agent's sleep amount or Wait Time
Types ¶
type Agent ¶
type Agent struct { ID uuid.UUID Platform string Architecture string UserName string UserGUID string HostName string Ips []string Pid int InitialCheckIn time.Time StatusCheckIn time.Time Version string Build string WaitTime string PaddingMax int MaxRetry int FailedCheckin int Skew int64 Proto string KillDate int64 RSAKeys *rsa.PrivateKey // RSA Private/Public key pair; Private key used to decrypt messages PublicKey rsa.PublicKey // Public key used to encrypt messages Secret []byte // secret is used to perform symmetric encryption operations OPAQUE *opaque.Server // Holds information about OPAQUE Registration and Authentication JA3 string // The JA3 signature applied to the agent's TLS client // contains filtered or unexported fields }
Agent is a server side structure that holds information about a Merlin Agent
func New ¶
New creates a new Agent and returns the object but does not add it to the global agents map
func (*Agent) UpdateInfo ¶
UpdateInfo is used to update an agent's information with the passed in message data