Data Encoding: Non-Standard Encoding

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: T1132.002
Sub-technique of:  T1132
Platforms: ESXi, Linux, Windows, macOS
Version: 1.1
Created: 14 March 2020
Last Modified: 24 October 2025

Procedure Examples

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 = from the result of base64 encoding, and replacing / characters with -s and + characters with -p.[10]

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]

Mitigations

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.

Detection Strategy

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.

References