Adversaries may use an OSI non-application layer protocol for communication between host and C2 server or among infected hosts within a network. The list of possible protocols is extensive.[1] Specific examples include use of network layer protocols, such as the Internet Control Message Protocol (ICMP), transport layer protocols, such as the User Datagram Protocol (UDP), session layer protocols, such as Socket Secure (SOCKS), as well as redirected/tunneled protocols, such as Serial over LAN (SOL).
ICMP communication between hosts is one example.[2] Because ICMP is part of the Internet Protocol Suite, it is required to be implemented by all IP-compatible hosts.[3] However, it is not as commonly monitored as other Internet Protocols such as TCP or UDP and may be used by adversaries to hide communications.
ID | Name | Description |
---|---|---|
C0034 | 2022 Ukraine Electric Power Attack |
During the 2022 Ukraine Electric Power Attack, Sandworm Team proxied C2 communications within a TLS-based tunnel.[4] |
S0504 | Anchor | |
G0022 | APT3 |
An APT3 downloader establishes SOCKS5 connections for its initial C2.[6] |
S0456 | Aria-body | |
S1029 | AuTo Stealer |
AuTo Stealer can use TCP to communicate with command and control servers.[8] |
G0135 | BackdoorDiplomacy |
BackdoorDiplomacy has used EarthWorm for network tunneling with a SOCKS5 server and port transfer functionalities.[9] |
S0234 | Bandook | |
S0268 | Bisonal | |
G1002 | BITTER | |
S1063 | Brute Ratel C4 |
Brute Ratel C4 has the ability to use TCP for external C2.[13] |
S0043 | BUBBLEWRAP |
BUBBLEWRAP can communicate using SOCKS.[14] |
C0021 | C0021 |
During C0021, the threat actors used TCP for some C2 communications.[15] |
S0335 | Carbon | |
S0660 | Clambling |
Clambling has the ability to use TCP and UDP for communication.[17] |
S1105 | COATHANGER |
COATHANGER uses ICMP for transmitting configuration information to and from its command and control server.[18] |
S0154 | Cobalt Strike |
Cobalt Strike can be configured to use TCP, ICMP, and UDP for C2 communications.[19][20] |
S0115 | Crimson | |
S0498 | Cryptoistic |
Cryptoistic can use TCP in communications with C2.[23] |
S1153 | Cuckoo Stealer |
Cuckoo Stealer can use sockets for communications to its C2 server.[24] |
C0029 | Cutting Edge |
During Cutting Edge, threat actors used the Unix socket and a reverse TCP shell for C2 communications.[25] |
S0021 | Derusbi |
Derusbi binds to a raw socket on a random source port between 31800 and 31900 for C2.[26] |
S0502 | Drovorub |
Drovorub can use TCP to communicate between its agent and client modules.[27] |
G1003 | Ember Bear |
Ember Bear uses socket-based tunneling utilities for command and control purposes such as NetCat and Go Simple Tunnel (GOST). These tunnels are used to push interactive command prompts over the created sockets.[28] Ember Bear has also used reverse TCP connections from Meterpreter installations to communicate back with C2 infrastructure.[29] |
S0076 | FakeM |
Some variants of FakeM use SSL to communicate with C2 servers.[30] |
G0037 | FIN6 | |
S1144 | FRP |
FRP can communicate over TCP, TCP stream multiplexing, KERN Communications Protocol (KCP), QUIC, and UDP.[32] |
S1044 | FunnyDream |
FunnyDream can communicate with C2 over TCP and UDP.[33] |
S0666 | Gelsemium |
Gelsemium has the ability to use TCP and UDP in C2 communications.[34] |
S0032 | gh0st RAT |
gh0st RAT has used an encrypted protocol within TCP segments to communicate with the C2.[35] |
G0125 | HAFNIUM | |
S0394 | HiddenWasp |
HiddenWasp communicates with a simple network protocol over TCP.[37] |
S0260 | InvisiMole |
InvisiMole has used TCP to download additional modules.[38] |
S1051 | KEYPLUG |
KEYPLUG can use TCP and KCP (KERN Communications Protocol) over UDP for C2 communication.[39] |
C0035 | KV Botnet Activity |
KV Botnet Activity command and control traffic uses a non-standard, likely custom protocol for communication.[40] |
S1121 | LITTLELAMB.WOOLTEA |
LITTLELAMB.WOOLTEA can function as a stand-alone backdoor communicating over the |
S0582 | LookBack |
LookBack uses a custom binary protocol over sockets for C2 communications.[41] |
S1142 | LunarMail |
LunarMail can ping a specific C2 URL with the ID of a victim machine in the subdomain.[42] |
S1016 | MacMa |
MacMa has used a custom JSON-based protocol for its C&C communications.[43] |
S1060 | Mafalda | |
G1013 | Metador | |
S1059 | metaMain |
metaMain can establish an indirect and raw TCP socket-based connection to the C2 server.[44][45] |
S0455 | Metamorfo | |
S0084 | Mis-Type |
Mis-Type network traffic can communicate over a raw socket.[47] |
S0083 | Misdat | |
S0149 | MoonWind |
MoonWind completes network communication via raw sockets.[48] |
S0699 | Mythic | |
S0630 | Nebulae | |
S0034 | NETEAGLE |
If NETEAGLE does not detect a proxy configured on the infected machine, it will send beacons via UDP/6000. Also, after retrieving a C2 IP address and Port Number, NETEAGLE will initiate a TCP connection to this socket. The ensuing connection is a plaintext C2 channel in which commands are specified by DWORDs.[51] |
S0198 | NETWIRE | |
S1100 | Ninja |
Ninja can forward TCP packets between the C2 and a remote host.[54][55] |
C0014 | Operation Wocao |
During Operation Wocao, threat actors used a custom protocol for command and control.[56] |
S0352 | OSX_OCEANLOTUS.D |
OSX_OCEANLOTUS.D has used a custom binary protocol over port 443 for C2 traffic.[57] |
S0556 | Pay2Key |
Pay2Key has sent its public key to the C2 server over TCP.[58] |
S0587 | Penquin |
The Penquin C2 mechanism is based on TCP and UDP packets.[59][60] |
S0158 | PHOREAL | |
S1031 | PingPull |
PingPull variants have the ability to communicate with C2 servers using ICMP or TCP.[62] |
S0501 | PipeMon |
The PipeMon communication module can use a custom protocol based on TLS over TCP.[63] |
G0068 | PLATINUM |
PLATINUM has used the Intel® Active Management Technology (AMT) Serial-over-LAN (SOL) channel for command and control.[64] |
S0013 | PlugX |
PlugX can be configured to use raw TCP or UDP for command and control.[65] |
S0650 | QakBot |
QakBot has the ability use TCP to send or receive C2 packets.[66] |
S0262 | QuasarRAT | |
S1084 | QUIETEXIT |
QUIETEXIT can establish a TCP connection as part of its initial connection to the C2.[68] |
S0629 | RainyDay | |
S0055 | RARSTONE |
RARSTONE uses SSL to encrypt its communication with its C2 server.[69] |
S0662 | RCSession |
RCSession has the ability to use TCP and UDP in C2 communications.[17][70] |
S0172 | Reaver | |
S0019 | Regin |
The Regin malware platform can use ICMP to communicate between infected computers.[72] |
S0125 | Remsec |
Remsec is capable of using ICMP, TCP, and UDP for C2.[73][74] |
S1078 | RotaJakiro |
RotaJakiro uses a custom binary protocol using a type, length, value format over TCP.[75] |
S1073 | Royal |
Royal establishes a TCP socket for C2 communication using the API |
S1099 | Samurai |
Samurai can use a proxy module to forward TCP packets to external hosts.[54] |
S1085 | Sardonic |
Sardonic can communicate with actor-controlled C2 servers by using a custom little-endian binary protocol.[77] |
S0461 | SDBbot |
SDBbot has the ability to communicate with C2 with TCP over port 443.[78] |
S0596 | ShadowPad | |
S0615 | SombRAT |
SombRAT has the ability to use TCP sockets to send data and ICMP to ping the C2 server.[80][81] |
S1140 | Spica |
Spica can use JSON over WebSockets for C2 communications.[82] |
S1049 | SUGARUSH | |
S0011 | Taidoor | |
G1022 | ToddyCat |
ToddyCat has used a passive backdoor that receives commands with UDP packets.[55] |
S0436 | TSCookie |
TSCookie can use ICMP to receive information on the destination server.[85] |
S0221 | Umbreon |
Umbreon provides access to the system via SSH or any other protocol that uses PAM to authenticate.[86] |
S0022 | Uroburos |
Uroburos can communicate through custom methodologies for UDP, ICMP, and TCP that use distinct sessions to ride over the legitimate protocols.[87] |
C0039 | Versa Director Zero Day Exploitation |
Versa Director Zero Day Exploitation used a non-standard TCP session to initialize communication prior to establishing HTTPS command and control.[88] |
S0670 | WarzoneRAT |
WarzoneRAT can communicate with its C2 server via TCP over port 5200.[89] |
S0515 | WellMail | |
S0155 | WINDSHIELD |
WINDSHIELD C2 traffic can communicate via TCP raw sockets.[61] |
S0430 | Winnti for Linux |
Winnti for Linux has used ICMP, custom TCP, and UDP in outbound communications.[91] |
S0141 | Winnti for Windows |
Winnti for Windows can communicate using custom TCP.[92] |
S1114 | ZIPLINE |
ZIPLINE can communicate with C2 using a custom binary protocol.[93] |
ID | Mitigation | Description |
---|---|---|
M1037 | Filter Network Traffic |
Filter network traffic to prevent use of protocols across the network boundary that are unnecessary. |
M1031 | Network Intrusion Prevention |
Network intrusion detection and prevention systems that use network signatures to identify traffic for specific adversary malware can be used to mitigate activity at the network level. |
M1030 | Network Segmentation |
Properly configure firewalls and proxies to limit outgoing traffic to only necessary ports and through proper network gateway systems. Also ensure hosts are only provisioned to communicate over authorized interfaces. |
ID | Data Source | Data Component | Detects |
---|---|---|---|
DS0029 | Network Traffic | Network Traffic Content |
Monitor and analyze traffic patterns and packet inspection associated to protocol(s) that do not follow the expected protocol standards and traffic flows (e.g extraneous packets that do not belong to established flows, gratuitous or anomalous traffic patterns, anomalous syntax, or structure). Consider correlation with process monitoring and command line to detect anomalous processes execution and command line arguments associated to traffic patterns (e.g. monitor anomalies in use of files that do not normally initiate connections for respective protocol(s)). |
Network Traffic Flow |
Monitor network data for uncommon data flows. Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. |