CTM – Escrow Contract Agreement攻击样本分析

逆向病毒分析 2年前 (2022) admin
540 0 0

介绍

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

CTM - Escrow Contract Agreement攻击样本分析

IOC

文件名:MSVCR100.dll

MD5:1dbd3e88bc5cb77a7401cb49b44f554e

SHA-1:844264bd15330e7d887051e7a7d062fdef72f49b

SHA-256:f19c7115755ed90c0ad5dfc9321b44aa43228e80a2cd5bc714fc6a1ddcd0d3a6

文件名:4keanigbMSVCR100.dll

MD5:c7b6c3eedb55f4f2170ece002c45091c

SHA-1:c11dd1d35c4664ff5951e5156537e0f3c4b8a759

SHA-256:bf3e495f43a6b333b10ae69667304cfd2c87e9100de9d31365671c7b6b93132e

文件名:bpvefoccMSVCR100.dll

MD5:7ccae006a305efeff74b9be596abbb56

SHA-1:2e27f4c4f4d7bfb3514cf441ca85906e43232de0

SHA-256:2a6a1a026dcff8bf52e6df64d48f5ffaadbd29e4317b753a16c3e291abc7e80d

文件名:cyk33yqhMSVCR100.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:ProgramDataMicrosoftMessenge目录,以及三个子目录4keanigb、bpvefocc,和cyk33yqh。

CTM - Escrow Contract Agreement攻击样本分析

image-20220702191547083

CTM - Escrow Contract Agreement攻击样本分析

image-20220702192127434

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220702200253742

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220702192540517

CTM - Escrow Contract Agreement攻击样本分析

image-20220702194359314

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220703141514049

CTM - Escrow Contract Agreement攻击样本分析

image-20220703141919576

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220702194617154

4keanigb目录下MSVCR100.dll样本的分析

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

其中函数sub_10006B4B处负责获取系统目录。

CTM - Escrow Contract Agreement攻击样本分析

image-20220703193402038

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220703193535129

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220703211202579

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220703205806408

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220702203105290

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220703213153961

bpvefocc目录下MSVCR100.dll样本的分析

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220703232802068

cyk33yqh目录下MSVCR100.dll样本的分析

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220704000059414

CTM - Escrow Contract Agreement攻击样本分析

image-20220703235408825

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

CTM - Escrow Contract Agreement攻击样本分析

image-20220704000310167

CTM - Escrow Contract Agreement攻击样本分析

image-20220703230806617

总结

在感染该样本后,首先查看目录下是否出现隐藏属性的word打包exe文件,并查看是否在C:ProgramData目录下出现MicrosoftMessenge子目录,若存在以上现象则证明确实存在感染。如果要清除该恶意样本,需要先打开任务计划程序删除新建的定时任务,删除整个MicrosoftMessenge目录的内容,同时杀死任务管理器中三个恶意组件对应的进程。该样本的混淆程度确实恶心,增加了逆向定位到该样本恶意代码的难度,并且混淆样式较多导致想要通过特征码匹配的方式去混淆几乎是不可能的。

参考

https://ti.qianxin.com/blog/articles/Obfuscation-techniques-similar-to-OceanLotus/

end


招新小广告

ChaMd5 Venom 招收大佬入圈

新成立组IOT+工控+样本分析 长期招新

欢迎联系[email protected]



CTM - Escrow Contract Agreement攻击样本分析

原文始发于微信公众号(ChaMd5安全团队):CTM – Escrow Contract Agreement攻击样本分析

版权声明:admin 发表于 2022年7月5日 上午9:01。
转载请注明:CTM – Escrow Contract Agreement攻击样本分析 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...