-
Notifications
You must be signed in to change notification settings - Fork 286
Glossary
Janusz Szmigielski edited this page Aug 30, 2019
·
26 revisions
-
Relays- stand-alone pieces of C3 Networks. They communicate usingInterfaces. There are two types ofRelays:Gate Relays(orGateways) andNode Relays. -
Gateway- a specialRelaythat controls one C3 Network. A C3 Network cannot operate without an operationalGateway. TheGatewayis the bridge back to the attacker’s infrastructure fromNode Relays. It's also responsible for communicating back to a third-party C2 server (such as Cobalt Strike’s Teamserver).Gatewaysshould always be hosted within attacker-controlled infrastructure. -
Node Relay- an executable to be launched on a compromised host.Node Relayscommunicate throughDeviceseither between one another or back to theGateway. -
Interface- a high level name given to anything that facilitates the sending and receiving of data within a C3 network. They are always connected to someRelayand their purpose is to extendRelay'scapability. Currently there are three types ofInterfaces:Channels,PeripheralsandConnectors. -
Devices- common name forChannelsandPeripherals. This abstraction is created to generalizeInterfacesthat able to be used onNode Relays. -
Channel- anInterfaceused to transport data between twoRelays.Channelsworks in pairs and do not support the one-to-many transmission (seeNegotiation Channels). -
Negotiation Channel- a specialChannelcapable of establishing regularChannelconnections with multipleRelays. The negotiation process is fully automatic.Negotiation Channelssupport only negotiation protocol and cannot be used in any other transmission. -
Gateway Return Channel (GRC)- the configuredChannelthat aRelaywill use to send data back to theGateway.GRCmay be a route through anotherRelay. The firstChannel(initial) on aNode Relayis automatically set asGRCfor thatNode Relay. -
Peripherals- a third-party implant of a command and control framework.Peripheralstalk to their native controllers via aController. For example, Cobalt Strike’s SMB beacon. -
Connectors- an integration with a third-party command and control framework. For instance the ‘External C2’ interface exposed by Cobalt Strike’s Teamserver through the externalc2_start command. -
Binders- common name forPeripheralsandConnectors. -
Device ID- a dynamic ID that uniquely addresses oneDeviceon aRelay. -
Agent ID- a dynamic ID that uniquely addresses aNode Relay.Node Relayinstantiated from the same executable will have differentAgent IDs. -
Build ID- a static ID that is built into everyRelay. Stays unchanged over reboots. Can be used to to block compromisedNode Relays. -
Route ID- a pair of anAgent IDand aDevice ID. Used to describe one "path" to aNode Relay(Node Relaysmight be reachable via manyRoutes). -
Routes- a "path" to aNode Relay. EveryRelaykeeps a table of all of their childRelays(and grandchildren, grand-grandchildren, and so on) along withChannelDevice IDsused to reach that particularRelay(seeRoute ID). When a packet from theGatewayarrives to aNode Relay, routing table is used to choose appropriateChannelto send the packet through to the recipient. -
Update Delay Jitter- delay between successive updates of anInterface(in case ofChannels- calls to OnReceiveFromChannel method). Can be set to be randomized in provided range of time values.