查看网站是否代理IP
Gamaredon又被称为Primitive Bear、ACTINIUM和Shuckworm,它的大规模活动通常伴随着针对特定目标的数据收集工作,这些目标的选择一般是出于间谍目的。这些活动与部署各种机制和工具并行,机制和工具又尽可能多地保持对这些目标的访问。其中一种工具是USB传播蠕虫,我们将其命名为LitterDrifter。
LitterDrifter蠕虫是用VBS编写的,有两个主要功能:在USB驱动器上自动传播,以及与广泛、灵活的命令和控制服务器进行通信。这些特性以与组织目标一致的方式实现,在广泛目标上维护持久的命令和控制(C2)通道。
该组织最近开始部署LitterDrifter,旨在通过可移动USB驱动器传播并保护C2通道。
LitterDrifter是一种自我传播的蠕虫,具有两个主要功能:在驱动器上传播,并建立通往Gamaredon广泛指挥和控制基础设施的C2通道。这两个功能驻留在一个以“trash.dll”形式保存到磁盘的业务流程组件中,尽管它有文件扩展名,但它实际上就是一个VBS。
dll作为初始的编排组件,其中运行的主要功能是解码和执行其他模块,并在受害者环境中保持初始持久性。
1. 散布器(Spreader)模块:在系统中传播恶意软件,并通过优先感染mediatype=NULL的逻辑磁盘(通常与USB可移动媒体相关),将其传播到其他环境。
2. C2模块:通过生成内置C2服务器的随机子域来检索命令和控制服务器IP地址,同时还维护一个备份选项,以便从Telegram通道检索C2 IP地址。它的主要目的是建立与攻击者C&C服务器的通信,并执行传入的有效负载。
编排组件(称为DEOBFUSCODER)是严重混淆的,它是由一系列带有字符替换混淆的字符串构造的,由7个具有名称混淆的函数和变量组成。在“Deobfucate”操作的整个运行过程中,LitterDrifter调用一个函数,该函数将执行延迟几秒钟(具体时间因示例而异),以延迟后续操作。
main函数接受两个编码字符串(另外两个恶意组件)作为参数。然后,它在用户的“Favorites”目录下声明了两个路径,用于存储来自VBS的其他2个编码组件的两个解码脚本。
为了确保其持久性,Deobfuscoder将原始脚本复制到用户目录中名为“trash.dll”的隐藏文件中。
脚本对提供的编码字符串进行解码,并将它们作为有效负载组件“jersey.webm”和扩展程序组件“jaw.wm”写入“收藏夹”目录,文件的名称和扩展名以及%userprofile%中的位置因变体而异。
在创建这些文件之后,恶意软件继续为这两个组件中的每一个设置计划任务,确保它们定期执行。此外,它在注册表运行项中为用户的启动项添加了一个条目,以确保它们在启动时运行。
整个流程被模糊的函数和变量名以及内联脚本的使用故意模糊,这使得一般的观察者很难辨别其意图和活动。
Spreader模块的核心本质在于递归地访问每个驱动器中的子文件夹,并创建LNK诱饵快捷方式,以及隐藏的“trash.dll”文件副本。
对于检测到的每个逻辑驱动器,传播程序调用createShortcutsInSubfolders函数。在这个函数中,它将所提供文件夹的子文件夹迭代到深度2。
Gamaredon的C&C方法是非常独特的,因为它使用域作为C2服务器的流通IP地址的占位符。
在尝试联系C2服务器之前,脚本检查%TEMP%文件夹中是否有一个现有的C2配置文件,该文件的名称在恶意软件中是硬编码的。这种机制作为恶意软件的自检,验证它是否已经感染了设备。如果存在,当前执行可能只是由前面讨论的持久性机制触发的计划执行;如果没有现有的配置文件,恶意软件将切换设备并使用WMI查询ping Gamaredon的其中一个域:select * from win32_pingstatus where address=Write
请求的HTTP标头也经过精心定制。例如,在一个样本中,Referer字段包含,它还在Cookie字段中隐藏了Accept-Language和字符串marketCookie的一些细节。
LitterDrifter使用一个失败计数器来选择哪个C2方法是相关的。每次C2未能返回有效负载或Telegram备份通道时,失败计数器都会增加,LitterDrifter从中提取替代C2。代码流表明,要返回的第一个答案通常是一个Telegram频道ID,它保存在备份文件中。
2.如果失败计数器当前设置为1,LitterDrifter将尝试使用WMI Query解析其嵌入的C2域,如前所述。
3.如果失败计数器设置为2,LitterDrifter尝试连接到从Telegram备份通道提取的C2,使用不同的用户代理和的Referer,这是另一个俄罗斯新闻网站,它会从中提取一个用作C2的IP地址。
如果在C2应答中找到有效负载,LitterDrifter将尝试解码它。它打开所有内容,并尝试运行解码后的数据。根据分析,负载没有下载到大多数目标。
在整个分析过程中,Gamaredon在这次行动中使用的基础设施有明显的模式。包括注册模式,因为Gamaredon的LitterDrifter使用的所有域名都是由REGRU-RU注册的,并且是TLD .ru的一部分。
基于其中的一些模式,我们能够将特定的域和子域与LitterDriffter的活动联系起来,并将其他域与Gamaredon的其他活动集群联系起来。
在LitterDrifter活动中,C2模块通过WMI查询获得gamaredon拥有的域的解析。它通过使用随机单词和数字生成硬编码域的随机子域来实现这一点,因此每个域都显示出不同范围的相关子域。有些域只有几个子域,而另一些则有几百个子域。下图表显示了每个域的子域数量:
如前所述,对Gamaredon域的WMI查询返回一个IP地址,该地址用作活动的操作C2。平均而言,一个IP地址可以运行大约28小时。但是,作为活动C2的IP地址通常一天会更改几次,所使用的所有IP地址都可能属于同一子网,如下所示:
很明显,LitterDrifter是为支持大规模收集操作而设计的,它利用简单而有效的技术,尽可能触及广泛的目标,但LitterDrifter并不依赖于突破性的技术,可能看起来是一个相对简单的恶意软件查看网站是否代理IP。