首页 >> 网络安全 >>病毒分析 >> TA505组织:Dridex木马分析
详细内容

TA505组织:Dridex木马分析

时间:2020-07-11     作者:Alexey Vishnyakov【转载】   来自:Positive Technologies   阅读

1.jpg

2019年TA505组织攻击统计

在过去的六个月中,积极技术专家安全中心的威胁情报团队一直密切关注TA505网络犯罪组织。恶意因素被吸引到金融领域,其目标分散在多个大洲的数十个国家中。


TA505组织以什么有名?

该cybergang已经相当多产从2014年起:他们的武器库包括Dridex银行木马,僵尸网络中微子,以及Locky,JAFF,GlobeImposter和其他勒索。


从北美到中亚,全世界都发现了该组织的袭击。


尽管主要受利润驱动,但在过去六个月中,他们还袭击了研究机构,能源公司,医疗机构,航空公司,甚至政府机构。

2.png

2019年按部门划分的TA505组织攻击

以下是包含该小组开发的恶意软件的网络钓鱼邮件的示例。根据电子邮件地址判断,此次袭击针对英国外交部。

3.jpg

该小组从2018年春季开始使用FlawedAmmyy远程访问工具,从2018年底开始使用新的ServHelper后门。TA505是少数几个可以在长时间内保持连续活动的小组。此外,每波新的攻击都显示了该组工具中有趣的变化。

4.png

2019年每个月的TA505统计

如此高的攻击率不容忽视:Proofpoint,趋势科技和Yoroi等公司的同事已经报告了TA505使用的技术和恶意软件。但是,许多有趣的问题仍未解决:


PE包装机是该集团独有的

ServHelper后门的一个版本,而不是自定义开发的功能,而是依赖于NetsupportManager远程控制软件

网络基础架构:注册商和托管提供商,包括与Buhtrap集团基础架构的重叠

小组先前未涵盖的其他恶意软件

这是有关TA505组织的系列文章的第一篇。


第1部分 最初是软件封装

在2019年6月中旬,我们看到了FlawedAmmy恶意软件加载程序的新变体,与以前的版本相比有重大变化。例如,十六进制代码的可视表示形式是不同的。在我们分析的几个样本中,这种模式成为一个常见主题。

5.jpg

ASCII码表示

快速分析表明,我们正在寻找一个未知的可执行文件打包程序。后来,我们发现该打包程序不仅用于有问题的装载程序,还用于其它TA505组织的恶意软件,包括有效载荷。我们决定探索拆包逻辑,以便能够自动提取内容。


第1层 棘手的XOR(二进制运算)

解压缩程序的关键部分之前是大量的垃圾指令。恶意软件开发人员经常使用这种技术来逃避防病毒仿真器。当使用WinAPI函数VirtualAllocEx分配了0xD20缓冲存储器时,有趣的部分开始。内存分配有PAGE_EXECUTE_READWRITE权限,该权限允许编写和执行代码。

6.jpg

解包程序的非垃圾部分开始

文件的数据部分包含一个数组。数组的内容被解码,结果被写入分配的内存。这是解码过程:

  • 将4个字节解释为整数。

  • 减去序列中字节的顺序号。

  • 使用设置的常数执行XOR。

  • 向左循环移动7个位置。

  • 再次使用设置常数执行XOR。

7.jpg

第一层解码

稍后参考时,我们将其称为SUB-XOR-ROL7-XOR算法。

解码后依次进行变量初始化。这可以表示为以以下格式声明C结构:

image.png

其中:

  • hkernel32描述了库kernel32.dll。

  • 当注意到样本的视觉相似性时,aEncodedBlob是指向我们正在讨论的编码数据块的指针。

8.jpg

编码数据块

  • nEncodedBlobSize是编码数据块的4字节大小。

  • nBlobMagic是数据块前面的4字节常量,稍后我们将返回该常量。

  • nBlobSize是已解码数据块的4字节大小。

  • 我们称其为ZOZ结构(在33t中称为“ 505”)。

9.jpg

填充ZOZ

代码执行跳到已解码的缓冲区(消除了对现在解码的数据包含可执行代码的怀疑),并且在函数参数中传递了指向所填充结构的指针:

10.jpg

调用解码的代码,并以ZOZ结构作为参数传递

11.jpg

解码和反汇编的代码部分

第2层 少即是多

一旦代码部分被解码并运行,它将开始收集WinAPI函数GetProcAddress,VirtualQuery,VirtualAlloc,VirtualProtect,VirtualFree和LoadLibraryA的地址。这些功能通常与shellcode一起使用,以修饰内存以运行有效负载。

当一切准备就绪时,将传递已编码的数据块,然后“精简”。每五个字节的前两个丢弃,其余三个保留:

12.jpg

减少编码数据块

然后开始解码,我们称之为SUB-XOR-ROL7-XOR。为了执行XOR,将在ZOZ中传递的nBlobMagic值用作常量。

13.jpg

重用SUB-XOR-ROL7-XOR算法

之后,将结果数组传递给一个函数,在其中进行更复杂的转换。根据特征常数值,我们可以轻松地确定一种流行的FSG(快速小型货物)PE包装机。奇怪的是,原始FSG打包程序版本按部分压缩PE,而在我们的情况下,算法按原样使用PE。

14.jpg

FSG Packer实施

在此阶段,内存中包含已解压缩的PE文件,可供进一步分析。Shellcode的其余部分将使用解压后的版本覆盖地址空间中的原始PE,然后将其正确运行。有趣的是,在修改模块入口点期间,存在涉及PEB结构的操作。我们不知道为什么攻击者决定从第一层逻辑转发kernel32描述符,而不是在相同的PEB结构的帮助下获取它。

15.jpg

PEB中将覆盖已加载模块的入口点

结论

有效负载的解压缩如下:

  • 用SUB-XOR-ROL7-XOR解码shellcode。

  • 填充ZOZ结构并调用shellcode。

  • 轻载(5到3)。

  • 使用SUB-XOR-ROL7-XOR解码有效负载。

  • 使用FSG压缩程序解压缩。

随着恶意软件的发展,其逻辑也随之变化:SUB-XOR-ROL7-XOR循环移位(在我们的示例中为7个位置)已更改为5个和9个位置,并发布了x64 Packer版本。赛博帮的“电话卡”打包机是有关TA505工具和技术的一系列即将来临的故事的绝妙开端。


在以后的文章中,我们将讨论该小组的工具在最近的攻击中如何发生变化,以及其参与者如何与其他网络组织进行交互。我们还将探索以前未涵盖的恶意软件样本。


作者:Positive Technologies、Alexey Vishnyakov、Stanislav Rakovsky

.
更多

1589982338979126.png


ots网络社区

www.ots-sec.cn

猜你喜欢
更多
联系方式
更多

投稿邮箱:1481840992@qq.com

交流群2群:622534175

ots网络社区3群:1078548359

关注我们
更多
技术支持: 建站ABC | 管理登录