导语:fortinet发现IcedID和Trickbot这两个恶意软件家族不仅通过分发相互支持。也可能在开发方面合作,正如他们的行为相似性所表明的那样。
自2017年9月发现以来,银行木马IcedID一直很活跃。今年上半年,它也被其它知名的银行木马家族分发,如Emotet和Ursnif。使用这种方案,分布式恶意软件系列可以增加其传播潜力。这种行为有两种可能的动机。其一,它允许downloader(在本案例中也是银行特洛伊木马)执行自己的网络犯罪操作,同时通过向他们的亲属提供分发服务而获利。其二,不同恶意软件服务的订户可能只是想通过用多种恶意软件攻击轰炸他们的受害者来增加提取有价值信息的机会。
FortiGuard实验室最近发现了一个Trickbot’s 的C2(命令和控制)服务器向受害者发送命令,指示其bot下载IcedID银行特洛伊木马的最新版本。
在快速了解IcedID的行为后,发现它已经更新,因此现在它与Trickbot非常相似。在本文中,通过我们的分析,概述在这个新变体中观察到的重大变化。我们将在另一篇提供更多详细信息的文章对此进行跟进。
一、Trickbot——给予者
Trickbot和IcedID之间的合作最初是在FortiGuard实验室的Kadena威胁情报系统(KTIS)中观察到的,我们的bot跟踪系统捕获了Trickbot发送命令下载名为crypt_2_100_1.exe的新可执行文件。
图1. KTIS Trickbot Tracker下载示例
Trickbot C2发送给受感染的客户端命令代码如下所示:
· 1 – Keep Alive
· 42 – 下载二进制并通过CreateProcess执行
· 62 – 下载插件组件并注入svchost
· 92 – 删除文件
命令ID 42带有编码的base64数据,解码后包含下载二进制文件的URL的细节。
图2显示了下载二进制文件的实际Trickbot命令,该文件被证明是IcedID银行特洛伊木马。
图2. Trickbot C&C命令
据我们所知,这个新版本的IcedID目前还没有大规模分发。在两周前看到Trickbot命令下载此恶意软件之后,我们没有再看到该请求,也没有看到它与其他分发方法一起出现。
二、IcedID——接受者
文件名和目录名混淆
在转到其主要有效载荷之前,此IcedID变体首先解密包含bot ID,affiliate ID和C2域名在内的C&C(命令和控制)配置。请注意,在此部分中,其进程已在svchost.exe上注入。此恶意软件所做的下一件事是根据其域SID信息生成受感染计算机的唯一ID。如果无法获取此信息,则使用系统日期时间。
图3.生成唯一ID的函数
此唯一ID还用作为目录和文件名、事件名称、共享内存映射名称等生成字符串的key。也用作RC4密钥,用于加密下载的模块以及将存储在受感染模块中的其他组件。
安装目录也已更改为CommonAppData(例如C:\ProgramData)。IcedID创建一个目录释放自身的副本,另一个目录释放其下载的模块和其他组件。然后,使用唯一ID和硬编码值作为种子,通过自定义算法生成目录和文件名。
图4.加密和释放组件
图5.安装目录
客户端服务器通信
与以前的版本一样,受感染客户端和C2服务器之间的所有通信都通过HTTPS协议进行保护。 POST流量的显着变化是添加了URI参数“g”,它引用了请求ID。简而言之,此ID表示应在C2端执行哪些操作。此参数初始值为“2”以发送新的感染报告。下图显示了发送新感染报告时IcedID的通信。
图6. IcedID C&C通信
下面是发送到C&C的消息的细节:
· g – 命令ID
· c – 客户ID(Bot ID +唯一ID)
· a – 会员ID
· f – 用户名
· h – 计算机名
· m – 是管理员还是域控制器
· j – Cpuid
可能的值:
· < 0x04 – not VM
· 0x04 to 0x07 – VMWare
· 0x08 to 0x0B – XenVM
· 0x10 to 0x13 – MicroVM
· 0x20 to 0x23 – KVMK
· 0x80 to 0x83 – Vbox
· s – 操作系统版本
发送报告后,C2响应一条多行消息,其中包含将在受感染机器上执行的一系列功能。在我们的观察中,每行最多包含由分号分隔的三个元素。让我们仔细看看下面显示的C2响应之一。
图7. C&C响应
与Trickbot类似,此IcedID变体使用命名事件来同步执行核心及其加载模块。注入后,为这些模块分配事件名称(ID)。第一个元素指定执行该函数的模块的ID,在本例中,“0”表示核心模块。第二个元素是指模块要执行的函数的索引。第三个元素是指定函数的参数。
下载和执行IcedID模块
此更新的IcedID变体实现了一个与Trickbot非常相似的新方案。一个值得注意的更新是将二进制模块注入不同进程之中。在以前的版本中,这些模块嵌入在其主文件中。在这个新变体中,最初只有控制恶意软件执行的核心模块位于受害者系统中。从C2服务器请求并下载其它模块。这显着降低了其初始文件大小,同时也增加了其灵活性。
回顾上一节C2的响应,在命令块“0; 1; 2”中,索引为“1”的函数负责从C2服务器下载二进制模块。在执行此功能期间,功能参数(第三个元素)指的是要下载的模块的ID,此值从“2”增加“32”,其结果作为GET方法请求中的“g”参数传递给C2。下面的图8显示了用于从恶意软件C2下载不同模块的URI的示例。
图8. 下载模块的URI示例
如果请求成功,则C2返回RC4加密的数据,前8个字节包含用于解密的密钥。此数据包含要注入新svchost.exe进程的二进制模块。
图9. 解密模块的内存转储
看一下解密模块的两个转储,我们已经有了一些关于模块意图的提示。我们将在后续文章中更详细地讨论IcedID的模块及其功能。
解密并加载模块后,此模块使用RC4密码进行加密,使用唯一ID作为密钥。加密的模块放到其安装目录中。通过这种方式,即使以某种方式发现模块,如果没有生成的唯一ID,也无法轻易解密。该技术将IcedID与Trickbot区分开来,后者在释放其模块时没有对文件内容进行加密或对文件名混淆。
三、总结
我们观察到网络犯罪格局的重大转变。银行特洛伊木马通过在受害者系统中杀死彼此进程竞争的日子已经一去不复返了。除了IcedID和Trickbot之外,还有其他一些报告涉及不同银行木马在分发方面的合作。
然而,本案例情况特别特殊,因为这两个恶意软件家族不仅通过分发相互支持。正如我们的分析所示,他们也可能在开发方面合作,正如他们的行为相似性所表明的那样。
IcedID在模块加载和分发方面已经改进。它现在与Trickbot非常相似,并且由于添加了文件内容加密和文件名混淆,规避性更好。
与以往一样,FortiGuard Labs(以及我们的Cyber Threat Alliance (CTA) counterparts)将继续监控此恶意软件协作。
IOC:
Download URL:
hxxp://whoulatech[.]com/crypt_2_100_1[.]exe
Sample (SHA256):
d0a248655d40c1312058ecc096a32cab86e77737908f14477e2152015a503fa1 – W32/IcedID.KAD!tr.pws
C2:
whoulatech[.]com
fillizee[.]com
efiging[.]com
entabor[.]com
aboupir[.]com