| ID | Name |
|---|---|
| T1027.001 | Binary Padding |
| T1027.002 | Software Packing |
| T1027.003 | Steganography |
| T1027.004 | Compile After Delivery |
| T1027.005 | Indicator Removal from Tools |
| T1027.006 | HTML Smuggling |
Adversaries may perform software packing or virtual machine software protection to conceal their code. Software packing is a method of compressing or encrypting an executable. Packing an executable changes the file signature in an attempt to avoid signature-based detection. Most decompression techniques decompress the executable code in memory. Virtual machine software protection translates an executable's original code into a special format that only a special virtual machine can run. A virtual machine is then called to run this code.[1]
Utilities used to perform software packing are called packers. Example packers are MPRESS and UPX. A more comprehensive list of known packers is available, [2] but adversaries may create their own packing techniques that do not leave the same artifacts as well-known packers to evade defenses.
| ID | Name | Description |
|---|---|---|
| S0504 | Anchor | |
| S0622 | AppleSeed | |
| G0016 | APT29 | |
| G0022 | APT3 | |
| G0082 | APT38 |
APT38 has used several code packing methods such as Themida, Enigma, VMProtect, and Obsidium, to pack their implants.[8] |
| G0087 | APT39 |
APT39 has packed tools with UPX, and has repacked a modified version of Mimikatz to thwart anti-virus detection.[9][10] |
| S0373 | Astaroth |
Astaroth uses a software packer called Pe123\RPolyCryptor.[11] |
| S0638 | Babuk | |
| S0534 | Bazar | |
| S0520 | BLINDINGCAN |
BLINDINGCAN has been packed with the UPX packer.[17] |
| S0020 | China Chopper |
China Chopper's client component is packed with UPX.[18] |
| S0611 | Clop | |
| S0614 | CostaBricks |
CostaBricks can implement a custom-built virtual machine mechanism to obfuscate its code.[21] |
| S0527 | CSPY Downloader |
CSPY Downloader has been packed with UPX.[22] |
| S0625 | Cuba | |
| G0070 | Dark Caracal |
Dark Caracal has used UPX to pack Bandook.[24] |
| S0334 | DarkComet |
DarkComet has the option to compress its payload using UPX or MPRESS.[25] |
| S0187 | Daserf | |
| S0281 | Dok | |
| S0024 | Dyre |
Dyre has been delivered with encrypted resources and must be unpacked for execution.[28] |
| S0554 | Egregor |
Egregor's payloads are custom-packed, archived and encrypted to prevent analysis.[29][30] |
| G0066 | Elderwood |
Elderwood has packed malware payloads before delivery to victims.[31] |
| S0367 | Emotet | |
| S0512 | FatDuke |
FatDuke has been regularly repacked by its operators to create large binaries and evade detection.[33] |
| S0182 | FinFisher | |
| S0628 | FYAnti | |
| G0093 | GALLIUM |
GALLIUM packed some payloads using different types of packers, both known and custom.[37] |
| S0588 | GoldMax | |
| S0342 | GreyEnergy |
GreyEnergy is packed for obfuscation.[39] |
| S0132 | H1N1 | |
| S0601 | Hildegard | |
| S0431 | HotCroissant |
HotCroissant has used the open source UPX executable packer.[42] |
| S0483 | IcedID | |
| S0283 | jRAT | |
| G0094 | Kimsuky | |
| S0513 | LiteDuke |
LiteDuke has been packed with multiple layers of encryption.[33] |
| S0447 | Lokibot |
Lokibot has used several packing methods for obfuscation.[45] |
| S0532 | Lucifer | |
| S0409 | Machete | |
| S0530 | Melcoz | |
| S0455 | Metamorfo | |
| S0198 | NETWIRE | |
| G0014 | Night Dragon |
Night Dragon is known to use software packing in its tools.[51] |
| S0264 | OopsIE |
OopsIE uses the SmartAssembly obfuscator to pack an embedded .Net Framework assembly used for C2.[52] |
| S0352 | OSX_OCEANLOTUS.D |
OSX_OCEANLOTUS.D has a variant that is packed with UPX.[53] |
| G0040 | Patchwork | |
| S0650 | QakBot | |
| S0565 | Raindrop |
Raindrop used a custom packer for its Cobalt Strike payload, which was compressed using the LZMA algorithm.[56][57] |
| G0106 | Rocke |
Rocke's miner has created UPX-packed files in the Windows Start Menu Folder.[58][59][60] |
| G0034 | Sandworm Team |
Sandworm Team used UPX to pack a copy of Mimikatz.[61] |
| S0461 | SDBbot | |
| S0053 | SeaDuke | |
| S0444 | ShimRat |
ShimRat's loader has been packed with the compressed ShimRat core DLL and the legitimate DLL for it to hijack.[64] |
| S0543 | Spark |
Spark has been packed with Enigma Protector to obfuscate its contents.[65] |
| G0092 | TA505 | |
| G0139 | TeamTNT |
TeamTNT has used UPX and Ezuri packer to pack its binaries.[66] |
| G0089 | The White Company |
The White Company has obfuscated their payloads through packing.[67] |
| S0266 | TrickBot |
TrickBot leverages a custom packer to obfuscate its functionality.[68] |
| S0094 | Trojan.Karagany |
Trojan.Karagany samples sometimes use common binary packers such as UPX and Aspack on top of a custom Delphi binary packer.[69][70] |
| S0022 | Uroburos | |
| S0476 | Valak | |
| S0257 | VERMIN | |
| S0248 | yty | |
| S0251 | Zebrocy | |
| S0230 | ZeroT | |
| G0128 | ZIRCONIUM |
ZIRCONIUM has used multi-stage packers for exploit code.[78] |
| ID | Mitigation | Description |
|---|---|---|
| M1049 | Antivirus/Antimalware |
Employ heuristic-based malware detection. Ensure updated virus definitions and create custom signatures for observed malware. |
| ID | Data Source | Data Component |
|---|---|---|
| DS0022 | File | File Metadata |
Use file scanning to look for known software packers or artifacts of packing techniques. Packing is not a definitive indicator of malicious activity, because legitimate software may use packing techniques to reduce binary size or to protect proprietary code.