导语:在这篇文章中,McAfee实验室的研究人员将对Crypter最新版本进行仔细分析和研究,包括开发者如何改进代码(虽然在某些情况下这些代码还是会出现错误)。 不过目前,McAfee网关和安全终端产品能够保护用户免受已知变种的攻击。

img_1613983026554660.jpg

众所周知,勒索软件如今的迭代速度非常快,不过像Crypter如此之快的迭代速度也不多见。Crypter是在今年1月份首次被发现的,如今它已经更新换代到第5版(10月发现的版本已经到了5.0.2版本)了,且加入了crypter(加密和混淆软件)技术。

在这篇文章中,McAfee实验室的研究人员将对Crypter最新版本进行仔细分析和研究,包括开发者如何改进代码(虽然在某些情况下这些代码还是会出现错误)。 不过目前,McAfee网关和安全终端产品能够保护用户免受已知变种的攻击。

GandCrab开发者的研发和纠错能力是很强的,他们已迅速采取行动改进那些容易出错的代码,并添加了用户评论,以激发安全机构、执法机构等组织对它的持续研究。尽管开发人员采用了很多取巧的改进方法,但编码技术仍然不是很专业,而且恶意软件中通常会存在漏洞,甚至在5.0.2版本中也是如此,不过由于开发者快速的纠错能力,安全分析者要捕获它们显然不是很容易。

GandCrab背后的开发团队在黑客社区中的地位非常重要,不但引领了恶意软件的研发技术,而且还是社区营销领域的高手,但显然编程技术并不是他们的优势。

GandCrab版本5的出现及传播模式

9月27日,GandCrab的研发者正式在黑客社区发布了GandCrab版本5,和之前的版本一样, GandCrab勒索软件的推出又受到了安全研究人员和黑客的广泛关注。GandCrab的研发者为了扩大GandCrab的影响了和传播范围,还搞了个类似“会员制俱乐部”的推销代销方案,让传播它的人也从中轻松获利。

这种营销模式不仅吸引了许多地下黑客组织,而且还促进了GandCrab与其他专门从事恶意软件供应和分销的犯罪团伙形成新的联盟。其中一个合作团伙在GandCrab 4版的传播中就起了很大作用,在这个版本中,GandCrab开始通过新的Fallout漏洞利用工具包进行传播。在GandCrab第5版的传播中再次出现了这一组织,因为GandCrab营销人员公开支持了Fallout漏洞利用工具包(EK)。

1.png

GandCrab第5版的发布

在第5版中,又新出现了另一个与GandCrab合作的组织。恶意软件加密服务NTCrypt宣布它正在与GandCrab工作人员合作,crypter服务是专门提供恶意软件混淆以逃避反恶意软件安全产品的。

20181010-Gandcrab-2.png

NTCrypt-GandCrab的合作公告,里面提到为GandCrab用户提供特别优惠

GandCrab和NTCrypt之间的合作关系是以一种崭新的方式出现的。9月底,GandCrab工作人员在一个很受欢迎的地下论坛上发起了一次“crypt服务 ”挑战赛,以寻找他们可以利用的新的crypt服务。最终,NTCrypt最终赢得了GandCrab团队的信赖。

20181010-Gandcrab-3.png

“crypt服务”挑战赛公告

这种新颖的营销和寻找合作伙伴的方法再次巩固了GandCrab在黑客社区中的地位。对于像GandCrab这样的犯罪团伙来说,建立这些联盟非常有意义。这样做不仅增加了营销手段,而且还能很容易的区分那些技术实力不强和信誉不好的供应商和分销商,从而最大限度的降低营销和合作风险。

而对于安全界来说,看到GandCrab的营销策略让该恶意软件传播的如此广泛,很是令人担忧。另外,这种传播手段也让其他犯罪团伙纷纷效仿。GandCrab日渐形成的产业链允许GandCrab与网络犯罪供应链中的其他重要服务结成联盟。

GandCrab概述

GandCrab第5版使用了多种机制来感染系统,下图概括了GandCrab行为。

20181010-Gandcrab-4.png

攻击手段

GandCrab采用了多种攻击手段:

1.安全性较弱或在地下论坛中购买的远程桌面连接;

2.带有链接或附件的网络钓鱼电子邮件;

3.下载并启动恶意软件的木马程序里包含的合法程序;

4.利用RigEK和其他诸如FalloutEK之类的漏洞利用工具包;

5.利用PowerShell脚本或PowerShell进程的内存(后者主要被应用在V5.0.2中);

6.像Phorpiex这样的僵尸网络(一种古老的僵尸网络,不仅传播GandCrab这种恶意软件,还传播许多其他恶意软件);

与其他勒索软件一样,GandCrab的目标是加密受感染系统上的所有或多个文件,然后对受害者进行勒索。开发人员需要的加密货币,主要是Dash(或一些旧版本中的比特币),因为跟踪和快速接收赎金很复杂。

恶意软件通常是打包的,但并不总是如此。研究人员已经看到.exe格式(主要形式)以及DLL的变体。GandCrab实际上是勒索软件即服务,使用者可以选择他们想要的版本。

5.0版的概述

5.0版已出现有两个版本,由于编译时间存在很大的错误,第一个仅适用于Windows 7及以上版本。5.0版带有两个试图提升权限的漏洞。它会检查操作系统的版本和进程的TokenIntegrityLevel类(使用TokenIntegrityLevel类器可查询该进程的完整性级别)。如果SID子权限是SECURITY_MANDATORY_LOW_RID (0x1000),那么它还传递了之前对互斥值的一次检查,它将尝试执行攻击。

另一个版本是8月在Twitter和GitHub上由黑客“SandboxEscaper”发布的漏洞,原文可以在此链接中找到。这个黑客的Twitter链接是https://twitter.com/sandboxescaper

当操作系统处理本地过程调用发生错误时,此漏洞会尝试使用Windows中的任务系统。

GandCrab的开发者则声称没有这个漏洞利用的CVE,它其实属于CVE-2018-8440。此漏洞可能会影响Windows 7到Windows 10 Server的版本。有关此漏洞的更多信息,请点此链接访问。

在第一个版本的5.0版中,恶意软件开发者在对函数的正常调用代码编写中,出现了漏洞。因此,在编译时,二进制文件中的IAT被一些调用所需的DLL所填充。这个DLL并不存在于Windows Vista和XP中,因此恶意软件无法在这些系统中运行,显示错误。

20181010-Gandcrab-5.png

导入无法在Windows XP或Vista上运行的xpsprint.dll

20181010-Gandcrab-6.png

使用漏洞直接调用

此版本会在加密用户文件后发布一个HTML文件,但是这个文件是错误的,因为它并不总是具有解密用户文件所需的信息。

第二个版本使用动态调用并混淆了利用漏洞的字符串,如上图所示(第一版中它们是明文显示的)。

20181010-Gandcrab-7.png

使用动态调用和模糊字符串的漏洞

第二个漏洞是CVE-2018-8120,在Windows 7、Windows Server 2008 R2和Windows Server 2008中允许从内核提升权限。由于系统进程令牌中存在错误对象,因此更改恶意软件中的此令牌会导致恶意软件使用系统权限。

20181010-Gandcrab-8.png

执行CVE-2018-8120漏洞

恶意软件会检查操作系统的版本和用户类型,以及在使用漏洞利用之前是否可以获取其自身进程的TOKEN_ELEVATION结构体信息。在某些情况下,它无法进行恶意传播。例如,在Windows XP中,版本5的第二个版本虽然会运行但不加密文件。

此时研究人员已经知道GandCrab5.0.2版中的问题在哪里,如果对注册表进行一些更改可能会使恶意软件正确运行,但很明显安全人员并不想帮助恶意软件开发者修复他们的产品。虽然GandCrab的开发者能迅速弥补其中的某些错误,但他们无法自己找到一些基本的编程错误。

第二个版本随机用五个字母组成了扩展名,而不是使用以前版本中常见的.CRAB或.KRAB扩展名。恶意软件将此信息作为二进制数据保存在子项“ext_data\data”中的新注册表项中以及“ext”的值项中。

20181010-Gandcrab-9.png

用于保存随机扩展名的新注册表项

恶意软件会尝试在HKEY_LOCAL_MACHINE的root密钥中创建这个新的值项。如果不能,例如,因为用户没有管理员权限,则它会将值项放在root密钥HKEY_CURRENT_USER中。文件加密后,在某些攻击中此值项就会被删除。

版本5.0.1

此版本修复了恶意软件中的一些内部漏洞,但没有进行其他明显改进。

版本5.0.2(GandCrab 5版的正式版本)

此版本将随机扩展名长度从5个字符更改为10个字符,并修复了一些内部漏洞。但是,其他漏洞仍然存在,这意味着即使攻击成功,也不能总是保证对目标设备里的文件进行加密。

最新的版本

此版本仍是基于10月4日发现的版本5.0.2,尽管其中某些元素出现在第5版的早期版本中。但从此版本开始,恶意软件开始使用以下两个漏洞来尝试提升系统中的权限。

第一个漏洞使用对函数IsWoW64Process的动态调用来检测操作系统是以32位还是64位运行。

20181010-Gandcrab-10.png

使用混淆的字符串动态调用IsWoW64Process

根据检测结果,恶意软件将有两个嵌入式DLL,使用简单的XOR 0x18操作加密文件。

20181010-Gandcrab-11.png

解密DLL以加载漏洞并修复标头

恶意软件开发者使用了一个非常聪明的技巧来进行了混淆处理,以避免被检测到。技巧就是DLL的前两个字节起初是无用的,但在恶意软件运行后就会自动修复,正如我们在前面的图示中看到的那样。

在解密并加载漏洞之后,这个DLL会在系统中创建一个互斥锁,并在某些管道中与主要恶意软件进行通信。恶意软件会创建DLL稍后读取的管道,并将字符串准作为DLL的互斥锁字符串。

20181010-Gandcrab-12.png

为DLL准备的字符串

DLL会为这些字符串提供虚拟字符串;

20181010-Gandcrab-13.png

创建新的互斥锁并重新启动该进程

恶意软件启动时会检查此互斥锁。该函数是返回1或0,具体取决于它是否可以打开互斥锁。稍后,这个结果将被检查,如果互斥锁可以被打开,则恶意软件将避免版本检查,并且不会使用这两个新的漏洞来提升权限。

20181010-Gandcrab-14.png

打开新的互斥锁以检查是否需要运行漏洞

与GandCrab版本4及更高版本一样,该恶意软件稍后会检查所运行的系统版本。如果是Vista或更高版本,它会尝试获取“TokenIntegrityLevel”类并重新启动二进制文件,通过调用“runas”应用程序 “ShellExecuteExW”来提升其权限。如果系统是Windows XP,代码将避免这种情况并继续其正常流程。

这个互斥锁原本就不在GandCrab的创建计划中,它是为使用漏洞而加载的DLL创建的。为了更好地理解此解释,下面这个IDA代码段可能会有所帮助。

20181010-Gandcrab-15.png

互斥锁的检查和利用

这个版本对桌面壁纸进行了修改,该壁纸是在运行时创建的,并填充了为加密文件而生成的扩展,赎金备注文本或HTML的名称为:<extension_in_uppercase>_DECRYPT. <txt|html>和设备的用户名。

20181010-Gandcrab-16.png

在运行时创建新壁纸

使用“SYSTEM”检查用户名,如果用户是“SYSTEM”,则GandCrab将名称“USER”放入壁纸中。

20181010-Gandcrab-17.png

检查壁纸的用户名称

壁纸在%TEMP%文件夹中创建,名称为pidor.bmp。

20181010-Gandcrab-18.png

在临时文件夹中创建壁纸

下面是壁纸名称中使用的字符串样本,用于检查用户名和格式字符串,无论是另一个用户,还是SYSTEM用户,均使用大写USER的最终字符串。

20181010-Gandcrab-19.png

壁纸的名称和特殊字符串

最后,壁纸是为SYSTEM以外的任何用户设置的。

20181010-Gandcrab-20.png

壁纸的修改

恶意软件会检测系统的语言,并解密字符串,从而以系统语言写入正确的赎金通知。

总结

GandCrab的攻击技术指标包括:

· 文件删除

· 系统信息的检测

· 通过API执行

· 通过WMIC执行

· 应用程序的检测:用于检测杀毒和安全产品以及正常程序

· 查询注册表:获取有关恶意软件需要创建或读取的密钥信息

· 修改注册表

· 发现文件和目录:搜索要加密的文件

· 发现网络共享来加密它们

· 加密文件

· 发现进程:枚举设备上的所有进程以杀死一些特殊的进程

· 创建文件

· 权限修改

· 改变壁纸

源链接

Hacking more

...