Compiled HTML File

Compiled HTML files (.chm) are commonly distributed as part of the Microsoft HTML Help system. CHM files are compressed compilations of various content such as HTML documents, images, and scripting/web related programming languages such VBA, JScript, Java, and ActiveX. [1] CHM content is displayed using underlying components of the Internet Explorer browser [2] loaded by the HTML Help executable program (hh.exe). [3]

Adversaries may abuse this technology to conceal malicious code. A custom CHM file containing embedded payloads could be delivered to a victim then triggered by User Execution. CHM execution may also bypass application whitelisting on older and/or unpatched systems that do not account for execution of binaries through hh.exe. [4] [5]

ID: T1223

Tactic: Defense Evasion, Execution

Platform:  Windows

Permissions Required:  User

Data Sources:  File monitoring, Process monitoring, Process command-line parameters

Supports Remote:  No

Defense Bypassed:  Application whitelisting

Contributors:  Rahmat Nurfauzi, @infosecn1nja, PT Xynexis International

Version: 1.0


Dark Caracal

Dark Caracal leveraged a compiled HTML file that contained a command to download and run an executable.[6]

Lazarus Group

Lazarus Group has used CHM files to move concealed payloads as part of.[7]


OilRig has used a CHM payload to load and execute another malicious file once delivered to a victim.[8]


Consider blocking download/transfer and execution of potentially uncommon file types known to be used in adversary campaigns, such as CHM files. [9] Also consider using application whitelisting to prevent execution of hh.exe if it is not required for a given system or network to prevent potential misuse by adversaries.


Monitor and analyze the execution and arguments of hh.exe. [4] Compare recent invocations of hh.exe with prior history of known good arguments to determine anomalous and potentially adversarial activity (ex: obfuscated and/or malicious commands). Non-standard process execution trees may also indicate suspicious or malicious behavior, such as if hh.exe is the parent process for suspicious processes and activity relating to other adversarial techniques.

Monitor presence and use of CHM files, especially if they are not typically used within an environment.