如今,当谈到网络威胁时,大多数人都会想到勒索软件,尤其是加密类型的恶意软件。 随着新冠疫情的爆发和几个主要网络犯罪集团(Maze、REvil、Conti、DarkSide、Avaddon)的出现,一个完整的犯罪生态系统已经形成,目前全球范围内对大型组织的攻击浪潮越来越高。
今年,在发生了一系列备受瞩目的勒索软件事件后,例如对 Colonial Pipeline(美国最大的燃料管道的运营商)、JBS 和 Kaseya 的攻击,以及随后美国和其他当局的严格审查,勒索软件市场发生了一些重大变化:一些团体被摧毁,另一些团体更名。
目前的大多数攻击团体都倾向于在独联体之外活动,尽管如此,该地区还是存在着大量伺机发动攻击的团体。
本文重点介绍了 2021 年上半年在独联体区域内最为活跃的勒索软件木马家族及其技术特征。
统计数据
2021年1月至7月,独联体区域内遭遇勒索软件攻击的企业数量
2021 年 1 月至7月,装有卡巴斯基用户遭遇勒索软件攻击的占比
勒索软件家族概况
BigBobRoss/TheDMR
该勒索软件在2018年底开始活跃,目前仍在使用,它的主要传播载体是破解RDP密码。
当启动BigBobRoss时,会显示操作员的技术信息,包括用于后续文件解密的密钥。恶意软件还通过Telegram发送带有此信息的消息。
BigBobRoss 创建的技术文件
加密后的文件夹内容如下:在每个文件的开头添加攻击者的电子邮件地址和受害者ID,然后是原始名称和扩展名,最后是勒索软件添加的扩展名。
加密文件和攻击者的记录:
此外,每个文件夹中都会添加一个带有攻击者详细信息的注释。
勒索软件留下的记录
对于加密,该程序使用来自 CryptoPP 密码库的 ECB 模式(简单替换模式)下的 128 位密钥的 AES 对称算法。
PDB 保留有关项目名称的信息,幕后的开发者可能会说俄语,但这个只是猜测。
可执行文件的PDB信息
Crysis/Dharma
Crysis 是自 2016 年以来已知的一种旧的加密恶意软件。众所周知,它会被停用然后又复活。目前,它仍然活跃。该木马的代码多年来一直保持不变,如今它通过勒索软件即服务 (RaaS) 附属程序进行传播。
Crysis是用 C/C++ 编写的,并在 MS Visual Studio 中编译。该恶意软件在 CBC 模式下使用 AES-256 算法加密文件。启动后,木马会生成一个 256 位 AES 密钥,该密钥使用 RSA-1024 算法加密,攻击者的公钥包含在木马之中。
每个文件都使用上述 AES 密钥以及新生成的 128 位初始化向量 (IV) 进行加密。除了加密内容外,加密文件还存储了IV、RSA加密的AES密钥和辅助信息,包括攻击者的标签(一个字符串值)、使用的RSA公钥的SHA1哈希、原始文件名、加密类型(要加密的文件部分对于小文件和大文件的选择不同)和校验和。
Crysis赎金记录
典型的Crysis攻击载体是未经授权的 RDP 访问。攻击者破解凭据(通过字典/暴力攻击或从其他攻击者那里购买的现成列表),远程连接到受害者的计算机,并手动运行木马。
Phobos/Eking
该勒索软件自 2017 年以来一直存在,在概念层面(代码结构、开发人员使用的方法),Phobos 在许多方面与 Crysis 相似。这表明木马程序的开发者是同一个,或者 Phobos 的开发者熟悉Crysis的工作原理。但是,我们发现没有直接借用代码;换句话说,这些是从不同来源组装的不同木马家族。
与大多数现代勒索软件一样,Phobos 是通过 RaaS 附属程序传播的。感染的主要载体是未经授权的 RDP 访问。
Phobos 是用 C/C++ 编写的,并在 MS Visual Studio 中编译。它使用 AES-256-CBC 算法加密受害者的文件,而 AES 密钥使用恶意软件对象中包含的 RSA-1024 公钥加密。
Phobos 赎金记录
Cryakl/CryLock
Cryakl 可能是本文介绍的最古老的勒索软件。第一个版本是在 2014 年 4 月检测到的。然而,在这个木马的现代版本中,似乎没有留下一行代码。 Cryakl 已被多次重写,并且每个新版本都会引入一些新功能。
它通过附属计划传播。目前,其最常见的攻击载体是通过 RDP。为方便攻击者,木马支持图形界面。操作员在程序窗口中手动配置必要的设置。
Cryakl 设置窗口
Cryakl 是用 Delphi 编写的。 Cryakl 的现代版本使用自定义对称密码来加密受害者的文件,并使用 RSA 算法来加密密钥。
当前版本的 Cryakl 的一个有趣功能是对归档格式的高级处理,这在其他勒索软件中是没有的。
归档可能很大,对它们进行完整的加密需要很长时间。如果只对文件的任意部分进行加密,则可以在不解密的情况下恢复部分内容。
Cryakl 具有处理 ZIP、7z、TAR、CAB 和 RAR(旧版本和 RAR5)格式的专门程序。它会解析每一种格式,只加密归档的关键部分,提供高性能并防止在不解密的情况下恢复数据。
分析 ZIP 格式的部分程序
Cryakl 赎金记录
CryptConsole
CryptConsole 于 2017 年 1 月首次被发现,今天仍然运行活跃。它是用 C# 编写的,并使用 .NET 库进行加密,传播的主要载体是破解 RDP 密码。
CryptConsole记录
对于加密,生成两个密钥和 IV 对,这些信息被写入一个文本文件,以及一个大小参数(反映需要加密多少用户文件),并放置在桌面上。这个文本文件的名称是一个40个字符的字符串,与用户的唯一标识符(注释中的个人 ID)相匹配。假设恶意软件操开发者通过 RDP 获得访问权限,运行勒索软件并为自己保存此文件,然后将其从受害者的设备中删除。这可能证明可以恢复文件,有趣的是,文件加密部分的大小(size参数)是 [5485760, 10485760] 范围内的一个随机值。
包含勒索软件留下的密钥的文件
其加密方案也令人好奇。如上所述,勒索软件会生成两个随机对:key+IV 和 key2+IV2。然后将文件大小与之前生成的随机大小值进行比较。如果文件大于size,则只对文件中小于或等于该值的部分进行加密,在此之前将一个size字节的随机数据缓冲区写入文件。
生成key/IV 对、ID 和size
使用对称 AES 算法执行加密。首先,文件的 size 字节块使用 key 和 IV 进行加密,然后将加密的缓冲区反转并再次加密,这次使用 key2 和 IV2,这就是双重加密方案的工作原理。
小文件双重加密方案
如上所述,大文件首先被任意大小字节的数据填充,这之后才能附加加密数据。
任意数据写入的双重加密方案
Fonix/XINOF
Fonix 勒索软件于2020 年夏天首次被发现,2021 年 1 月,其创建者宣布关闭该项目,甚至发布了主密钥,我们可以用它来为该木马的受害者构建解密器。
然而,Fonix并没因此消停,几个月后(2021 年 6 月),我们就检测到新版本 Fonix 的攻击,该版本就没有使用旧的主密钥。
此版本的 Fonix 模仿Crysis和 Phobos 木马,对加密文件使用相同的扩展名和命名方案。
如果受早期版本 Fonix 影响的文件的名称类似于 picture.jpg.Email=[actor@mail.tld]ID=[B49D8EF5].XINOF,现在,它们与Crysis(picture.jpg.id-523E8573.[actor@mail.tld].harma)或Phobos(picture.jpg.ID-70AB2875.[actor@mail.tld].eking)加密的文件名称没有区别。
保存在木马样本中的项目 PDB 文件的路径同样涉及故意屏蔽:“DharmaVersion”行明确指向 Dharma 家族(Crysis勒索软件的另一个名称)。
PDB路径
Fonix 使用 CryptoPP 库以 C++ 编写,并在 MS Visual Studio 中被编译为一个 64 位可执行文件。它使用 RaaS 方案进行传播,主要通过带有恶意附件的垃圾邮件进入受害者系统。
每次感染后,勒索软件都会通过 Telegram 向其运营商发送通知,顺便说一句,这并不是什么新鲜事,几年前就出现过。
用Telegram发送通知
在感染主机后,Fonix 还会通过 IP 检查受害者的地理位置,如果在伊朗启动,则会在不加密的情况下停止其活动。
Fonix会检查受害者的地理位置
为了加密用户文件,它使用 ChaCha 或 Salsa 算法(取决于文件大小)。 ChaCha/Salsa 密钥由 RSA 使用木马启动时生成的会话公钥进行加密。会话私钥由 RSA 使用恶意软件对象中包含的公共主密钥进行加密。
Fonix 的早期版本有自己的勒索信。
Fonix 勒索信(早期版本)
与此同时,在最近的样本中,我们看到某些版本的Crysis和Phobos的勒索信被复制。
Fonix 勒索信(现代版)
Limbozar/VoidCrypt
该勒索软件出现在 2019 年年中,它的某些版本也被称为 Limbo、Legion、Odveta 和 Ouroboros。 Limozar 通过附属计划 (RaaS) 传播。目前,主要的传播载体是未经授权的 RDP 访问。 Limozar 是用 C++ 编写的,在 MS Visual Studio 中编译,并使用 CryptoPP 库来实现加密功能。
在整个家族的历史中,其密码方案已经改变了几次。当Limbozar启动时,现代版本的Limbozar生成一个RSA-2048会话密钥对,然后是一个256位密钥和一个96位初始化向量,用于在GCM模式下的AES算法。RSA会话私钥使用AES算法加密并保存在本地。接下来,AES的key+IV对使用木马对象中包含的几个公共RSA主密钥之一进行加密,并且也保存到本地驱动器中。
在这个准备阶段之后,Limbozar 搜索受害者的文件并使用 AES-GCM 算法对其进行加密,并为每个文件生成一个唯一的key+IV 对,然后使用 RSA 会话公钥进行加密。
加密后,恶意软件将攻击者的要求保存在 Decrypt-info.txt 文件中。
Limbozar 赎金记录
完全加密后,Limbosar 还会使用 POST 请求向其 C&C 服务器发送有关新受害者的通知。为了实现网络通信,使用了 SFML 库(libsfml-network)。
关于新版Limbozar感染的通知
Thanos/Hakbit
Thanos 于 2020 年 4 月下旬开始活跃,尽管有关它的信息首次出现是在1月份当时它以RaaS的形式出现在一个黑客论坛上。这个勒索软件是用c#编写的。根据我们掌握的信息,它的主要传播载体是破解 RDP 密码。
被感染电脑的桌面壁纸,显示一张勒索信
由于传播模型是 RaaS,勒索软件是通过构建器传播的,从而可以自定义木马本身及其解密器。
构建器中有许多不同的设置:基本的(加密文件的扩展名、勒索信的名称和内容、付款地址)和更高级的(代码混淆、自我删除、禁用 Windows Defender、绕过反恶意软件扫描接口 (AMSI)) 、解锁被其他进程占用的文件、保护勒索软件进程、防止休眠、执行延迟、大文件快速加密模式、设置要加密文件的扩展名、选择受害者通知方法)。泄露的构造函数可以在网上找到。最有可能的是,它是由购买它的运营商上传的。为了保护,它具有内置的 HWID 检查,表明它是为操作员的特定设备组装的。
解密器可以使用用户 ID 解密文件,用户 ID 是对称加密算法的 RSA 加密密钥(不同版本有不同的对称算法)。
Thanos 的解密器
勒索软件可以使用一系列加密方案。在勒索软件的各种样本中,我们遇到了以下情况:
- 适用于所有文件的密钥:Salsa20 加密;
- 适用于所有文件的不同密钥:Salsa20 加密;
- 通过PBKDF2函数适用于所有文件的密钥:AES-256 CBC 加密;
- 通过 PBKDF2 函数适用于所有文件的密钥(小文件 1000 次迭代,大于15 MB大文件50000 次迭代),然后是 AES-256 CBC 加密。
下面给出了其中一种加密方案(静态密钥 + PBKDF2 + AES-256 CBC)和代码混淆方法的说明。混淆相当弱,这使得恢复原始代码成为可能。
用于加密的代码块之一
勒索信没有太大区别,像往常一样,目的是留下联系方式并恐吓用户。
Thanos赎金记录
Thanos实施了一种相当灵活的攻击方案,允许操作员独立选择勒索软件的功能并生成它以满足他们的特定需求。
XMRLocker
XMRLocker 于 2020 年 8 月上旬首次被发现。它是用 C# 编写的,并使用 .NET 库进行加密。
使用生成的随机长度为65-101个字符的密码执行加密,一个固定的字母表,包括英文大小写字母和一些特殊字符,用于生成密码。
在XMRLocker中生成密码
加密使用AES算法,密钥长度为256位,在CFB模式下使用PKCS7填充。预生成的密码通过PBKDF2函数传递,迭代次数为50000次,并将结果转换为密钥和IV进行进一步加密。PBKDF2使用一个32字节的随机盐值,它被写入每个文件的开头。为所有文件生成一个密钥。它被保存在一个名为HWID的文本文件中,该文件被发送到托管在Tor网络上的C&C服务器,然后删除。
加密函数
加密后,设备关闭。下次启动时,用户会看到对发生的事情和攻击者详细信息的介绍。
启动后的消息
像往常一样,勒索软件说明包含联系方式和 ID。唯一令人惊讶的变化是“使用 Base-64 算法加密的文件”这个词,因为这不是一种加密算法,并且该勒索软件根本不使用它。
勒索信
总结
在独联体,既有知名的,也有相对较新的面向企业的勒索软件。这些恶意软件中有许多是新出现的,也有一些已经退出了市场。勒索软件的加密技术也越来越奇怪,比如CryptConsole中的双重加密和Cryakl中的归档进程(Archive Process) 处理。
虽然恶意软件的传播载体不同,但目前针对独联体企业的勒索软件威胁大多通过RDP渗透受害者的网络。因此,为域帐户创建强大的密码并定期更改它们是很重要的。另外,建议屏蔽互联网上的RDP访问,使用VPN连接企业网络。
本文翻译自:https://securelist.com/cis-ransomware/104452/如若转载,请注明原文地址。