新型勒索软件——Pay2Key介绍
2021-03-10 01:00:00 Author: www.4hou.com(查看原文) 阅读量:201 收藏

RansomwareTargets_blog_article.jpg

在过去的一周里,以色列境内的多加公司报告了它们被同一个勒索软件攻击。虽然其中一些攻击是由REvil和Ryuk等知名勒索软件发起的,但几家大型企业遭遇了一次全面攻击,攻击者是一个以前不知名的勒索软件的变体——Pay2Key。

经过跟踪分析,越来越多的证据证明以色列的这次大规模攻击和一个名叫Pay2Key的勒索软件有关。在攻击中,攻击者使用了一个相同的程序来获得一个攻击立足点,从而进行传播和远程控制。

迄今为止的调查表明,攻击者可能在攻击发生前的某个时间就已经访问了目标组织的网络,攻击者具有迅速采取行动的能力,可以在一小时内将勒索软件传播到整个网络。在完成感染阶段后,受害者就会收到有针对性的勒索通知,一般只有7到9个比特币(约11万至14万美元)。

目前调查还有结束,研究人员只是进行了初步分析,结果如下:

1.以前未知的勒索软件Pay2Key对以色列公司进行针对性攻击。

2.最初的攻击大概是通过RDP连接进行的。

3.使用psexec.exe可以横向移动,对组织内不同的计算机进行勒索攻击。

4.攻击者特别注意了网络通信的设计,以减少大量加密计算机在与命令控制服务器接触时可能产生的噪声。

5.加密方案是可靠的,因为了使用AES和RSA算法。

攻击时间表

在过去的几天里,研究人员从以色列事件反应小组那里获得了一些零散的信息以及各种各样的取证工具,这表明一种新的勒索软件正在针对以色列公司进行部署也许是专门针对以色列公司。

结合这些元素,研究人员得以拼凑出攻击者的攻击时间表:

2020.6.28:攻击者创建了一个名为“pay2key”的密钥库帐户;

2020.10.26:第一个勒索软件示例编译日期;

2020.10.27:第二次勒索软件示例编译日期;

2020.10.27:第一个Pay2Key示例上传到VT并在同一天进行了编译,这可能表明它在野外首次被利用。

2020.10.28:第二个勒索软件样本上载到VT ,这可能表明它可能是受攻击的组织;

2020.11.1:第三个样本编译日期;

2020.11.1:首次报告的攻击事件(星期日,这是以色列的工作日);

2020.11.2:第二次攻击报告被发布;

Pay2Key的传播方式如下:

1. 攻击者一般是在半夜通过RDP连接到目标网络上的计算机。

2. 攻击者可以通过使用名为“ConnectPC.exe”的程序将计算机定义为网络中的Pivot / Proxy。从此以后,网络中所有勒索软件进程与攻击者的C&C服务器之间的所有输出通信都将通过此代理进行。

3. 攻击者使用psexec.exe在组织内的不同计算机上执行“Cobalt.Client.exe”(即Pay2Key勒索软件本身)。

新的勒索软件

通过分析Pay2Key勒索软件的运行,研究人员无法将其与任何其他现有的勒索软件相关联,它似乎是新出现的勒索软件。

即使勒索软件未使用打包程序或任何形式的防护来隐藏其内部功能,但VirusTotal上只有一个引擎将上传的勒索软件样本检测为恶意软件。

大量的编译工件慢慢的表明,在开发团队内部,这个勒索软件实际上被命名为Cobalt,请千万不要与Cobalt Strike混淆。

虽然攻击者的身份未知,但在代码中发现的各种字符串以及研究人员在日志文件中观察到的错误英语语法表明,攻击者不是以英语为母语的人。

赎金要求

成功加密后,勒索软件会以[ORGANIZATION] _MESSAGE.TXT的形式向攻击目标发送一个定制的赎金通知单。在研究人员观察到的赎金记录中,赎金金额在7到9个比特币之间不等。

1.png

Pay2Key赎金记录:甚至每个组织都定制了ASCII-art

值得一提的是,尽管赎金通知会告知受害者数据被盗,就像其他双重勒索勒索勒索一样,研究人员还没有找到任何证据来支持它。

Pay2Key介绍

值得注意的一件有趣的事情是,攻击者用来与受害者聊天的Keybase帐户与Pay2Key EOSIO智能合同系统的标识相同。一个可能的解释是,当在谷歌图片中搜索“pay2key”时,出现的第一个结果如下所示。

2.png

Pay2Key Keybase.io配置文件

技术分析

初始访问

研究人员对Pay2Key攻击的分析主要集中在勒索软件本身的二进制代码上因为研究人员无法访问攻击的某些先前阶段。如上所述,攻击可能通过RDP手动访问受害者网络上的一台计算机。攻击者在计算机上复制并创建了多个文件,包括:

Cobalt.Client.exe :Pay2Key勒索软件。

Config.ini:一个配置文件,指定“服务器”和“端口”。

ConnectPC.exe:Pivot / Proxy服务器。

在被感染的计算机上创建这些文件后,攻击者将执行ConnectPC.exe。然后,他们复制或下载PsExec实用程序,并使用它在组织中的其他计算机上远程执行勒索软件。为了正常工作,勒索软件需要一个配置文件位于相同的工作目录中。因此,需要将Config.ini和Cobalt.Client.exe一起放入受害者的计算机中。在研究人员看到的例子中,,Pay2Key勒索软件是通过以下模板的路径执行的: C:\Windows\Temp\[organization-name]tmp\Cobalt.Client.exe。

配置

研究人员能够使用的工件是勒索软件Cobalt.Client.exe和配置文件,配置文件是一个非常简单的INI文件,其中包含两个条目:服务器和端口。令研究人员惊讶的是,该服务器不是外部命令和控制服务器,而是最初被感染计算机的IP。因此,研究人员认为原始计算机使用ConnectPC.exe作为实用程序来将通信从组织内部的受害者中继到外部控制服务器。这种方法增加了不同计算机能够通信的机会,因为更可能允许内部通信。由于组织中只有一台计算机知道该命令和控制的地址,因此这也减少了命令和控制地址被分析的机会。

攻击中使用的配置文件如下所示:

3.png

如果勒索软件以--config [path]作为命令行参数执行,它将从参数中指定的路径读取配置文件。

勒索软件

Pay2Key勒索软件是用C ++编写的,并使用MSVC ++ 2015进行编译。它严重依赖于面向对象的编程,并使用精心设计的类进行操作。它还利用了第三方库,例如流行的Boost库。幸运的是,勒索软件没有被利用,它包含了大量的调试日志以及丰富的RTTI信息。

4.png

在执行时,Pay2Key将从配置文件中读取服务器和端口密钥。如果在当前工作目录中没有找到配置文件,并且命令行参数中没有提供配置文件,勒索软件将在 .\Cobalt-Client-log.txt中写入“未找到配置文件”。这个日志文件将被勒索软件在执行期间广泛使用,更新版本的勒索软件确保将该日志文件从磁盘上删除,受支持的日志消息的完整列表可以在本文的附录部分中找到。

它首先初始化程序的主要类Cobalt :: DataProcessing :: RansomwareEngine,然后初始化负责通信、消息处理、管理文件和加密的其他重要类。

Pay2Key生成一对RSA密钥,并通过原始TCP将公钥发送到服务器。这些密钥将用于在勒索软件和服务器之间建立安全的通信,发送密钥后,勒索软件将等待来自服务器的消息,这些消息由自定义消息处理程序解析和处理。

受支持的消息

Message_ID Message_Name注释

5.png

勒索软件使用专用的类来处理不同的消息,研究人员注意到,其中的一些处理程序和消息类型并没有在研究人员现有的二进制文件中实现,而某些消息处理程序甚至没有由消息处理程序管理器检查。这是勒索软件正在积极开发的另一个迹象,丢失的消息可能是现在已删除的代码的一部分,也可能是尚未实现的代码。

在勒索软件样本的逆向工程过程中,研究人员利用了它们包含丰富的RTTI数据这一事实。这些信息帮助研究人员理解不同代码片段的角色以及它们之间的关系,在Cutter的帮助下,研究人员能够轻松地检查不同的类别。

6.png

RTTI由Cutter解析,并显示在“类”窗口中

最有趣的消息类型是“Config”,因为它包含了勒索软件在感染期间使用的信息。在没有此消息信息的情况下分析勒索软件会导致不断地回退到默认配置。其中,配置消息包含要加密的文件扩展名列表、加密文件的文件扩展名(默认为.enc) 、赎金记录文件的名称(如SALAM_MESSAGE.TXT中的默认为“salam”)以及赎金记录。

值得一提的是,文件名和赎金说明都指定了受感染组织的名称。攻击者甚至一路生成带有被感染组织标识的 ASCII-Art。配置中赎金记录的文件名将具有以下模板[ORGANIZATION] _MESSAGE.TXT。在研究人员分析的事件中,从服务器收到的扩展名是.pay2key,但由于勒索软件足够灵活,它可能是其他任何扩展名。

在加密过程结束时,Pay2Key还将使用以下命令net stop mssqlserver > nul终止MS SQL服务,以释放服务锁定的文件。它也可能取代受害者的墙纸,但研究人员没有看到这发生在研究人员分析的计算机上。

迭代过程

研究人员在短时间内分析了多个样本,并注意到其中的一些改进。这意味着Pay2Key正在积极开发中,开发人员会为它添加更多的功能。例如,在最新版本的勒索软件中,研究人员注意到攻击者除了添加了新的命令行参数--noreboot之外,还增加了一个自我删除机制。

新的 “housekeeping” 机制负责删除攻击者创建的文件并重新启动计算机。

7.png

负责删除勒索软件及其文件并重新启动系统的功能

加密设置

作为一个标准的勒索软件,使用AES和RSA算法,将对称加密和非对称加密的混合用于文件加密,C2服务器在通信期间在运行时提供RSA公钥。这意味着这个勒索软件不会离线加密,如果没有网络连接,或者C2宕机,那么就不会发生加密。近年来,看到了一些勒索软件,它们主动使用加密原语来对受害者进行成功的操作创建成功联系(例如,通过将服务器公钥嵌入可执行文件中),这在当时被认为是一项技术改进,但显然开发者更喜欢经典的方法。

8.png

生成一个对称的RC4密钥并使用RSA公钥加密

需要指出的一件事是RC4的某些(不是全部)加密功能使用,RC4是一种流密码,并且更容易被滥用;它通常在恶意软件开发者中很流行,因为它易于实现,但Pay2Key的开发者实际上使用了第三方实现(通过Windows API)。这可能是研究人员第一次看到恶意软件的开发者使用第三方进行加密。

9.png

恶意软件试图访问“pippo容器”中的用户密钥,如果不存在,则生成一个新的密钥。

另一个原因是恶意软件使用了名为pippo容器的自定义密钥容器。其他勒索软件几乎都为szContainer参数设置了一个空值(默认为新的密钥容器),然后在上下文仍处于打开状态的情况下执行所有加密操作。这是一段样本代码,是已知的有效勒索软件构建块,网络犯罪分子因此可以复制、粘贴和删除。开发者没有直接使用它的事实表明,他们对windows cryptographic API及其功能存在一些其他想法。

10.png

AES密钥是从哈希值派生的

与“经典”勒索软件公式的最后一个偏差是对散列值使用CryptDeriveKey以便获得AES密钥(而不是传统的CryptGenKey)。如果哈希值是确定性地得出的,则可以重构得到的密钥,但是哈希中的某些随机性元素(或客户端或服务器端的任何其他数量的可能的单独调整)都可以使该方法可行。

总结

虽然此次攻击仍在调查中,但最近的分析表明,Pay2Key可能是一种全新的勒索软件,且开发者加入了有针对性的勒索软件攻击功能:通过精心设计的操作来最大限度地破坏和减少暴露危险。

本文翻译自:https://research.checkpoint.com/2020/ransomware-alert-pay2key/如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/Y01Y
如有侵权请联系:admin#unsafe.sh