Detect Compiled HTML File in CrowdStrike LogScale
Adversaries may abuse Compiled HTML files (.chm) to conceal malicious code. CHM files are commonly distributed as part of the Microsoft HTML Help system and are compressed compilations of HTML documents, images, and scripting languages such as VBA, JScript, Java, and ActiveX. CHM content is displayed using underlying components of the Internet Explorer browser loaded by the HTML Help executable program (hh.exe). A custom CHM file containing embedded payloads could be delivered to a victim then triggered by User Execution. CHM execution may also bypass application control on older and/or unpatched systems. Groups known to abuse CHM files include OilRig, Dark Caracal, Silence, APT41, and APT38.
MITRE ATT&CK
- Tactic
- Defense Evasion
- Technique
- T1218 System Binary Proxy Execution
- Sub-technique
- T1218.001 Compiled HTML File
- Canonical reference
- https://attack.mitre.org/techniques/T1218/001/
LogScale Detection Query
// T1218.001 — hh.exe CHM Abuse: Suspicious execution and child process spawning
#event_simpleName = ProcessRollup2
| FileName = /(?i)^hh\.exe$/
OR ParentBaseFileName = /(?i)^hh\.exe$/
| case {
ParentBaseFileName = /(?i)(winword|excel|outlook|powerpnt|wscript|cscript|mshta)\.exe$/: SuspiciousParent := 1;
*: SuspiciousParent := 0;
}
| case {
CommandLine = /(?i)(http:\/\/|https:\/\/|ms-its:|mk:@MSITStore|\\\\[a-zA-Z])/: RemoteLoad := 1;
*: RemoteLoad := 0;
}
| case {
FileName = /(?i)(cmd|powershell|wscript|cscript|mshta|rundll32|regsvr32|certutil)\.exe$/ AND ParentBaseFileName = /(?i)^hh\.exe$/: SuspiciousChild := 1;
*: SuspiciousChild := 0;
}
| RiskScore := SuspiciousParent + RemoteLoad + SuspiciousChild
| RiskScore > 0 OR ParentBaseFileName = /(?i)^hh\.exe$/
| select([@timestamp, ComputerName, UserName, FileName, CommandLine, ParentBaseFileName, ParentCommandLine, SuspiciousParent, RemoteLoad, SuspiciousChild, RiskScore])
| sort(field=@timestamp, order=desc) CrowdStrike LogScale (Humio) CQL detection for T1218.001 targeting ProcessRollup2 events to identify hh.exe execution abuse. Detects hh.exe launched with CHM protocol handlers (ms-its:, mk:@MSITStore), remote resource loading (HTTP/UNC), or from Office/script interpreter parent processes. Also detects hh.exe spawning high-risk LOLBin children. Composite risk scoring (SuspiciousParent + RemoteLoad + SuspiciousChild) surfaces the highest-fidelity events for triage while preserving all hh.exe parent-child relationships for hunting.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate Windows Help content accessed via hh.exe by users opening vendor-provided .chm documentation bundled with installed software such as AutoCAD, Cisco tools, or legacy ERP systems
- IT support scripts that launch hh.exe from cmd.exe to display troubleshooting guides stored on internal UNC network shares as part of helpdesk automation workflows
- CHM-based training materials or policy documents opened by users from intranet file shares — the UNC path pattern may trigger RemoteLoad scoring despite being authorized content
Other platforms for T1218.001
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1CHM Execution via hh.exe with Embedded Script
Expected signal: Sysmon Event ID 1: Process Create with Image=hh.exe, CommandLine containing 'ms-its:' and '.chm'. Security Event ID 4688 if command line auditing is enabled. Any child process creation (if CHM contains script) will also appear as Sysmon Event ID 1 with ParentImage=hh.exe.
- Test 2CHM File Spawning PowerShell
Expected signal: Sysmon Event ID 1 for hh.exe, then a child Sysmon Event ID 1 for powershell.exe with ParentImage=hh.exe. The suspicious child process relationship is the primary detection indicator. Security Event ID 4688 for both processes if command line auditing is on.
- Test 3CHM File Opened from Email Attachment Location
Expected signal: Sysmon Event ID 11: File Create in the Outlook temp path. Sysmon Event ID 1: hh.exe with the Outlook temp path in its command line. File System: CHM file written to Content.Outlook directory.
References (7)
- https://attack.mitre.org/techniques/T1218/001/
- https://oddvar.moe/2017/08/13/bypassing-device-guard-umci-using-chm-cve-2017-8625/
- https://docs.microsoft.com/previous-versions/windows/desktop/htmlhelp/microsoft-html-help-1-4-sdk
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1218.001/T1218.001.md
- https://www.trendmicro.com/en_us/research.html
- https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-8625
- https://www.welivesecurity.com/wp-content/uploads/2020/06/ESET_InvisiMole.pdf
Unlock Pro Content
Get the full detection package for T1218.001 including response playbook, investigation guide, and atomic red team tests.