导语:LitterDrifter蠕虫是用VBS编写的,有两个主要功能:在USB驱动器上自动传播,以及与广泛、灵活的命令和控制服务器进行通信。这些特性以与组织目标一致的方式实现,在广泛目标上维护持久的命令和控制(C2)通道。
Gamaredon又被称为Primitive Bear、ACTINIUM和Shuckworm,它的大规模活动通常伴随着针对特定目标的数据收集工作,这些目标的选择一般是出于间谍目的。这些活动与部署各种机制和工具并行,机制和工具又尽可能多地保持对这些目标的访问。其中一种工具是USB传播蠕虫,我们将其命名为LitterDrifter。
LitterDrifter蠕虫是用VBS编写的,有两个主要功能:在USB驱动器上自动传播,以及与广泛、灵活的命令和控制服务器进行通信。这些特性以与组织目标一致的方式实现,在广泛目标上维护持久的命令和控制(C2)通道。
接下来,我们将深入分析Gamaredon的LitterDrifter恶意软件及其C2基础设施。
Gamaredon的攻击目标包括乌克兰、美国、越南、智利、波兰和德国等多个国家。
LitterDrifter提交的病毒总数
该组织最近开始部署LitterDrifter,旨在通过可移动USB驱动器传播并保护C2通道。
LitterDrifter概述
LitterDrifter是一种自我传播的蠕虫,具有两个主要功能:在驱动器上传播,并建立通往Gamaredon广泛指挥和控制基础设施的C2通道。这两个功能驻留在一个以“trash.dll”形式保存到磁盘的业务流程组件中,尽管它有文件扩展名,但它实际上就是一个VBS。
LitterDrifter高级执行流程
dll作为初始的编排组件,其中运行的主要功能是解码和执行其他模块,并在受害者环境中保持初始持久性。
成功执行后,它将运行提取的两个模块:
1. 散布器(Spreader)模块:在系统中传播恶意软件,并通过优先感染mediatype=NULL的逻辑磁盘(通常与USB可移动媒体相关),将其传播到其他环境。
2. C2模块:通过生成内置C2服务器的随机子域来检索命令和控制服务器IP地址,同时还维护一个备份选项,以便从Telegram通道检索C2 IP地址。它的主要目的是建立与攻击者C&C服务器的通信,并执行传入的有效负载。
Dumpster Diving(垃圾搜索)
DEOBFUSCODER去混淆编码
编排组件(称为DEOBFUSCODER)是严重混淆的,它是由一系列带有字符替换混淆的字符串构造的,由7个具有名称混淆的函数和变量组成。在“Deobfucate”操作的整个运行过程中,LitterDrifter调用一个函数,该函数将执行延迟几秒钟(具体时间因示例而异),以延迟后续操作。
main函数接受两个编码字符串(另外两个恶意组件)作为参数。然后,它在用户的“Favorites”目录下声明了两个路径,用于存储来自VBS的其他2个编码组件的两个解码脚本。
为了确保其持久性,Deobfuscoder将原始脚本复制到用户目录中名为“trash.dll”的隐藏文件中。
脚本对提供的编码字符串进行解码,并将它们作为有效负载组件“jersey.webm”和扩展程序组件“jaw.wm”写入“收藏夹”目录,文件的名称和扩展名以及%userprofile%中的位置因变体而异。
在创建这些文件之后,恶意软件继续为这两个组件中的每一个设置计划任务,确保它们定期执行。此外,它在注册表运行项中为用户的启动项添加了一个条目,以确保它们在启动时运行。
任务和启动条目都使用听起来像“RunFullMemoryDiagnostic”和“ProcessMemoryDiagnosticEvents”这样的技术名称进行伪装,以显得合法并避免引起怀疑。
编排器DEOBFUSCODER的Main Function解混淆片段
整个流程被模糊的函数和变量名以及内联脚本的使用故意模糊,这使得一般的观察者很难辨别其意图和活动。
Spreader模块分析
Spreader模块的核心本质在于递归地访问每个驱动器中的子文件夹,并创建LNK诱饵快捷方式,以及隐藏的“trash.dll”文件副本。
trash.dll作为一个隐藏文件与一个诱饵LNK一起分布在USB驱动器中
在执行时,该模块使用Windows Management Instrumentation (WMI)查询计算机的逻辑驱动器,并搜索MediaType值设置为null的逻辑磁盘,这是一种通常用于识别可移动USB驱动器的方法。
LitterDrifter的散布器组件
对于检测到的每个逻辑驱动器,传播程序调用createShortcutsInSubfolders函数。在这个函数中,它将所提供文件夹的子文件夹迭代到深度2。
对于每个子文件夹,它使用createsshortcut函数作为“Create LNK”操作的一部分,该操作负责生成具有特定属性的快捷方式。这些快捷方式是从代码中的数组中随机选择名称的LNK文件。一个诱饵名称示例如"Bank_accоunt", "постановa", "Bank_accоunt", "службовa", "cоmpromising_evidence"。LNK文件使用wscript.exe***执行带有指定参数“”“trash.dll”“/webm//e:vbScript//b/wm/cal”的“trash.dll”。除了生成快捷方式外,该函数还在子文件夹中创建一个隐藏的“trash.dll”副本。
Spreader组件中用于迭代子文件夹的函数
C2模块分析:清除垃圾
Gamaredon的C&C方法是非常独特的,因为它使用域作为C2服务器的流通IP地址的占位符。
在尝试联系C2服务器之前,脚本检查%TEMP%文件夹中是否有一个现有的C2配置文件,该文件的名称在恶意软件中是硬编码的。这种机制作为恶意软件的自检,验证它是否已经感染了设备。如果存在,当前执行可能只是由前面讨论的持久性机制触发的计划执行;如果没有现有的配置文件,恶意软件将切换设备并使用WMI查询ping Gamaredon的其中一个域:select * from win32_pingstatus where address='Write
LitterDrifter使用WMI查询检索C2 IP地址
有了IP地址,LitterDrifter将IP构造成URL。格式通常为http://
最终的结果是一个用户代理,看起来类似于mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/88.0.4324.152 yabrowser/21.2.3.106 yowser/2.5 safari/537.36;;
LitterDrifter准备HTTP请求,构造URL和用户代理
请求的HTTP标头也经过精心定制。例如,在一个样本中,Referer字段包含https://www.crimea.kp.ru/daily/euromaidan/,它还在Cookie字段中隐藏了Accept-Language和字符串marketCookie的一些细节。
HTTP请求函数
LitterDrifter使用一个失败计数器来选择哪个C2方法是相关的。每次C2未能返回有效负载或Telegram备份通道时,失败计数器都会增加,LitterDrifter从中提取替代C2。代码流表明,要返回的第一个答案通常是一个Telegram频道ID,它保存在备份文件中。
根据失败计数,LitterDrifter选择连接哪个C2:
1.如果失败计数器当前设置为0,则对保存在配置文件中的文件执行请求。
2.如果失败计数器当前设置为1,LitterDrifter将尝试使用WMI Query解析其嵌入的C2域,如前所述。
3.如果失败计数器设置为2,LitterDrifter尝试连接到从Telegram备份通道提取的C2,使用不同的用户代理和https://www.interfax.ru/tags/的Referer,这是另一个俄罗斯新闻网站,它会从中提取一个用作C2的IP地址。
Gamaredon的Telegram频道隐藏了一个C&C的IP地址
如果在C2应答中找到有效负载,LitterDrifter将尝试解码它。它打开所有base64内容,并尝试运行解码后的数据。根据分析,负载没有下载到大多数目标。
LitterDrifter的失败计数选项和接收有效负载的执行(去混淆)
基础设施
在整个分析过程中,Gamaredon在这次行动中使用的基础设施有明显的模式。包括注册模式,因为Gamaredon的LitterDrifter使用的所有域名都是由REGRU-RU注册的,并且是TLD .ru的一部分。
这些发现与过去关于Gamaredon基础设施的其他报告一致。
基于其中的一些模式,我们能够将特定的域和子域与LitterDriffter的活动联系起来,并将其他域与Gamaredon的其他活动集群联系起来。
在LitterDrifter活动中,C2模块通过WMI查询获得gamaredon拥有的域的解析。它通过使用随机单词和数字生成硬编码域的随机子域来实现这一点,因此每个域都显示出不同范围的相关子域。有些域只有几个子域,而另一些则有几百个子域。下图表显示了每个域的子域数量:
每个域的子域数量
如前所述,对Gamaredon域的WMI查询返回一个IP地址,该地址用作活动的操作C2。平均而言,一个IP地址可以运行大约28小时。但是,作为活动C2的IP地址通常一天会更改几次,所使用的所有IP地址都可能属于同一子网,如下所示:
过去两个月每天的C&C IP地址数目
总结
很明显,LitterDrifter是为支持大规模收集操作而设计的,它利用简单而有效的技术,尽可能触及广泛的目标,但LitterDrifter并不依赖于突破性的技术,可能看起来是一个相对简单的恶意软件。
文章翻译自:https://research.checkpoint.com/2023/malware-spotlight-into-the-trash-analyzing-litterdrifter/如若转载,请注明原文地址