Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection/network filtering and/or enable access to otherwise unreachable systems. Tunneling involves explicitly encapsulating a protocol within another. This behavior may conceal malicious traffic by blending in with existing traffic and/or provide an outer layer of encryption (similar to a VPN). Tunneling could also enable routing of network packets that would otherwise not reach their intended destination, such as SMB, RDP, or other traffic that would be filtered by network appliances or not routed over the Internet.
There are various means to encapsulate a protocol within another protocol. For example, adversaries may perform SSH tunneling (also known as SSH port forwarding), which involves forwarding arbitrary data over an encrypted SSH tunnel.[1]
Protocol Tunneling may also be abused by adversaries during Dynamic Resolution. Known as DNS over HTTPS (DoH), queries to resolve C2 infrastructure may be encapsulated within encrypted HTTPS packets.[2]
Adversaries may also leverage Protocol Tunneling in conjunction with Proxy and/or Protocol Impersonation to further conceal C2 communications and infrastructure.
ID | Name | Description |
---|---|---|
G0114 | Chimera |
Chimera has encapsulated Cobalt Strike's C2 protocol in DNS and HTTPS.[3] |
G0080 | Cobalt Group |
Cobalt Group has used the Plink utility to create SSH tunnels.[4][5][6] |
S0154 | Cobalt Strike |
Cobalt Strike uses a custom command and control protocol that is encapsulated in HTTP, HTTPS, or DNS. In addition, it conducts peer-to-peer communication over Windows named pipes encapsulated in the SMB protocol. All protocols use their standard assigned ports.[7][8] |
G0132 | CostaRicto |
CostaRicto has set up remote SSH tunneling into the victim's environment from a malicious domain.[9] |
S0687 | Cyclops Blink |
Cyclops Blink can use DNS over HTTPS (DoH) to resolve C2 nodes.[10] |
S0038 | Duqu |
Duqu uses a custom command and control protocol that communicates over commonly used ports, and is frequently encapsulated by application layer protocols.[11] |
G0037 | FIN6 |
FIN6 used the Plink command-line utility to create SSH tunnels to C2 servers.[12] |
S0173 | FLIPSIDE |
FLIPSIDE uses RDP to tunnel traffic from a victim environment.[13] |
G0117 | Fox Kitten |
Fox Kitten has used protocol tunneling for communication and RDP activity on compromised hosts through the use of open source tools such as Ngrok and custom tool SSHMinion.[14][15][16] |
S0604 | Industroyer |
Industroyer attempts to perform an HTTP CONNECT via an internal proxy to establish a tunnel.[17] |
G0065 | Leviathan |
Leviathan has used protocol tunneling to further conceal C2 communications and infrastructure.[18] |
S0699 | Mythic |
Mythic can use SOCKS proxies to tunnel traffic through another protocol.[19] |
S0508 | Ngrok |
Ngrok can tunnel RDP and other services securely over internet connections.[20][21][22][23] |
G0049 | OilRig |
OilRig has used the Plink utility and other tools to create tunnels to C2 servers.[24][25][26] |
S0650 | QakBot |
The QakBot proxy module can encapsulate SOCKS5 protocol within its own proxy protocol.[27] |
ID | Mitigation | Description |
---|---|---|
M1037 | Filter Network Traffic |
Consider filtering network traffic to untrusted or known bad domains and resources. |
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. |
ID | Data Source | Data Component |
---|---|---|
DS0029 | Network Traffic | Network Connection Creation |
Network Traffic Content | ||
Network Traffic Flow |
Monitoring for systems listening and/or establishing external connections using ports/protocols commonly associated with tunneling, such as SSH (port 22). Also monitor for processes commonly associated with tunneling, such as Plink and the OpenSSH client.
Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect application layer protocols that do not follow the expected protocol standards regarding syntax, structure, or any other variable adversaries could leverage to conceal data.[28]