Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Operation NameDescription

ACKNOWLEDGE

Operation used by MiNiFi C2 agents to acknowledge the receipt and execution of a C2 server requested operation

CLEAR

Clears flow connection queues or repositories on the C2 agent
CONSUME

Consumes a heartbeat with an agent to avoid sending from other agents. Allows multiplexing responses from a

condensed agent response.

DESCRIBE

Currently UnusedEXECUTEExecutes commands on the agent's operating system. This feature may be disabled for any agent.

HEARTBEAT

Heartbeat provides status and operational capabilities to C2 server(s)
PAUSEPauses the execution of flows on the C2 agent
REPLICATEReplicates agent state between agents, with the ability to place agents in standby mode until they are needed.

RESTART

Restarts C2 agents

RESTART

Restarts C2 agents
RESUMEResumes the execution RESUMEResumes the execution of flows on the C2 agent

START

Starts components within the C2 agents
STOP Stops components within the C2 agentSUBSCRIBEAllows servers or agents to subscribe to an agent's heartbeat , requesting specific information for the next
heartbeat.
TRANSFER

Transfers an object between the C2 agent and C2 designator.

UPDATEUpdates components of the C2 agent or the flow configuration.

...

C2 Failure Policies

C2 Update Policies

Operations and their operands for agents

...

Operation NameDescriptionoperand/namecontent/args

ACKNOWLEDGE

Operation used by MiNiFi C2 agents to acknowledge the receipt and execution of a C2 server requested operation
N/A
CLEARClear repositoriesrepositoriesN/A

CLEAR

Clears the connection queuesconnection

connection1=<connection name>, connection2=<connection 2>  ...


Will also accept a list

<connection name1>,<connection name2>, ...

CLEAR
CONSUMEConsumes a heartbeat within an agent to avoid sending from other agentsN/AN/A
Clears component statecorecomponentstate

DESCRIBE

Return metricsmetricsmetricsClass=<metric class to obtain>
DESCRIBEReturn configuration optionsN/AconfigurationN/A
DESCRIBEReturn agent manifestN/AmanifestN/A
DESCRIBEpolicy events – Based on the defined policies
EXECUTEExecutes commands per the agent's defined policiescommandarguments
Return backtraces from the state monitorjstackN/A
DESCRIBEReturn all core component statescorecomponentstateN/A
HEARTBEATHEARTBEATheartbeat operation – may contain embedded heartbeats.HEARTBEATN/AN/Anonce of combined heartbeats
PAUSEPauses C2 agentsN/AN/AREPLICATEReplicates an Agent's state to another agent; with standby true the replicant is paused and awaits restart.agentstandby=true/falseREPLICATETells agents to replicate state to nearby agents
server

RESTART

Restarts C2 agentsN/AN/A
RESUMEResumes C2 agentsN/AN/A

START

Starts components within the C2 agents

C2

FlowController

<name of component to start>

N/A
STOPStops components within the C2 agent

C2

FlowController

<name of component to stop>

N/ASUBSCRIBE

Subscripts a C2 server to internal respondables ( Metrics , configuration, and policy/audit events ) .

These will be placed into the heartbeat
enable/disablesubscribe=metrics, subscribe=configuration, subscribe=auditevents
TRANSFERTransfers an object between the C2 agent and C2 designator.N/AdebugN/A

UPDATE

Update flowconfigurationlocation=<URL to updated flow file>
UPDATEUpdate c2 propertiesc2

configkey1=configvalue1, configkey2=configvalue2 ...

*configkey1 is a configuration option that is updated and its new value

UPDATEUpdate configuration options defined within agent policies
UPDATEUpdate agentagent

location=<URL to agent binary or diff>

partial=true/false ( optional)

Operations and their operands for agents (Version 3)

...

ACKNOWLEDGE

...

CLEAR

...

connection1=<connection name>, connection2=<connection 2>  ...

Will also accept a list

<connection name1>,<connection name2>, ...

...

DESCRIBE

...

UPDATE

...

configkey1=configvalue1, configkey2=configvalue2 ...

*configkey1 is a configuration option that is updated and its new value

...

RESTART

...

START

...

Operations and their operands for agents (Version 2)

...

ACKNOWLEDGE

...

CLEAR

...

connection1=<connection name>, connection2=<connection 2>  ...

Will also accept a list

<connection name1>,<connection name2>, ...

...

DESCRIBE

...

UPDATE

...

configkey1=configvalue1, configkey2=configvalue2 ...

*configkey1 is a configuration option that is updated and its new value

propertypropertiespropertykey1=propertyvalue1, propertykey2=propertyvalue2 ...

...

RESTART

...

START

...

Operations and their operands for agents (Version 1)

location=<URL to updated flow file>
Operation NameDescriptionoperand/namecontent/args

UPDATE

Update flowconfiguration

Future Work

Future architecture of C2 should be open to the discussion of distributed architectures and multiple heads ( i.e. in a client server multiple client/servers in the case where we can talk to geographically distributed agents ). 

...