JSWorm勒索软件的演变过程(下)
2021-06-18 10:43:18 Author: www.4hou.com(查看原文) 阅读量:137 收藏

abstract_lock_red_blue-1200x600.jpg

JSWorm勒索软件的演变过程(上)

Nemty的其他版本

“Nemty”的名称一直使用到2020年3月,最后一个变种之一是内部版本3.1。

在最初创建后的几个月中,发现了Nemty的多个中间版本。更改了包括不同的互斥锁名称和C&C地址、终止运行进程、停止服务和删除卷影副本的新增功能、改进了加密技术(可防止无偿解密)、更改赎金文本以及众多调整。

顺便说一句,这种恶意软件的开发者倾向于用俄语硬编码字符串,这似乎是在开玩笑,或者可能是引起研究人员关注的一种方式。其中一些字符串包含脏话,这些脏话原来是说唱歌曲的原文。

13.png

Nemty 2.4样本中的字符串

14.png

Nemty 2.6样本中的字符串

2020年3月:Nefilim

MD5:5ff20e2b723edb2d0fb27df4fc2c4468

大约在2020年3月,开发人员将其木马的名称更改为Nefilim。在Nefilim的第一个变种开始出现的时候,这个家族的传模式发生了变化。开发人员从与JSWorm和Nemty变种一起使用的公共RaaS方案转变为与旨在进行高价值目标攻击的机构合作。攻击者开始瞄准备高价值的受害者,并在受害者的网络内进行手动操作,窃取机密数据并威胁要泄漏这些数据来恐吓受害者。

所有的辅助功能,如进程终止、删除影子副本、与C&C通信都从木马的代码中删除。木马变成了专门用于文件加密的单一目的二进制文件。如果认为有必要采取任何其他行动,则攻击者将手动或在其他第三方工具的帮助下执行。

Nefilim是用C ++开发的,并像Nemty一样在MS Visual Studio中编译,Nemty(2+)的后期版本和nefiilm之间的代码重叠是非常多的,这让我们可以建议从相同的源代码继续开发。

代码重叠的一个例子是字符串解密过程,它们是相同的,唯一的区别是RC4密钥。

15.png

相同的字符串解密过程,左:Nemty 2.6(141dbb1ff0368bd0359972fb5849832d);右:Nefilim

重叠不仅限于字符串混淆,各种过程的代码片段在整个样本中都匹配,包括密钥生成和文件加密函数。

16.png

文件加密过程中的代码相似性,左:Nemty 2.6(141dbb1ff0368bd0359972fb5849832d);右:Nefilim

与Nemty不同的是,nefiilm样本的数字签名在这个恶意软件变种被积极传播的时候是有效的,但后来被撤销了。

启动后,恶意软件会检查命令行参数。如果没有参数,它将继续在所有本地和远程驱动器上搜索受害者的文件。如果给出了一个参数,则木马会检查它是否是一个现有目录路径。如果是,它将加密此目录中的文件。否则,它将把参数解释为文件路径并试图加密该文件。添加命令行参数检查可能是为了让网络罪犯手动选择要加密的文件,或者仅仅作为调试功能。

加密方案

该木马程序包含攻击者的硬编码主RSA-2048公钥。在处理每个受害者的文件时,Nefilim会生成一个128位密钥和一个128位IV,并在CBC模式下通过AES加密文件内容。密钥和IV通过RSA主密钥进行加密,并保存在加密文件的末尾。

重命名该加密文件,使其获得附加扩展名.NEFILIM。

赎金通知在处理过的目录中另存为NEFILIM-DECRYPT.txt,并包含与勒索者联系的电子邮件地址。

17.png

Nefilim发出的赎金通知

2020年4月:Offwhite

MD5:ad25b6af563156765025bf92c32df090

随着名称从Nefilim更改为Offwhite,恶意软件的代码通过进一步压缩最终的二进制文件。为此,开发人员停止使用STL库,并去掉了C ++运行时代码,该代码增加了不必要的模块。否则,它仍然基本上与旧的Nefilim相同。除了我们在上一节中已经讨论的功能之外,另一个值得注意的特性已经添加到木马代码中,允许它从勒索文本生成墙纸并将其保存为“scam.jpg”。

18.png

由Offwhite生成的壁纸

2020年6月:Telegram

MD5:004f67c79b428da67938dadec0a1e1a4

Offwhite和Telegram变种之间的区别很小,代码几乎是相同的,主要区别是加密的文件扩展名(. telegram),赎金通知名称(TELEGRAM-RECOVER.txt),以及导入的API函数的名称未编码为十六进制字符串。

2020年11月:Fusion

MD5:f37cebdff5de994383f34bcef4131cdf

该木马变种是用Go编程语言编写的。如上所述,以前的变种是用C ++开发的,这意味着可能完全由另一位开发人员完全重写。

然而,该恶意软件类似的整体操作方式、类似的加密方案、匹配的勒索记录以及二进制文件被签名的事实表明,这个样本实际上是JSWorm家族的一个新变种。

此外,木马程序正文中硬编码的数据泄漏站点地址与这些攻击行为者以前使用的地址相同,这是一个非常有说服力的论点,支持我们的建议,即Fusion与它的前一个版本之间存在联系。

同样,像以前的变种一样,Fusion程序接受一个命令行参数:要加密的文件名(可能用于调试勒索软件)。

加密方案

该程序会生成两个128位随机数(IV和密钥),这些随机数用于根据以下方案在GCM模式下使用AES加密文件:如果文件小于1.5MB,则整个文件被加密;如果文件小于1.5MB,则整个文件被加密。如果文件较大,则按顺序执行以下操作:

320KB的信息已加密;

跳过320KB(未加密);

接下来的320KB被加密;

接下来的320KB被跳过;

……

依此类推,直到文件结束。

这意味着,如果文件很大,则一半被加密(尽管以交替的模块形式)。

一个主公共RSA密钥嵌入在程序中,用于加密IV和密钥值。加密后,它们被附加到每个加密文件的末尾。

19.png

Fusion使用的RSA公钥

最后,将“FUSION”行写入文件末尾。然后,将扩展名“ .FUSION”附加到文件名。该样本还留下了一个带有通讯联系人的注释(FUSION-README.txt):

20.png

Fusion发送的赎金通知

2021年1月:Milihpen

MD5:e226e6ee60a4ad9fc8eec41da750dd66

借助Milihpen变种,JSWorm家族背后的攻击者再次完全重新设计了恶意软件的代码,或者也许雇用了另一名开发人员从头开始实现。该样本再次使用C ++(如Nefilim和以前的变种)而不是Golang(如Fusion)进行开发。

尽管如此,仍保留了主要功能、执行流程、加密方案和数据泄漏站点地址。此外,木马的名称揭示了与以前的一种恶意软件变种的关系-它是“ Nephilim”一词的反向写法。

该木马现在将其所有操作记录到控制台,这可能使恶意软件操作员更方便地控制感染过程。

21.png

Milihpen的控制台日志记录

与以前的变种一样,恶意软件样本是由数字证书签名的。在启动后,Milihpen解析了木马程序正文中硬编码的配置数据。此配置结构以JSON格式存储,并且包含以下字段:

22.png

从配置中解析出值之后,Milihpen创建一个互斥锁,解析命令行参数,并继续使用与Nefilim和最新的JSWorm变种相同的逻辑进行操作。如果提供了命令行参数,则木马会检查它是否是目录路径。如果是这样,它将加密其中的文件;否则,它将把它解释为文件路径并试图对其加密。如果没有给出任何参数,木马会在所有本地和远程驱动器中搜索受害者的文件。

23.png

在Milihpen示例中配置JSON结构

加密方案

与其他方面一样,Milihpen紧密模仿了从Nefilim及其后续版本开始的先前变种的高级逻辑。但是,代码分析表明该实现已被完全重写。

为了加密文件,Milihpen使用相同的算法:CBC模式下的AES和RSA。 AES密钥和IV也是128位的,并在加密文件末尾由主公用RSA密钥加密后保存。

对于随机数生成和RSA加密,与之前的版本不同,Milihpen使用BCrypt API中的函数,这是在Windows Vista中引入的下一代加密(CNG) API的一部分。这并没有为Milihpen提供任何显著的优势,但这是一个值得注意的特点,因为Bcrypt API目前在加密勒索软件中并不常用。

加密的文件使用附加扩展名.MILIHPEN重命名,赎金通知另存为MILIHPEN-INSTRUCT.txt。

赎金通知包含与该家族以前的变种相似的文本,以及相同的数据泄漏站点地址。

24.png

Milihpen发送的赎金通知

2021年2月:Gangbang

MD5:173ab5a59490ea2f66fe37c5e20e05b8

Gangbang变种与Milihpen相同,并且是该勒索软件家族中最新发现的变种。唯一显着的区别是,配置结构现在已由AES使用硬编码的密钥和IV加密,而不是像Milihpen中那样以明文形式进行加密。此外,与以前的版本相比,此样本上的数字签名无效。

25.png

Gangbang示例的配置(已编辑)

数据泄漏

2020年春天,JSWorm家族背后的开发者转向了该价值目标,并建立了自己的网站,在那里他们可以公布从受害者那里窃取的机密数据。

截至本文撰写时,该网站仍在运行,并包含有关100多个受害组织的帖子。

26.png

有关攻击者条款的页面

“联系”页面列出了攻击者当前用于谈判的电子邮件地址。

27.png

包含联系人电子邮件地址的页面

对于一些受害者来说,还有一些从他们身上盗窃的数据可以下载到单独的页面上。

包含联系人电子邮件地址的页面

对于某些受害者,也有单独的页面,可以下载从他们那里窃取的一些数据。

28.png

数据窃取页面

受害人

根据KSN跟踪,我们创建了一个图表来说明JSWorm勒索软件攻击的地理分布。

29.png

根据KSN,JSWorm受害人的地理位置

根据KSN统计,受JSWorm攻击的前10个国家:

30.png

在该国受到JSWorm勒索软件家族攻击的唯一用户占所有遇到JSWorm勒索软件的用户的百分比

我们还分析了攻击行为者本人在其数据泄漏站点上发布的有关受害者的数据。基于这些数据,我们创建了一个图表,说明了JSWorm受害者按行业分布的情况。

31.png

根据攻击者的数据泄漏站点,按行业分布的JSWorm受害者

根据攻击者发布的受害者名单,五分之二(41%)的JSWorm攻击针对的是工程和制造类公司,能源和公用事业(10%),金融(10%),专业和消费者服务(10%),交通运输(7%)和医疗保健(7%)也位居榜首。

总结

JSWorm家族已经进化了两年,在此期间,它已经改变了发行模式,并且木马经过了几次完整的重新开发。自2019年首次出现以来,它已从典型的大规模勒索软件攻击(主要影响个人用户)转变为典型的针对组织的勒索软件攻击,并要求受害者支付巨额赎金。

与当今其他有针对性的勒索软件攻击一样,防止JSWorm感染事件的关键是确保网络安全必须非常复杂才行。任何漏洞都可能成为攻击者的切入点,例如服务器端软件的脆弱版本、员工点击恶意链接、远程控制系统的弱密码等。

为了增强防御大型勒索软件的能力,我们建议对网络进行安全审核,以发现并主动修复任何安全漏洞。提高组织安全性的其他建议:

1.除非绝对必要,否则请勿将远程桌面服务(例如RDP)公开到公共网络,并始终对它们使用强密码。

2.确保商业VPN解决方案和其他服务器端软件始终是最新的,因为利用这种类型的软件是勒索软件的常见感染媒介。始终也要使客户端应用程序保持最新。

3.将防御策略的重点放在检测横向移动和数据向网络的渗透上。要特别注意传出的流量,以检测网络犯罪连接。

4.定期备份数据。确保在需要时可以在紧急情况下快速访问它,使用最新的攻击情报信息可以始终了解攻击者使用的实际TTP。

5.使用Kaspersky Endpoint Detection and Response和Kaspersky Managed Detection and Response服务之类的解决方案,可以在攻击者实现最终目标之前尽早识别并阻止攻击。

本文翻译自:https://securelist.com/evolution-of-jsworm-ransomware/102428/如若转载,请注明原文地址


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