System Binary Proxy Execution: Compiled HTML File T1218.001

Tactic: Stealth

Adversaries may abuse Compiled HTML files (.chm) to conceal malicious code. CHM files 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. CHM content is displayed using underlying components of the Internet Explorer browser loaded by the HTML Help executable program (hh.exe).

Events covered

5 catalog events are tagged with this technique by at least one rule.

Authoring guide

Patterns shared across the 22 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (11 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
process_name15match 8, eq 6, ne 1(?i)hh\.exe, hh.exe, (?i)cmd|powershell|pwsh|wscript|cscript|regsvr32|wmic|run..., arp.exe, atbroker.exe
CommandLine13contains 6, match 6, in 1(?i)\w+tps?://, (?i)hh\.exe, *its:*, *mk:@MSITStore:*, -decompile
EventID8eq 81, 4688, 4103, 4104
OriginalFileName7eq 7hh.exe
Image6ends_with 6\hh.exe, \cmd.exe, \certreq.exe, \certutil.exe, \cscript.exe
parent_process_name5eq 3, match 2(?i)hh\.exe, hh.exe, eqnedt32.exe, excel.exe, fltldr.exe
Type3eq 3
event.type3eq 3start
ParentImage2ends_with 2\hh.exe, \onenote.exe
DestinationPort1eq 1443, 80
Initiated1eq 1true

Top indicator values (116 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
OriginalFileNameeq
hh.exe
79
process_namematch
(?i)hh\.exe
66
process_namematch
(?i)cmd|powershell|pwsh|wscript|cscript|regsvr32|wmic|rundll32|mshta|certutil...
22
process_nameeq
hh.exe
55
process_nameeq
cmd.exe
277
process_nameeq
cscript.exe
225
process_nameeq
mshta.exe
231
process_nameeq
powershell.exe
2104
process_nameeq
pwsh.exe
262
process_nameeq
wscript.exe
229
Imageends_with
\hh.exe
416
Imageends_with
\cmd.exe
2130
Imageends_with
\cscript.exe
273
Imageends_with
\mshta.exe
267
Imageends_with
\powershell.exe
2182
Imageends_with
\pwsh.exe
2168
Imageends_with
\wscript.exe
275
CommandLinematch
(?i)\w+tps?://
33
CommandLinematch
(?i)hh\.exe
33
EventIDeq
1
3237
EventIDeq
4688
3313
EventIDeq
4103
2105
EventIDeq
4104
2268
event.typeeq
start
3606
parent_process_nameeq
hh.exe
24
parent_process_namematch
(?i)hh\.exe
22
CommandLinecontains
-decompile
1
CommandLinecontains
.application
1
CommandLinecontains
.chm
12
CommandLinecontains
\\\\
16

Exclusions (31 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
dest_ipcidr_match
10.0.0.0/8
1
dest_ipcidr_match
100.64.0.0/10
1
dest_ipcidr_match
127.0.0.0/8
1
dest_ipcidr_match
169.254.0.0/16
1
dest_ipcidr_match
172.16.0.0/12
1
dest_ipcidr_match
192.0.0.0/24
1
dest_ipcidr_match
192.0.0.0/29
1
dest_ipcidr_match
192.0.0.10/32
1
dest_ipcidr_match
192.0.0.170/32
1
dest_ipcidr_match
192.0.0.171/32
1
dest_ipcidr_match
192.0.0.8/32
1
dest_ipcidr_match
192.0.0.9/32
1
dest_ipcidr_match
192.0.2.0/24
1
dest_ipcidr_match
192.168.0.0/16
1
dest_ipcidr_match
192.175.48.0/24
1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Platform (all)
Domain (all)

Sigma 6 rules

Elastic 3 rules

Splunk 13 rules