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, but adversaries may create their own packing techniques that do not leave the same artifacts as well-known packers to evade defenses.[2]
ID | Name | Description |
---|---|---|
C0025 | 2016 Ukraine Electric Power Attack |
During the 2016 Ukraine Electric Power Attack, Sandworm Team used UPX to pack a copy of Mimikatz.[3] |
S0504 | Anchor | |
G1007 | Aoqin Dragon |
Aoqin Dragon has used the Themida packer to obfuscate malicious payloads.[5] |
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.[10] |
G0087 | APT39 |
APT39 has packed tools with UPX, and has repacked a modified version of Mimikatz to thwart anti-virus detection.[11][12] |
G0096 | APT41 |
APT41 uses packers such as Themida to obfuscate malicious files.[13] |
S0373 | Astaroth |
Astaroth uses a software packer called Pe123\RPolyCryptor.[14] |
S0638 | Babuk | |
S0534 | Bazar | |
S0268 | Bisonal |
Bisonal has used the MPRESS packer and similar tools for obfuscation.[20] |
S0520 | BLINDINGCAN |
BLINDINGCAN has been packed with the UPX packer.[21] |
C0017 | C0017 |
During C0017, APT41 used VMProtect to slow the reverse engineering of malicious binaries.[22] |
S0020 | China Chopper |
China Chopper's client component is packed with UPX.[23] |
S0611 | Clop | |
S1105 | COATHANGER |
The first stage of COATHANGER is delivered as a packed file.[26] |
S0614 | CostaBricks |
CostaBricks can implement a custom-built virtual machine mechanism to obfuscate its code.[27] |
S0527 | CSPY Downloader |
CSPY Downloader has been packed with UPX.[28] |
S0625 | Cuba | |
G0070 | Dark Caracal |
Dark Caracal has used UPX to pack Bandook.[30] |
S0334 | DarkComet |
DarkComet has the option to compress its payload using UPX or MPRESS.[31] |
S0187 | Daserf | |
S0281 | Dok | |
S0695 | Donut | |
S0694 | DRATzarus | |
S0024 | Dyre |
Dyre has been delivered with encrypted resources and must be unpacked for execution.[36] |
S0554 | Egregor |
Egregor's payloads are custom-packed, archived and encrypted to prevent analysis.[37][38] |
G0066 | Elderwood |
Elderwood has packed malware payloads before delivery to victims.[39] |
S0367 | Emotet | |
S0512 | FatDuke |
FatDuke has been regularly repacked by its operators to create large binaries and evade detection.[41] |
S0182 | FinFisher | |
S0628 | FYAnti | |
G0093 | GALLIUM |
GALLIUM packed some payloads using different types of packers, both known and custom.[45] |
S0588 | GoldMax | |
S0342 | GreyEnergy |
GreyEnergy is packed for obfuscation.[47] |
S0132 | H1N1 | |
S0601 | Hildegard | |
S0431 | HotCroissant |
HotCroissant has used the open source UPX executable packer.[50] |
S0398 | HyperBro | |
S0483 | IcedID | |
S0283 | jRAT | |
G0094 | Kimsuky | |
S0356 | KONNI | |
S1160 | Latrodectus |
The Latrodectus payload has been packed for obfuscation.[55] |
S0513 | LiteDuke |
LiteDuke has been packed with multiple layers of encryption.[41] |
S0447 | Lokibot |
Lokibot has used several packing methods for obfuscation.[56] |
S0532 | Lucifer | |
S0409 | Machete | |
S0530 | Melcoz | |
S0455 | Metamorfo | |
S0083 | Misdat | |
S1026 | Mongall | |
G1019 | MoustachedBouncer |
MoustachedBouncer has used malware plugins packed with Themida.[62] |
S0198 | NETWIRE | |
C0002 | Night Dragon |
During Night Dragon, threat actors used software packing in its tools.[64] |
S0264 | OopsIE |
OopsIE uses the SmartAssembly obfuscator to pack an embedded .Net Framework assembly used for C2.[65] |
C0022 | Operation Dream Job |
During Operation Dream Job, Lazarus Group packed malicious .db files with Themida to evade detection.[35][66][67] |
C0016 | Operation Dust Storm |
For Operation Dust Storm, the threat actors used UPX to pack some payloads.[61] |
C0005 | Operation Spalax |
For Operation Spalax, the threat actors used a variety of packers, including CyaX, to obfuscate malicious executables.[68] |
S0352 | OSX_OCEANLOTUS.D |
OSX_OCEANLOTUS.D has a variant that is packed with UPX.[69] |
G0040 | Patchwork | |
S0650 | QakBot | |
S0565 | Raindrop |
Raindrop used a custom packer for its Cobalt Strike payload, which was compressed using the LZMA algorithm.[72][73] |
S1130 | Raspberry Robin |
Raspberry Robin contains multiple payloads that are packed for defense evasion purposes and unpacked on runtime.[74] |
G0106 | Rocke |
Rocke's miner has created UPX-packed files in the Windows Start Menu Folder.[75][76][77] |
S0085 | S-Type | |
G1031 | Saint Bear |
Saint Bear clones .NET assemblies from other .NET binaries as well as cloning code signing certificates from other software to obfuscate the initial loader payload.[78] |
S1018 | Saint Bot | |
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.[82] |
S0543 | Spark |
Spark has been packed with Enigma Protector to obfuscate its contents.[83] |
S1030 | Squirrelwaffle |
Squirrelwaffle has been packed with a custom packer to hide payloads.[84][85] |
S0663 | SysUpdate | |
G1018 | TA2541 |
TA2541 has used a .NET packer to obfuscate malicious files.[87] |
G0092 | TA505 | |
G0139 | TeamTNT |
TeamTNT has used UPX and Ezuri packer to pack its binaries.[88] |
G0089 | The White Company |
The White Company has obfuscated their payloads through packing.[89] |
G0027 | Threat Group-3390 |
Threat Group-3390 has packed malware and tools, including using VMProtect.[90][51] |
S0671 | Tomiris | |
S0678 | Torisma | |
S0266 | TrickBot |
TrickBot leverages a custom packer to obfuscate its functionality.[92] |
S0094 | Trojan.Karagany |
Trojan.Karagany samples sometimes use common binary packers such as UPX and Aspack on top of a custom Delphi binary packer.[93][94] |
S0022 | Uroburos | |
S0476 | Valak | |
S0257 | VERMIN | |
G1017 | Volt Typhoon |
Volt Typhoon has used the Ultimate Packer for Executables (UPX) to obfuscate the FRP client files BrightmetricAgent.exe and SMSvcService.ex) and the port scanning utility ScanLine.[99] |
S0248 | yty | |
S0251 | Zebrocy | |
S0230 | ZeroT | |
G0128 | ZIRCONIUM |
ZIRCONIUM has used multi-stage packers for exploit code.[104] |
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 | Detects |
---|---|---|---|
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. |