| ID | Name |
|---|---|
| T1132.001 | Standard Encoding |
| T1132.002 | Non-Standard Encoding |
Adversaries may encode data with a non-standard data encoding system to make the content of command and control traffic more difficult to detect. Command and control (C2) information can be encoded using a non-standard data encoding system that diverges from existing protocol specifications. Non-standard data encoding schemes may be based on or related to standard data encoding schemes, such as a modified Base64 encoding for the message body of an HTTP request.[1] [2]
| ID | Name | Description |
|---|---|---|
| S0031 | BACKSPACE |
Newer variants of BACKSPACE will encode C2 communications with a custom system.[3] |
| S0239 | Bankshot |
Bankshot encodes commands from the control server using a range of characters and gzip.[4] |
| S1149 | CHIMNEYSWEEP |
CHIMNEYSWEEP can use a custom Base64 alphabet for encoding C2.[5] |
| S0687 | Cyclops Blink |
Cyclops Blink can use a custom binary scheme to encode messages with specific commands and parameters to be executed.[6] |
| S0260 | InvisiMole |
InvisiMole can use a modified base32 encoding to encode data within the subdomain of C2 requests.[7] |
| S0681 | Lizar |
Lizar has used a complex XOR operation to obfuscate C2 communications.[8] |
| S1189 | Neo-reGeorg |
Neo-reGeorg can use modified Base64 encoding to obfuscate communications.[9] |
| S1090 | NightClub |
NightClub has used a non-standard encoding in DNS tunneling removing any |
| S1100 | Ninja |
Ninja can encode C2 communications with a base64 algorithm using a custom alphabet.[11] |
| S0346 | OceanSalt |
OceanSalt can encode data with a NOT operation before sending the data to the control server.[12] |
| S1046 | PowGoop |
PowGoop can use a modified Base64 encoding mechanism to send data to and from the C2 server.[13] |
| S0495 | RDAT |
RDAT can communicate with the C2 via subdomains that utilize base64 with character substitutions.[14] |
| S0596 | ShadowPad |
ShadowPad has encoded data as readable Latin characters.[15] |
| S1035 | Small Sieve |
Small Sieve can use a custom hex byte swapping encoding scheme to obfuscate tasking traffic.[16][17] |
| S1239 | TONESHELL |
TONESHELL has encoded a payload with a random 32-byte key using XOR.[18] TONESHELL has also encoded payloads with a 256-byte key using XOR.[19] |
| S0022 | Uroburos |
Uroburos can use a custom base62 and a de-facto base32 encoding that uses digits 0-9 and lowercase letters a-z in C2 communications.[20] |
| ID | Mitigation | Description |
|---|---|---|
| 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. Signatures are often for unique indicators within protocols and may be based on the specific obfuscation technique used by a particular adversary or tool, and will likely be different across various malware families and versions. Adversaries will likely change tool C2 signatures over time or construct protocols in such a way as to avoid detection by common defensive tools. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0326 | Behavior-chain detection for T1132.002 Data Encoding: Non-Standard Encoding across Windows, Linux, macOS, ESXi | AN0927 |
A process/script constructs or references a custom/alphabet translation table (e.g., 64/85/32+ arbitrary chars, XOR/base-N loops) or emits long high-entropy strings that do NOT validate as standard Base64/Hex → shortly after, the same process (or its child) generates outbound traffic with asymmetric bytes_out:bytes_in, fixed-size beacons, or protocol/header mismatches (e.g., Content-Type says JSON but body fails JSON parse / contains non-standard alphabet). |
| AN0928 |
Shell scripts or binaries implement custom mapping tables (tr/sed/awk/golang/rust/python encode loops), or emit long high-entropy tokens that fail Base64/Hex validation → correlated with egress showing asymmetric flow, protocol-mismatch payloads, or DNS/HTTP bodies containing low-diversity-but-long custom alphabets. |
||
| AN0929 |
EndpointSecurity/Unified Logs show processes generating custom alphabets or long high-entropy, non-standard tokens → network logs (PF/Zeek/EDR) show asymmetric beacons, protocol mismatches, or periodic fixed-size posts. |
||
| AN0930 |
ESXi shell or scripts produce long, high-entropy tokens (non-standard alphabets) in shell.log/hostd, followed by outbound flows (NSX/Zeek) with asymmetric ratios or protocol mismatches to non-management endpoints. |