作者:K&[email protected]知道创宇404高级威胁情报团队
英文版:https://paper.seebug.org/3012/
1. 概述
APT37疑似为半岛国家资助的攻击组织,也称为ScarCruft、Reaper、RedEye、Ricochet Chollima。该组织自2012年活跃至今,攻击目标主要是韩国的公共组织和私有企业。2017年,APT37组织将攻击目标范围扩大到日本、越南、中东等地的化学、电子、制造业、航空工业、汽车和医疗等行业。
近期,知道创宇404 高级威胁情报团队在日常分析活动中发现多个CHM携带恶意脚本的攻击样本,通过对整个攻击链的分析和溯源,知道创宇404 高级威胁情报团队将新发现的木马命名为Fakecheck。在分析过程中,我们发现有安全研究人员将其归属于APT37,但从我们团队跟踪APT37的攻击活动来看,此次捕获的样本及TTP与已掌握的APT37情报无关联,极可能是APT37使用的全新TTPS及木马或者是一个新的攻击组织的活动。
2. 攻击样本分析
恶意CHM 样例如下,CHM诱饵使用韩语,针对韩国进行攻击,主题主要为保险、证券金融以及通讯账单相关:
CHM中利用恶意脚本反编译自身,并将反编译结果释放到指定目录下,最终执行反编译释放的jse脚本,完整攻击链如下:
CHM分析
查看CHM文件可以发现其中包含jse脚本:
攻击者在CHM对应的html文件中插入了恶意脚本,将object插入到innerHTML元素中,并进行字符串拼接,最终使用shortcut和click使代码得到执行:
执行的操作主要包含两个:
1:反编译CHM,并将文件释放到C:\Users\Public\Libraries\目录下。
2:执行反编译后的Docs.jse。
Docs.jse是编码过的javascript脚本,使用微软自定义编码方法进行编码,解码后代码如下:
Docs.jse使用一个解码函数对脚本中的字符串进行了解码,解码算法类似变种的凯撒密码,对大小写字母、数字和特殊字符进行了替换:
运行后从指定的服务端下载数据并存储为:%temp%\alg.exe,需要注意的是服务端返回的数据前两位会被替换为“MZ”:
当服务端返回的数据首位16进制值小于77(0x4D,字符“M”)时,函数modifyApp的返回值为true。由于上一步运行jse脚本是传入了参数“P”,则paramLen > 0恒成立:
当两个条件都成立的时候,则将scPath写入scReg注册表中,然而脚本代码中scPath对应的文件在整个攻击链条中未见释放,scReg变量在脚本中未定义。换言之,如果返回的数据首位16进制值小于0x4d,则脚本将因触发异常而结束,导致最终载荷无法执行。
在分析过程中,我们注意到韩国安全公司Ahnlab在7月份的一份公开报告中披露过与我们捕获的样本比较类似的攻击活动,在披露的攻击活动中,攻击者使用的CHM中的脚本内容一致:
而在jse脚本上,Ahnlab披露的脚本会将jse写入到注册表的run启动项中,因此我们推测攻击者想通过scReg与scPath实现将当前jse写入注册表run启动项的操作:
本次捕获的jse脚本功能上较AhnLab披露的有所升级。其一,在字符串解码函数添加了关于数字的编码:
其二,增加了杀软检测,检测当前主机中是否存在AhnLab相关的文件夹(AhnLab是韩国知名的杀软),若存在杀软,则将下载的alg.exe写入注册表run启动项:
对比最初披露时直接使用run执行,本次捕获的样本新增了条件判断,结合两次攻击样本,我们推测攻击者可能在进行测试,这样也可以解释为何会出现变量未定义之类的错误。
FakeCheck分析
为方便后续的溯源跟踪,知道创宇404 高级威胁情报团队将最终执行远程控制的RAT木马命名为FakeCheck,以下是FakeCheck的分析详情:
该木马为.NET程序,运行后使用CheckDotNetVersionAcceptable方法进行“环境检查”,若CheckDotNetVersionAcceptable返回false则弹出消息框提示“Please reinstall .net 3.5 first!”,事实上这是攻击者编写了一个幌子(这也是为何将其命名为FakeCheck的原因),通过随机运算得到一个值与传入的随机值进行比较,通过评估,只有极小的几率返回false。
FakeCheck获取磁盘信息,获取指定目录下的文件信息,并将获取的信息写入文件:
被写入的文件为C:\Users\Public\Pictures[random].txt,[random].zip存放浏览器数据以及Recent缓存:
获取chrome、Edge浏览器的用户数据(插件设置、历史记录、书签和保存的密码信息等),并添加到zip文件中:
获取Recent文件缓存:
收集的数据均被记录在C:\Users\Public\Pictures[random].txt和C:\Users\Public\Pictures[random].zip中,最终上传到C&C端:
从C&C端接收数据,当接收的数据不包含“Fatal error”时,解析命令并执行:
获取的指令以“|”进行分割,最终的指令为cmd命令行:
cmd命令的执行结果使用“POST”回传到C&C:
3. 总结
本次捕获的针对韩语国家的CHM攻击样本中,与7月份Ahnlab披露的攻击样本在代码上有较大的关联性。虽然攻击者针对的主要群体未知,但是其使用的诱饵文档包含了金融、保险和日常通讯的相关账单,这样的诱饵文档具有广泛的适用性,尤其是通讯账单。
攻击者在代码层面的复杂度较低,但在逐步升级完善,就目前掌握的最终执行的载荷来看,攻击者主要进行浏览器信息窃取、主机信息搜集和简单的cmd命令执行,推测这可能只是攻击者攻击链中的前中阶段,后续将继续分发其它载荷。
在溯源过程中,我们注意到多个安全研究员将其归属于APT37,但从知道创宇404高级威胁团队目前掌握的情报来看,判断其与APT37目前使用的TTPs无直接关系,如仅从针对的地域和行业将其归为APT37,缺乏足够的证据支撑。而从利用CHM加载恶意代码这种形式上来看,归属于kimsuky和APT37等多个组织均有可能,因此,我们无法直接将其归属为某个已知的组织。后续我们将持续的跟踪类似的攻击事件,发掘更多有价值的情报线索。
IOC
下载地址:
-
https://crilts.cfd/cdeeb
-
https://giath.xyz/maiqt
-
https://bajut.pro/jdkvr
-
https://oebil.lat/zyofl
C&C:
- https://tosals.ink/uEH5J.html
Hash:
-
f5e46e18facc6f8fde6658b96dcd379b82cc6ae2e676fb47f08cbeccd307b1b4
-
578689cb4b06c4d3f1850e4379c4b31f49170749c66b9576e1088f59fc891da2
-
2b2583019d83e657c219dd6510060f98ead8679e913d63c7f2ed5c52c0c2bb35
-
37feb1d71c6458f71b27dc1ba7cb4366ee30f9ae75b0322775fa70b8753eac27
-
a1f6ae788bf3f9ae17893f3b12d557f69b17fdb4f030ed5e5f66dbb6d2cc9d78
-
01e7405ddd5545ffb4a57040acc4b6f8b8a5cc328fa8172e1800a1cb49bdf15c
-
012063e0b7b4f7f3ce50574797112f95492772a9b75fc3d0934a91cc60faa240
Ref
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/3011/