The sub-techniques beta is now live! Read the release blog post for more info.

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
Defense Bypassed: Application whitelisting, Digital Certificate Validation
Contributors: Rahmat Nurfauzi, @infosecn1nja, PT Xynexis International
Version: 1.1
Created: 17 October 2018
Last Modified: 16 July 2019

Procedure Examples

Name Description

APT41 used compiled HTML (.chm) files for targeting. [12]


Astaroth uses ActiveX objects for file execution and manipulation.[6]

Dark Caracal

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

Lazarus Group

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


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


Silence has weaponized CHM files in their phishing campaigns.[10][11]


Mitigation Description
Execution Prevention

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.

Restrict Web-Based Content

Consider blocking download/transfer and execution of potentially uncommon file types known to be used in adversary campaigns, such as CHM files.


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.