其他分享
首页 > 其他分享> > 从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

作者:互联网

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

lucywang 嘶吼专业版

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

自从MegaCortex勒索软件出现以来,IBM X-Force事件响应和情报服务(IRIS)研究人员一直在对它进行响应和分析。尽管恶意软件的确会随着技术的进步而迭代,但MegaCortex的发展尤其迅速,并且在出现不到一年的时间里(从2019年5月到2019年11月),已经迭代了4个版本了。

这篇文章简要概述了迄今为止已出现的四个MegaCortex版本(包括版本4)中的变化。有关以前的MegaCortex版本的技术信息可以在X-Force Exchange:版本1、版本2和版本3中找到。

目前流行的是版本4,它还威胁受害组织,如果他们不付赎金,他们的数据将被泄漏。其实 MegaCortex本身不具备这种功能,即使加载了大量公司数据并试图对其进行泄漏,MegaCortex本身也不会在网络上迅速将它们泄漏,或者需要很长时间才能缓慢地泄漏。

MegaCortex似乎正在寻找改进泄漏信息的方法,并且每个版本都升级了先前版本的功能。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex快速发展以扩大***范围

MegaCortex会伪造代码签名证书,禁用安全软件,接管域控制器,并使用离地***(living-off-the-land)策略,以公司网络为目标。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

这种勒索软件的代码库最有可能出现在2018年末,第一批样本于2019年1月上传到VirusTotal,MegaCortex在2019年5月左右开始出现在***活动中。

迄今为止现的所有MegaCortex版本在构建方式上都相似,它们最初使用Microsoft Visual C ++进行编译,并且都使用为C ++ 14(用于编程语言C ++的ISO / IEC 14882标准的版本)编写的加密库,称为 “mbedcrypto”,以执行最终的文件加密过程。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

使用签名的恶意软件文件绕过安全防护

为了绕过不会在Windows计算机上运行未签名代码的安全控制,MegaCortex使用已签名文件来感染设备。代码签名证书是包含数字签名的文件,可用于对代码进行签名,例如可执行文件和脚本。创建证书的目的是对我们在设备上运行的软件或代码产生信任和验证,并由操作系统进行检查,从而授予不同类型的文件、驱动程序和脚本在操作系统内部运行的能力。

这就是为什么每个MegaCortex版本的二进制文件都包含一个数字签名证书的原因,该证书颁发给欺诈者在黑网上兜售这些类型的证书的伪造公司,其中包括:

MegaCortex v1: “3AN LIMITED”

MegaCortex v2: “ABADAN PIZZA LTD”

MegaCortex v3: “LYUKS ELIT, LTD” and “FELIX MEDIA PTY LTD”

MegaCortex v4: “MURSA PTY LTD”

关于这些公司的开源信息虽然很详细,但它们也不大可能是真实实体。过去,多家供应商已与发行机构联系,要求他们吊销MegaCortex证书以禁用恶意软件以更集中的方式运行的能力。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex关闭安全流程

与任何恶意软件一样,MegaCortex的操作员不希望看到它被发现得太快,以防在文件加密开始之前就停止了。为此,恶意软件通过查找并关闭安全程序和相关进程的列表来准备基础。

***者使用一个单独的批处理文件手动执行MegaCortex v1,以杀死安全进程并停止或禁用与安全,备份和卷影副本有关的服务。随后,使用同一批处理文件以Base64键作为命令行参数来执行MegaCortex二进制文件。

在MegaCortex版本2中,MegaCortex将终止进程和停止服务作为一个函数合并到二进制文件中。

MegaCortex版本3从二进制文件中删除了流程和服务终止功能, MegaCortex开发人员还在版本3中添加了多种反分析和反反编译技术,以阻止对该恶意软件的研究工作。

在MegaCortex版本4中,开发人员还原并合并了一些功能,以终止安全过程并停止相关服务,并将其作为二进制文件中的功能,这类似于在版本2中实现这些功能的方式。所以,该版本继续使用与版本3相同的反分析和对抗反编译技术。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

执行MegaCortex

MegaCortex 版本1于2019年5月开始在被发现,当时在针对性的活动中被发现,以手动推送到联网的计算机和设备的方式进行***。 MegaCortex如何获得最初立足点目前尚未得到证实,但我们怀疑它是由Emotet,QakBot或Rietspoof加载器加载的。这种传播方法意味着***者可以在目标网络上进行某种初始访问,从而允许他们部署一系列批处理文件(.bat)来管理恶意软件感染的传播和启动。

从某种意义上说,MegaCortex的第一个版本在一定程度上限制了传播,在执行之前必须满足两个要求:

1.作为命令行参数传递的Base64编码键;

2.必须在特定的三个小时时间内在特定的日期执行它,以生成用于加密的正确AES密钥;

这种双因素的控制,使安全研究人员更难于成功地启动或对样品进行反向工程。

到2019年8月, MegaCortex 版本2出现之后,很明显其中一些限制被删除,这可能有助于***者扩大***范围或从其他方获得***帮助。定时执行限制已被完全删除,Base64密钥可以作为命令行参数手动提供,但也可以嵌入到恶意软件的二进制文件中,从而能够自动执行。

MegaCortex 版本3于2019年10月被发现,在这个版本中,我们看到它的开发人员完全删除了所有的执行限制,该版本也不再需要Base64密钥,就可以以自动方式执行。

在2019年11月,MegaCortex 版本4出现时,一些限制又出现了,比如重新使用Base64密钥,并使用它来解密恶意软件的组件。不过,该实现与以前的版本不同,将Base64密钥嵌入到二进制文件中,然后传递给解密函数,而不是将其作为参数传递给命令行。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex的模块演变

该恶意软件的模块使它可以对受感染设备上的文件进行加密,并且模块化部分还在不同版本中进行了更改。

MegaCortex版本1利用了两个模块,这些模块都被加密并嵌入到加载程序二进制文件中。以下是我们观察到的两个嵌入式DLL文件,并被定义为payload.dll和injecthelper.dll。这些模块的功能依靠Windows实用程序来限制受感染用户通过系统还原选项进行恢复的能力,如下所示。

MegaCortex版本1中的模块payload.dll

1.包含两个DLL函数导出:start和start2;

2.没有放到磁盘上;

3.负责文件加密;

4.负责创建多个工作线程进行加密;

5.负责创建赎金记录

6.将下一个模块injecthelper.dll加载到新创建的进程中:rundll32.exe

7.负责使用vssadmin.exe删除卷影副本,vssadmin.exe是Windows操作系统的一部分的实用程序。它位于硬盘驱动器上,并且包含可以显示当前卷影副本备份以及所有已安装的影副本编写器和提供程序的代码。

8.负责使用cipher.exe删除所有驱动器中已删除的数据,cipher.exe是Windows操作系统中的内置命令行工具,可用于显示或更改NTFS卷上的目录和文件的加密。

在过去的几年里,利用vssadmin来阻止对问卷影副本的访问一直是各种恶意软件勒索软件的主要手段。

MegaCortex 版本1中的模块injecthelper.dll

1.包含一个DLL函数导出:_command@16;

2.以%TEMP%\

3.负责在rundll32.exe的内存空间中加载并执行payload.dll的副本;

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex版本2中的模块

MegaCortex 版本2中仅使用一个模块,该模块被加密并被嵌入到二进制文件中,该模块的名称为payload.dll,其功能包括先前由版本1中的两个模块执行的操作:

1.包含两个DLL函数导出:start和ss2;

2.没有放到磁盘上;

3.负责终止与端点安全性相关的进程并停止或禁用服务;

4.负责文件加密;

5.负责创建多个工作线程进行加密;

6.负责创建赎金记录;

7.不再使用进程rundll32.exe作为加载程序,而是使用MegaCortex二进制文件作为DLL加载程序;

8.负责使用vssadmin.exe删除卷影副本,并使用cipher.exe删除所有驱动器中的废弃数据;

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex 版本3中的模块

MegaCortex的第三个版本不使用任何基于DLL的模块来执行其勒索软件功能,它将所有勒索软件功能都合并到二进制文件中,并直接作为新线程执行。二进制文件的行为根据执行期间传递的命令行参数而有所不同:

1.如果没有传递任何命令行参数,它将充当一个dropper;

2.如果将“+” 字符作为参数传递,则它的行为就像一个加载程序;

3.如果将除“x” 以外的任何数据作为参数传递,则它的行为类似于加密程序;

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex 版本4中的模块

在分析了MegaCortex版本4之后,我们注意到开发人员又开始重新使用基于DLL的模块。具体来说,就是用一个名为qibfmqke.dll的DLL带有三个导出函数—ss0()、ss1()和ss2(),并负责勒索软件的功能。注意,ss1()和ss2()调用的是完全相同的函数,它们的行为完全相同。这三个导出函数的执行取决于传递给二进制文件的参数。比如:


“MegaCortex.exe” executes ss0()

“MegaCortex.exe +” executes ss1()/ss2()

“MegaCortex.exe -” executes ss1()/ss2()

版本4中的这个DLL的任务是在此最新版本中起作用的旧功能和新功能:

1.负责更改系统中所有用户帐户的密码;

2.删除.cmd脚本,该脚本负责删除卷影副本、注销用户、删除已删除的数据并添加注册表项以获取勒索联系信息;

3.负责恶意软件的典型勒索软件有效载荷例程;

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex的文件加密过程

在文件加密方面,该恶意软件的前两个版本的行为相同,然后在版本3和4中进行了一些小的修改。

为了避免在沙箱和仿真器中运行,所有MegaCortex版本都基于查询系统中CPU的数量来实现文件加密线程。所有MegaCortex版本都可以检测二进制文件是否以管理员权限运行,如果不是这样,***者可以继续提升权限。

所有MegaCortex版本都会调整令牌权限并启用SeDebugPrivilege,对任何用户使用此权限将允许调用方完全访问该进程,包括能够在目标进程上调用TerminateProcess(),CreateRemoteThread()和其他潜在危险的Win32 API。他们还可以禁用文件系统重定向,以避免重定向到以后可能需要的32位实用程序版本,例如vssadmin.exe和cipher.exe,它们在消除卷影副本的过程中要使用。

所有版本都会通过解析可用的驱动器和目录来生成要加密的文件列表,但会避免添加与恶意软件相关的文件。在每个版本中,扩展名和详细信息的列表有所不同。下表按版本进行了详细列举:

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较
从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

MegaCortex 版本3和版本4都使用了补充文件过滤功能,其中新进程将文件名和文件扩展名传递给自定义哈希函数,任何与预先计算的哈希列表匹配的哈希都将导致文件不被加密。

所有版本均在Windows根目录(C:\)和%DESKTOP%目录中创建赎金记录,对于版本1和版本2,该文件名为!!_README!! txt。对于版本3和版本4,该文件名为!-!README!-!.rtf。

所有MegaCortex版本均会创建一个共享的命名内存区域,将生成的要加密文件列表与其他相关文件加密细节一起复制到该内存区域。所有人都会在加密文件之前重命名文件,并将以下文件扩展名添加到原始文件名:


MegaCortex v1: .aes128ctr

MegaCortex v2: .megac0rtx

MegaCortex v3: .m3gac0rtx

MegaCortex v4: .m3g4c0rtx

所有MegaCortex版本均使用加载程序二进制文件来加载payload.dll模块进行文件加密。创建的辅助线程数取决于在加载过程中较早检测到的CPU数量:

MegaCortex v1: rundll32.exe(合法的Microsoft Windows操作系统文件);

MegaCortex v2: RAND_NAME.exe(MegaCortex v2二进制文件);

MegaCortex v3: env.exe(MegaCortex v3二进制文件);

MegaCortex v4:恢复使用rundll32.exe加密进程线程;

最后,前三个MegaCortex版本为每个工作线程加密10个文件,而MegaCortex 版本4为每个工作线程加密11个文件。

可以预计,恶意软件版本的其他更改将在第5版中体现。

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

总结

MegaCortex是否可以被视为勒索软件的新潮流呢?目前,该恶意软件已在两种类型的***中使用,主要针对欧洲和北美的组织网络。

MegaCortex擅长通过针对域控制器(DC)服务器的***和在网络中传播,已经成为大型***的常用工具,这种***利用勒索软件来***各个组织。在这些***中,***者结合了对目标***的分析、使用LotL战术和秘密的案例网络来搜索有价值的数据,然后发动广泛的勒索软件感染,对网络造成足够大的影响,迫使组织支付数百万美元的赎金。

参考来源:https://securityintelligence.com/posts/from-mega-to-giga-cross-version-comparison-of-top-megacortex-modifications/

从Mega到Giga:基于MegaCortex勒索软件修改的跨版本比较

标签:文件,exe,加密,Mega,恶意软件,版本,MegaCortex,Giga
来源: https://blog.51cto.com/u_15127538/2701636