CTM - Escrow Contract Agreement攻击样本分析
介绍
该样本在VT上首次提交时间为2021年9月9日,奇安信红雨滴团队此前对该样本出过一篇分析报告,使用了与海莲花(OceanLotus)APT组织相似代码混淆方法。出于对该样本的好奇,于是从app.any.run上找到了该样本并分析一波。

IOC
文件名:MSVCR100.dll
MD5:1dbd3e88bc5cb77a7401cb49b44f554e
SHA-1:844264bd15330e7d887051e7a7d062fdef72f49b
SHA-256:f19c7115755ed90c0ad5dfc9321b44aa43228e80a2cd5bc714fc6a1ddcd0d3a6
文件名:4keanigb\MSVCR100.dll
MD5:c7b6c3eedb55f4f2170ece002c45091c
SHA-1:c11dd1d35c4664ff5951e5156537e0f3c4b8a759
SHA-256:bf3e495f43a6b333b10ae69667304cfd2c87e9100de9d31365671c7b6b93132e
文件名:bpvefocc\MSVCR100.dll
MD5:7ccae006a305efeff74b9be596abbb56
SHA-1:2e27f4c4f4d7bfb3514cf441ca85906e43232de0
SHA-256:2a6a1a026dcff8bf52e6df64d48f5ffaadbd29e4317b753a16c3e291abc7e80d
文件名:cyk33yqh\MSVCR100.dll
MD5:fed42946a526d3985e3d03b9b9d71b7b
SHA-1:45f1169dee09b2b1aa1701d3916648973b407204
SHA-256:2c5f0286c075fd383582d64fda62d84e1001cf91682daa0befa7ff61e73413ac
关于MSVCR100.dll样本的分析
混淆类型
类型1
mov?????eax,?large?fs:0
push????eax
mov?????ecx,?ecx
mov?????large?fs:0,?esp
nop
nop
nop
push????ecx
mov?????[ebp+var_10],?ecx
mov?????ecx,?ecx
mov?????ecx,?[ebp+var_10]
mov?????eax,?eax
...
mov?????eax,?[ebp+var_10]
mov?????ecx,?[ebp+var_C]
mov?????large?fs:0,?ecx
类型2
push????ecx
mov?????ecx,?eax
sub?????ecx,?2
pop?????ecx
jnz?????loc_xxx
...
mov?????eax,?[ebp+0Ch]//固定值
push????ebx
mov?????ebx,?eax
sub?????ebx,?1
pop?????ebx
jnz?????loc_xxx
test????byte_xxx,?4
jns?????short?loc_xxx
...
类型3
call????sub_xxx
...
sub_xxx:
cmp?????dword_1004CD90,?159AE73Eh//数据段的固定值与立即数比较
jns?????short?loc_xxx?+?1
...
push????ebx
mov?????ebx,?eax
and?????ebx,?eax
pop?????ebx
setnz???cl
mov?????ecx,?ecx
mov?????eax,?ecx
retn
...
此外,样本中还存在一些垃圾函数对逆向造成干扰。
代码分析
分析CTM - Escrow Contract Agreement.exe文件,VT查询报读率为0,发现其导入报毒率48的MSVCR100.dll样本。CTM - Escrow Contract Agreement.exe只是一个恶意dll的加载器,本身是一个word文档打包后的exe文件,文档内容带有诱导性。CTM - Escrow Contract Agreement.exe样本在tmainCRTStartup中调用MSVCR100.dll中的initterm_e函数,而该函数创建一根线程执行特定任务(任务函数被混淆,地址为loc_100052CF)。
在任务函数loc_100052CF中,该样本创建C:\ProgramData\MicrosoftMessenge目录,以及三个子目录4keanigb、bpvefocc,和cyk33yqh。


将最初的CTM - Escrow Contract Agreement.exe和MSVCR100.dll文件的文件属性设置为hide。

在每个子目录下再释放一组exe文件和dll文件,其中exe文件和原本的CTM - Escrow Contract Agreement.exe文件相同,都只是dll样本的载体,而释放的三个dll样本功能具不相同。


通过CoCreateInstance函数创建任务服务,设置定时任务,在用户登陆PC后每十分钟执行一次bpvefocc目录下的样本bpvefocc.exe。


在完成文件释放后,进程自动结束自身。

4keanigb目录下MSVCR100.dll样本的分析
同样是沿着initterm_e函数往下分析,其先是在收集感染主机上的信息,内容包括:系统信息、网络适配器的信息、主机Mac地址、IP地址、制造商、计算机名、用户名,以及Program Files和Program Files (x86)目录下的子目录和文件名信息。
其中函数sub_10006B4B处负责获取系统目录。

其中函数sub_10006B4B处负责收集系统信息和硬件信息,而函数sub_1000AF2A获取计算机名和用户名。

函数sub_1000A616收集遍历到的的子目录和文件名列表。

对于收集上来的信息使用函数sub_1004C7D8进行加密,再调用base64进行编码。

动态加载winhttp.dll库,使用https协议将收集到的信息发送给C2服务器,上传C2地址为https://gifted-boulder-transport.glitch.me/HrwQA1。

在发送完收集到的 信息后,调用函数sub_10002B94进行360秒的休眠,寻找当C:\ProgramData\MicrosoftMessenge目录下是否存在7z压缩文件,然后进行解压缩。

bpvefocc目录下MSVCR100.dll样本的分析
该样本的主要功能在函数loc_10001037中,其首先确认是否存在C:\ProgramData\MicrosoftMessenge目录,若存在则寻找该目录下的exe文件并通过CreateProcessW函数启动。在将另外两个个组件都启动后就结束自身。该组件与此前设置的定时任务配合实现在受害者主机持久化劫持。

cyk33yqh目录下MSVCR100.dll样本的分析
该样本中的_initterm_e函数中同样创建一根线程执行任务,其中任务函数首先检查是否存在oisothda目录,若是不存在则休眠300秒。


使用https协议从gifted-boulder-transport.glitch.me/Zqw4D2上下载文件,可是我这里下载的压缩文件要么失败要么是损坏的。C2服务器应该是不在了,导致无法进行下一步分析。


总结
在感染该样本后,首先查看目录下是否出现隐藏属性的word打包exe文件,并查看是否在C:\ProgramData\目录下出现MicrosoftMessenge子目录,若存在以上现象则证明确实存在感染。如果要清除该恶意样本,需要先打开任务计划程序删除新建的定时任务,删除整个MicrosoftMessenge目录的内容,同时杀死任务管理器中三个恶意组件对应的进程。该样本的混淆程度确实恶心,增加了逆向定位到该样本恶意代码的难度,并且混淆样式较多导致想要通过特征码匹配的方式去混淆几乎是不可能的。
参考
https://ti.qianxin.com/blog/articles/Obfuscation-techniques-similar-to-OceanLotus/
end
招新小广告
ChaMd5?Venom?招收大佬入圈
新成立组IOT+工控+样本分析?长期招新
欢迎联系admin@chamd5.org

关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 习近平情系祖国的“掌上明珠” 7904712
- 2 高速狂奔490公里司机要求退车退款 7808635
- 3 “爱你老己”为何击中全网年轻人 7713804
- 4 多地育儿补贴已到账 7617323
- 5 31岁女子陪妈妈体检查出自已患癌 7524134
- 6 林峯回应撞脸兵马俑:有点吓到 7426589
- 7 考古证实阿房宫既没建好也没被火烧 7334007
- 8 杭州“兔子警官”入围最美浙警 7232044
- 9 工商银行被罚没超4000万元 7137866
- 10 日本官员叫嚣“拥核” 俄方表态 7041591







Chamd5安全团队
