type
status
date
slug
summary
tags
category
icon
password
URL
📌
攻击者可能会滥用编译的 HTML 文件 (.chm) 来隐藏恶意代码。CHM文件通常作为Microsoft HTML帮助系统的一部分分发。CHM文件是各种内容的压缩编译,如HTML文档,图像和脚本/Web相关的编程语言,如VBA,JScript,Java和ActiveX。CHM 内容使用由 HTML 帮助可执行程序 (hh.exe) 加载的 Internet Explorer 浏览器的基础组件显示。 - 摘自 ATT&CK System Binary Proxy Execution: Compiled HTML File, Sub-technique T1218.001 - Enterprise | MITRE ATT&CK®
背景
今天中午看到一份关于Bitter组织针对亚太地区能源部门发起钓鱼活动分析报告,其中@Ryan Robinson 2023年3月24日对该组织使用的CHM样本进行了分析。于是开始详细了解为什么CHM格式在钓鱼中可以发挥如此大的价值。
CHM文件打开的过程
CHM文件是各种内容的压缩编译,如HTML文档,图像和脚本/Web相关的编程语言,在CHM打开时,会调用IE浏览器的基础组件解析显示,双击打开CHM文件其实本质上是创建了一个hh.exe的进程。
CHM的Payload
CHM文件可以通过hh.exe进行反编译:
如何构建CHM文件?
可以使用Microsoft HTML Help Workshop
工具创建CHM文件,FILES指的是目录,OPTIONS指的是文档基本信息:
在这段代码中,调用了hhctrl.ocx
COM组件,该组件的方法可以执行命令:
Atomic atomic-red-team/atomics/T1218.001/src/T1218.001.html at master · redcanaryco/atomic-red-team (github.com) 给出的测试用例代码调用的是Click方法,我测试了HHClick也能够触发。
我在本地尝试编译了一个弹出计算器的CHM文档,上传至VirusTotal进行分析:
在ATT&CK中也提到有攻击组织采用调用ActiveX对象的方法来对文件进行操作,这个过程可能不会创建进程:
CHM文件执行命令的防御措施
这里可以直接总结一下ATT&CK矩阵上的建议:
- 阻止CHM文件的下载
- 进程监控,监视和分析hh.exe的执行和参数。将最近调用的hh.exe与已知良好参数的先前历史记录进行比较,以确定异常和潜在的对抗性活动(例如:混淆和/或恶意命令)。非标准进程执行树也可能指示可疑或恶意行为,例如,如果hh.exe是与其他对抗性技术相关的可疑进程和活动的父进程。