Deobfuscate/Decode Files or Information

From enterprise
Jump to: navigation, search
Deobfuscate/Decode Files or Information
ID T1140
Tactic Defense Evasion
Platform Windows
Permissions Required User
Data Sources File monitoring, Process Monitoring, Process command-line parameters
Defense Bypassed Anti-virus, Host intrusion prevention systems, Signature-based detection, Network intrusion detection system
Contributors Matthew Demaske, Adaptforward, Red Canary

Adversaries may use Obfuscated Files or Information to hide artifacts of an intrusion from analysis. They may require separate mechanisms to decode or deobfuscate that information depending on how they intend to use it. Methods for doing that include built-in functionality of malware, Scripting, PowerShell, or by using utilities present on the system.

One such example is use of certutil to decode a remote access tool portable executable file that has been hidden inside a certificate file.1

Another example is using the Windows copy /b command to reassemble binary fragments into a malicious payload.2

Payloads may be compressed, archived, or encrypted in order to avoid detection. These payloads may be used with Obfuscated Files or Information during Initial Access or later to mitigate detection. Sometimes a user's action may be required to open it for deobfuscation or decryption as part of User Execution. The user may also be required to input a password to open a password protected compressed/encrypted file that was provided by the adversary.3 Adversaries may also used compressed or archived scripts, such as Javascript.


  • An APT28 macro uses the command certutil -decode to decode contents of a .txt file storing the base64 encoded payload.4
  • APT34 has used certutil to decode base64-encoded files on victims.5
  • BRONZE BUTLER downloads encoded payloads and decodes them on the victim.6
  • Leviathan has used a DLL known as SeDll to decrypt and execute other JavaScript backdoors.7
  • MuddyWater decoded base64-encoded PowerShell commands using a VBS file.8
  • A OilRig macro has run a PowerShell command to decode file contents.9
  • ISMInjector uses the certutil command to decode a payload file.9
  • Starloader decrypts and executes shellcode from a file called Stars.jps.10
  • ZeroT shellcode decrypts and decompresses its RC4-encrypted payload.11
  • certutil has been used to decode binaries hidden inside certificate files as Base64 information.1


Identify unnecessary system utilities or potentially malicious software that may be used to deobfuscate or decode files or information, and audit and/or block them by using whitelisting12 tools, like AppLocker,1314 or Software Restriction Policies15 where appropriate.16


Detecting the action of deobfuscating or decoding files or information may be difficult depending on the implementation. If the functionality is contained within malware and uses the Windows API, then attempting to detect malicious behavior before or after the action may yield better results than attempting to perform analysis on loaded libraries or API calls. If scripts are used, then collecting the scripts for analysis may be necessary. Perform process and command-line monitoring to detect potentially malicious behavior related to scripts and system utilities such as certutil.

Monitor the execution file paths and command-line arguments for common archive file applications and extensions, such as those for Zip and RAR archive tools, and correlate with other suspicious behavior to reduce false positives from normal user and administrator behavior.