公司新闻
首页 > 公司新闻 > 在芦苇丛中假冒

在芦苇丛中假冒

2024 .11 .29

我们正在追踪一种新的网络威胁,它结合了多种文件格式,创造出一种更具多功能性的恶意软件。

作者:Luigino Camastra Jan irmer Adolf Steda 和 Luk Obrdlk

自2018年8月以来,我们一直在监控一种新的恶意软件家族,我们称之为Rietspoof。Rietspoof是一种新型的多阶段恶意软件,具有一些非常显著的特征和功能。当我们开始追踪Rietspoof时,它的更新频率大约是每月一次。然而,在2019年1月,我们注意到更新频率已改为每天一次。

Rietspoof利用多个阶段,结合多种文件格式,以交付潜在更强的恶意软件。我们的数据显示,第一阶段通过即时通讯客户端如Skype或Live Messenger进行交付。该阶段传递一个高度混淆的Visual Basic脚本,内含编码硬编码和加密的第二阶段CAB文件。该CAB文件被展开为一个可执行文件,并使用有效的签名进行数字签名,主要使用Comodo CA。该exe程序在第四阶段安装一个下载程序。

有趣的是,第三阶段使用一种简单的TCP协议与其CampC进行通信,其IP地址在二进制文件中是硬编码的。该协议采用AES的CBC模式进行加密。在我们观察的一个版本中,密钥是从初始握手中派生的,而在第二个版本中,则是来自硬编码的字符串。在第二个版本中,该协议不仅支持其自身的TCP协议,还尝试利用HTTP/HTTPS请求。看到CampC通信协议被修改到如此程度是很不寻常的,因为更改通信协议需要付出一定的努力。尽管改变混淆方法是常见的,但CampC通信在大多数恶意软件中通常保持相对稳定。

这个下载程序使用自创的协议从硬编码地址检索下一个阶段第四阶段。虽然第三阶段的协议包括机器人功能,但第四阶段仅作为专门的下载程序。

此外,CampC服务器仅与设置为美国的IP地址进行通信,这使我们推测这可能是一次特定目标的攻击,或者攻击者可能只在进行测试使用美国IP范围。也有可能还有更多阶段尚未被揭示。以下是我们迄今为止的完整分析结果。

VBS 解混淆及嵌入文件投放

Visual Basic脚本的第一部分是一个用于读取和解混淆嵌入二进制文件的函数。

从这个代码片段中,可以明显看出该脚本开始从特定偏移位置读取代码,以解混淆CAB文件并为下一个阶段做准备。该代码逐个字符地转换为其ANSI值,并添加到计数器变量中。在每一步,计数器与硬编码的值val01,值为15进行异或操作,并附加到已解码的字节中。有趣的是,在每一步中,字符串varstr01也被附加到varstr02中。完成这个步骤后,varstr02被用作新函数的参数。第二个参数是TempPath,其文件名如下:

在这一步,CAB文件被保存到机器的Temp文件夹中,名称为JSWdhndksjk。接下来的阶段需要从中提取,这通过使用expandexe实现。

执行PE并掩盖痕迹

该脚本首先通过读取注册表项“HKEYUSERSS1519EnvironmentTEMP”检查当前用户是否为管理员。如果成功,它将funcreadRegistry设置为True。

当该标志被设置为True时,该VBS将日期更改为“01012109”,从TEMP中删除CAB文件,运行展开的可执行文件,并删除原始脚本以掩盖痕迹。然后,它会将日期更改回实际日期。这个临时日期2109年在脚本或投放文件中并没有使用。最初,我们认为这只是一个打字错误,预期的临时日期是“01012019”,但这个假设未得到证实。

恶意软件作者的一个有趣举动是使用cmd /c从命令行运行命令。看一下该命令的描述:

这很可能是尝试通过生成多个命令行来打破行为检测即执行的命令。

即使跳过之前的步骤,如果当前用户不是管理员,接下来的步骤是运行展开的PE文件。首先,脚本删除一个名为“Microsoft Windows DOM object helper”的计划任务。据信,这是为了确保它能够在计划任务中创建一个新的值,指向从前一个阶段展开的PE文件,并设置为在一分钟后执行。然后,CAB文件将从TEMP目录中删除。

添加持久性

在VBS的新版本中,恶意软件作者于2019年1月22日添加了一个用于持久性的功能。该脚本在启动项中创建一个名为“WindowsUpdatelnk”的新LNK文件。这个lnk文件在启动时运行展开的PE文件,以确保可执行文件在机器重启时会再次执行。

签名

几乎每个版本的VBS文件都包含一个新的证书,例如:

当我们简单地将这段代码从base64转换为十六进制,然后解析这个ASN1十六进制字符串时,我们得到了该证书的序列号:

大多数证书由COMODO或Sectigo颁发。

第三阶段 下传的机器人

到目前为止,我们已经看到了Rietspoof第三阶段的两个版本,可以观察到它们主要在通信协议方面有所不同。这个阶段具有简单机器人功能:它可以下载/上传文件、启动进程或发起自毁功能。CampC服务器似乎也实现了基于IP地址的基本地理围栏。当我们试图从实验室网络与其通信时,并没有收到任何“有趣”的命令;然而,当我们将虚拟客户端移至美国时,我们收到了一条包含下一阶段的命令。

我们注意到第三阶段的开发正在快速演变,有时会同时运行两个不同的分支。在我们的分析过程中,通信协议经历了多次修改并添加了新功能。例如,早期版本支持字符串混淆,几天后实现;然后在1月23日,我们看到一些示例回滚了一些这些更改。更新版本还支持命令行开关“/s”,用于将自身安装为名为“windmhlp”的服务。

时间线

151 混淆占位符,通信协议v1181 实现混淆,服务安装,通信协议v2221 混淆被弃用,通信协议v3231 混淆被弃用,通信协议v1,服务安装

该机器人被地理围栏阻止,或者当前没有正在进行的分发。通信具有简单的结构:

Req clienthello (在版本2中被弃用)Res clienthello (在版本2中被弃用)Req IDRes OK 或 HARDWAREReq HW (如果前一个响应是HARDWARE)Res OK

“硬件”命令仅在发送的客户端ID首次被看到时发送。“OK”命令始终导致通信终止。这个简单的协议每隔几分钟执行一次。

通信协议v1

第三阶段第一个版本的通信使用了一种相当简化的协议。起初,握手生成一个密钥和初始化向量,握手由一条消息和响应组成,两个都是32个随机字节和一个4字节的CRC32校验和。之后,随机字节进行异或运算,结果应用SHA256得出密钥。类似地,将MD5应用于SHA256摘要得出初始化向量。从现在起,这些参数用于通过AESCBC加密消息。请注意,填充函数设计不太合理:最后一个块根据需要填充到16字节,不论如何,最后一个块后总是附加16个零字节。

飞驰加速器手机版

初始握手和随后的密钥生成:这里存在一个未显示的端口数组检查。

以“HELLOn”格式发送的字符串被混淆,随后被解混淆混淆占位符

在芦苇丛中假冒

通信以clienthello 开始,该消息简单地包含“HELLOn”,并期望“HELLOn”作为回复实际上总是回复“HELLOnnnnnn”。接着客户端发送命令“IDlt适配器MAC地址的MD5gt210n”。此时,一条回复可能是“OK”、“HARDWARE”或更强大的命令。前者的通信结束,通信循环休眠两到五分钟。“HARDWARE”回复会引发请求“HWlt操作系统信息gt CPU RAMlt内存信息gt USERlt进程权限gt”,进程权限为“admin”该进程具备管理员权限或“user”否则。同样,在这一消息之后会收到“OK”回复,通信结束。

可能会在“OK”命令中代替的六个替代命令之一包括:

DELETE 删除文件,文件名以TEMP的位置为前缀RUN 创建进程以文件为lpCommandLine,文件名以TEMP的位置为前缀DWN 下载文件,如果文件名后缀是upgrade,则抛出VBS更新脚本,将恶意软件替换为新版本。UPL 从TEMP上传文件DAR 下载,保存至TEMP/并执行DSFn 自我删除

通信协议v2

Rietspoof第三阶段的第二个版本也使用了相似的协议,并有一些新添加。第二个版本试图通过HTTP/HTTPS进行通信,除非设置了代理,在这种情况下,它回退到原始TCP。这个新版本还跳过了初始握手,因为它采用了硬编码的字符串“M9h5an8f8zTjnyTwQVh6hYBdYsMqHiAz”,而不是将两个随机字符串进行异或运算。再次,对该字符串进行SHA256处理,得出密钥,而MD5与SHA256组合,得出初始化向量。这些参数通过AESCBC加密消息。

混淆后的“HELLOn”字符串

恶意软件生成的HTTP GET请求在一定程度上是普通的,除了可能存在的三个头。在下面的HTTP请求示例中,注意ContentMD5头不是强制性的;此外,ContentMD5头的使用是自定义且标准不合规的。同时,用户代理字符串在二进制文件中是硬编码的。

GET /ltpathgtltGET datagt HTTP/11 Host ltdomaingt Connection close ContentMD5 ltbase64编码的消息gt Useragent Mozilla/50 (Windows U Windows NT 51 enUS rv1811) Gecko/20061204 Firefox/2001

幸运的是,当使用HTTP代理时,旧协议仍然存在。我们相信,这可能是对一些简单的中间人攻击的保护,而这些攻击可能在分析恶意软件时被利用。然而在我们的案例中,它允许我们通过对密钥协议的少量修改,快速部署新的追踪脚本。

第四阶段 下载程序

此阶段尝试通过NTLM协议在TCP上传起始与其CampC进行身份验证,其IP地址采用硬编码方式。

启动NTLM身份验证

从CampC服务器进行身份验证和接收数据的主循环

之后,它开始通过前述渠道与CampC进行通信,意图恢复另一个阶段或最终有效载荷。

结论

如您所见,这种新型恶意软件Rietspoof在2019年1月的活动显著增加。在此期间,开发者使用了几种有效证书对相关文件进行签名。同时,负载经历了开发,特别是在第三阶段的通信协议实现上进行了多次更改。虽然有关Rietspoof的数据很详尽,但其动机和作案手法仍然未知,目标也尚不明确。而且,迄今为止,被恶意软件感染的文件在大多数杀毒软件中的检测率较低。

我们的研究尚无法确认是否已发现整个感染链。虽然该恶意软件具备机器人功能,但似乎主要是作为一个投放者。此外,该恶意软件的低普遍性和地理围栏的使用也意味着其他可能的未知因素。例如,我们可能错过了一些仅针对特定IP地址范围分发的样本。

我们不会公开共享IoCs,但如果您能够向Avast证明您是一个反恶意软件分析师或研究人员,我们会将IoCs提供给您。在这种情况下,欢迎通过Twitter联系@n3ph8t3r,@StredaAdolf 和 @sirmerjan。

更新 2019年2月20日:

感谢恶意软件猎人团队,我们获得了关于Rietspoof第一阶段的信息。看起来Rietspoof是通过带有宏的Microsoft Word文档传播的。该文档充当投放者并运行上述VBS。在初步检查中,该文档显示出一种几乎传统的图像,用以说服用户启用宏,见下图:

一旦启用宏,关于受保护文档的信息将被删除,接着显示标题“紧急出口图”。

之后,这部分脚本解混淆VBS并将其保存到机器上,执行wscriptexe 并将参数

cusersNAMEappdataroamingmicrosoftwordstartupWindowsCookieswordTemplatevbs,

该路径指向被投放的VBS以执行有效载荷。

前面提到的Visual Basic脚本被嵌入在文档中,以base64字符串的形式以十六进制编码。

为什么我的 Netflix 被限速?

联系我们
  • 电话:13594780435
  • 邮箱:arch@icloud.com
  • 地址:嘉峪关市匹搂坡194号
留言

Copyright © 飞驰加速器官方 版权所有 网站地图

WeChat
WeChat

留言框-

飞驰加速器官方

13594780435