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.
In ESXi environments, adversaries may leverage the Virtual Machine Communication Interface (VMCI) for communication between guest virtual machines and the ESXi host. This traffic is similar to client-server communications on traditional network sockets but is localized to the physical machine running the ESXi host, meaning it does not traverse external networks (routers, switches). This results in communications that are invisible to external monitoring and standard networking tools like tcpdump, netstat, nmap, and Wireshark. By adding a VMCI backdoor to a compromised ESXi host, adversaries may persistently regain access from any guest VM to the compromised ESXi host’s backdoor, regardless of network segmentation or firewall rules in place.[4]
| 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.[5] |
| S0504 | Anchor | |
| G0022 | APT3 |
An APT3 downloader establishes SOCKS5 connections for its initial C2.[7] |
| S0456 | Aria-body | |
| S1029 | AuTo Stealer |
AuTo Stealer can use TCP to communicate with command and control servers.[9] |
| G0135 | BackdoorDiplomacy |
BackdoorDiplomacy has used EarthWorm for network tunneling with a SOCKS5 server and port transfer functionalities.[10] |
| S0234 | Bandook | |
| S0268 | Bisonal | |
| G1002 | BITTER | |
| S1063 | Brute Ratel C4 |
Brute Ratel C4 has the ability to use TCP for external C2.[14] |
| S0043 | BUBBLEWRAP |
BUBBLEWRAP can communicate using SOCKS.[15] |
| C0021 | C0021 |
During C0021, the threat actors used TCP for some C2 communications.[16] |
| S0335 | Carbon | |
| S1204 | cd00r |
cd00r can monitor incoming C2 communications sent over TCP to the compromised host.[18][19] |
| S0660 | Clambling |
Clambling has the ability to use TCP and UDP for communication.[20] |
| S1105 | COATHANGER |
COATHANGER uses ICMP for transmitting configuration information to and from its command and control server.[21] |
| S0154 | Cobalt Strike |
Cobalt Strike can be configured to use TCP, ICMP, and UDP for C2 communications.[22][23] |
| S0115 | Crimson | |
| S0498 | Cryptoistic |
Cryptoistic can use TCP in communications with C2.[26] |
| S1153 | Cuckoo Stealer |
Cuckoo Stealer can use sockets for communications to its C2 server.[27] |
| C0029 | Cutting Edge |
During Cutting Edge, threat actors used the Unix socket and a reverse TCP shell for C2 communications.[28] |
| S0021 | Derusbi |
Derusbi binds to a raw socket on a random source port between 31800 and 31900 for C2.[29] |
| S0502 | Drovorub |
Drovorub can use TCP to communicate between its agent and client modules.[30] |
| 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.[31] Ember Bear has also used reverse TCP connections from Meterpreter installations to communicate back with C2 infrastructure.[32] |
| S0076 | FakeM |
Some variants of FakeM use SSL to communicate with C2 servers.[33] |
| G0037 | FIN6 | |
| S1144 | FRP |
FRP can communicate over TCP, TCP stream multiplexing, KERN Communications Protocol (KCP), QUIC, and UDP.[35] |
| S1044 | FunnyDream |
FunnyDream can communicate with C2 over TCP and UDP.[36] |
| G0047 | Gamaredon Group |
Gamaredon Group has used SOCKS5 over port 9050 for C2 communication.[37] |
| S0666 | Gelsemium |
Gelsemium has the ability to use TCP and UDP in C2 communications.[38] |
| S0032 | gh0st RAT |
gh0st RAT has used an encrypted protocol within TCP segments to communicate with the C2.[39] |
| G0125 | HAFNIUM | |
| S0394 | HiddenWasp |
HiddenWasp communicates with a simple network protocol over TCP.[41] |
| S1245 | InvisibleFerret |
InvisibleFerret has established a connection with the C2 server over TCP traffic.[42] InvisibleFerret has also created a TCP reverse shell communicating via a socket connection over ports 1245, 80, 2245, 3001, and 5000.[43] |
| S0260 | InvisiMole |
InvisiMole has used TCP to download additional modules.[44] |
| S1203 | J-magic |
J-magic can monitor incoming C2 communications sent over TCP to the compromised host.[19] |
| S1051 | KEYPLUG |
KEYPLUG can use TCP and KCP (KERN Communications Protocol) over UDP for C2 communication.[45] |
| C0035 | KV Botnet Activity |
KV Botnet Activity command and control traffic uses a non-standard, likely custom protocol for communication.[46] |
| S1121 | LITTLELAMB.WOOLTEA |
LITTLELAMB.WOOLTEA can function as a stand-alone backdoor communicating over the |
| S0681 | Lizar |
Lizar has used a raw TCP connection to communicate with the C2 server.[47] |
| S0582 | LookBack |
LookBack uses a custom binary protocol over sockets for C2 communications.[48] |
| S1142 | LunarMail |
LunarMail can ping a specific C2 URL with the ID of a victim machine in the subdomain.[49] |
| S1016 | MacMa |
MacMa has used a custom JSON-based protocol for its C&C communications.[50] |
| S1060 | Mafalda | |
| G1013 | Metador | |
| S1059 | metaMain |
metaMain can establish an indirect and raw TCP socket-based connection to the C2 server.[51][52] |
| S0455 | Metamorfo | |
| S0084 | Mis-Type |
Mis-Type network traffic can communicate over a raw socket.[54] |
| S0083 | Misdat | |
| S0149 | MoonWind |
MoonWind completes network communication via raw sockets.[55] |
| S1221 | MOPSLED |
MOPSLED can use a custom binary protocol over TCP for C2 communication.[56] |
| G0129 | Mustang Panda |
Mustang Panda has utilized TCP-based reverse shells using cmd.exe.[57] |
| S0699 | Mythic | |
| S0630 | Nebulae | |
| S1189 | Neo-reGeorg |
Neo-reGeorg can create multiple TCP connections for a single session.[60] |
| 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.[61] |
| S0198 | NETWIRE | |
| S1100 | Ninja |
Ninja can forward TCP packets between the C2 and a remote host.[64][65] |
| C0014 | Operation Wocao |
During Operation Wocao, threat actors used a custom protocol for command and control.[66] |
| S0352 | OSX_OCEANLOTUS.D |
OSX_OCEANLOTUS.D has used a custom binary protocol over port 443 for C2 traffic.[67] |
| S0556 | Pay2Key |
Pay2Key has sent its public key to the C2 server over TCP.[68] |
| S0587 | Penquin |
The Penquin C2 mechanism is based on TCP and UDP packets.[69][70] |
| S0158 | PHOREAL | |
| S1031 | PingPull |
PingPull variants have the ability to communicate with C2 servers using ICMP or TCP.[72] |
| S0501 | PipeMon |
The PipeMon communication module can use a custom protocol based on TLS over TCP.[73] |
| G0068 | PLATINUM |
PLATINUM has used the Intel® Active Management Technology (AMT) Serial-over-LAN (SOL) channel for command and control.[74] |
| S0013 | PlugX |
PlugX can be configured to use raw TCP or UDP for command and control.[75][76] |
| S0650 | QakBot |
QakBot has the ability use TCP to send or receive C2 packets.[77] |
| S0262 | QuasarRAT | |
| S1084 | QUIETEXIT |
QUIETEXIT can establish a TCP connection as part of its initial connection to the C2.[79] |
| S0629 | RainyDay | |
| S0055 | RARSTONE |
RARSTONE uses SSL to encrypt its communication with its C2 server.[80] |
| S0662 | RCSession |
RCSession has the ability to use TCP and UDP in C2 communications.[20][81] |
| S0172 | Reaver | |
| C0047 | RedDelta Modified PlugX Infection Chain Operations |
Mustang Panda communicated over TCP 5000 from adversary administrative servers to adversary command and control nodes during RedDelta Modified PlugX Infection Chain Operations.[83] |
| C0056 | RedPenguin |
During RedPenguin, UNC3886 leveraged malware that used UDP and TCP sockets for C2.[84][85][86] |
| S1187 | reGeorg | |
| S0019 | Regin |
The Regin malware platform can use ICMP to communicate between infected computers.[88] |
| S0125 | Remsec |
Remsec is capable of using ICMP, TCP, and UDP for C2.[89][90] |
| S1219 | REPTILE | |
| S1078 | RotaJakiro |
RotaJakiro uses a custom binary protocol using a type, length, value format over TCP.[92] |
| 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.[64] |
| S1085 | Sardonic |
Sardonic can communicate with actor-controlled C2 servers by using a custom little-endian binary protocol.[94] |
| S0461 | SDBbot |
SDBbot has the ability to communicate with C2 with TCP over port 443.[95] |
| S0596 | ShadowPad | |
| S1163 | SnappyTCP |
SnappyTCP spawns a reverse TCP shell following an HTTP-based negotiation.[97] |
| S0615 | SombRAT |
SombRAT has the ability to use TCP sockets to send data and ICMP to ping the C2 server.[98][99] |
| S1140 | Spica |
Spica can use JSON over WebSockets for C2 communications.[100] |
| S1227 | StarProxy |
StarProxy has used TCP for C2 communications to target IPs or domains. StarProxy contained code to support both UDP and TCP connections.[101] |
| S1200 | StealBit |
StealBit can use the Windows Socket networking library to communicate with attacker-controlled endpoints.[102] |
| S1049 | SUGARUSH | |
| S0011 | Taidoor | |
| G1022 | ToddyCat |
ToddyCat has used a passive backdoor that receives commands with UDP packets.[65] |
| S1239 | TONESHELL | |
| S0436 | TSCookie |
TSCookie can use ICMP to receive information on the destination server.[106] |
| S0221 | Umbreon |
Umbreon provides access to the system via SSH or any other protocol that uses PAM to authenticate.[107] |
| G1048 | UNC3886 |
UNC3886 has deployed backdoors that communicate over TCP to compromised network devices and over VMCI to ESXi hosts.[4][56][91] |
| S0022 | Uroburos |
Uroburos can communicate through custom methodologies for UDP, ICMP, and TCP that use distinct sessions to ride over the legitimate protocols.[108] |
| 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.[109] |
| S0670 | WarzoneRAT |
WarzoneRAT can communicate with its C2 server via TCP over port 5200.[110] |
| S0515 | WellMail | |
| S0155 | WINDSHIELD |
WINDSHIELD C2 traffic can communicate via TCP raw sockets.[71] |
| S0430 | Winnti for Linux |
Winnti for Linux has used ICMP, custom TCP, and UDP in outbound communications.[112] |
| S0141 | Winnti for Windows |
Winnti for Windows can communicate using custom TCP.[113] |
| S1114 | ZIPLINE |
ZIPLINE can communicate with C2 using a custom binary protocol.[114] |
| ID | Mitigation | Description |
|---|---|---|
| M1047 | Audit |
Periodically investigate ESXi hosts for open VMCI ports. Running the |
| M1037 | Filter Network Traffic |
Filter network traffic to prevent use of protocols across the network boundary that are unnecessary. If VMCI is not required in ESXi environments, consider restricting guest virtual machines from accessing VMCI services.[116] |
| 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 | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0457 | Detection of Non-Application Layer Protocols for C2 | AN1254 |
Anomalous use of ICMP or UDP by non-network service processes for data exfiltration or remote control, especially if traffic bypasses proxy infrastructure or shows unusual flow patterns. |
| AN1255 |
ICMP or raw socket traffic generated by user-mode processes like bash, Python, or nc, typically using |
||
| AN1256 |
Unsigned binaries or interpreted scripts initiating non-standard protocols (ICMP, UDP, SOCKS) outside of baseline network behavior. |
||
| AN1257 |
VMCI (Virtual Machine Communication Interface) traffic between guest and host, or between VMs, originating from non-management tools or unauthorized binaries. |
||
| AN1258 |
Non-standard port/protocol pairings or low-entropy ICMP traffic resembling tunneling patterns (e.g., fixed-size pings with delays). |