在不断寻找新威胁期间,我们发现了一个新的勒索软件系列,称之为Anatova(基于赎金条的名称)。Anatova是在一个私有的点对点(p2p)网络中被发现的。经过初步分析,为确保我们的客户受到保护,我们决定将此发现公之于众。
尽管Anatova相对较新,但我们已在全球范围内发现都检测到
我们认为Anatova可能成为一个严重的威胁,因为它的代码是为模块化扩展做准备的。
此外,它还将检查网络共享是否已连接,并将加密这些共享上的文件。根据我们的评估,Anatova背后的开发人员/攻击者是熟练的恶意软件作者。我们得出这个结论,是因为每个样本都有自己独特的密钥,以及我们在勒索软件系列中经常看不到一些功能。
本文将解释Anatova的技术细节,以及关于这个新的勒索软件家族的一些有趣的事情。
在分析中我们使用了这个特定的哈希值:170fb7438316f7335f34fa1a431afc1676a786f1ad9dee63d78c3f5efd3a0ac0
Anatova的主要目标是在受害者付款之前加密所有文件。
一、Anatova简介
Anatova通常使用游戏或应用程序的图标来欺骗用户下载。它有一个清单来请求管理员权限。
二进制文件信息
Anatova勒索软件是一个64位应用程序,编译日期为2019年1月1日。此特定散列的文件大小为307kb,但由于样本中使用的资源量,可能会发生变化。如果我们删除所有这些资源,大小为32kb;一个非常小的程序,里面有一个强大的机制。
Anatova有一些强大的静态分析保护技术,这让事情变得有些棘手:
· 大多数字符串都是加密的(Unicode和Ascii),使用不同的密钥对它们进行解密,嵌入在可执行文件中。
· 90%的调用是动态的;它们仅使用以下非可疑的Windows API和C编程语言的标准库:GetModuleHandleW,LoadLibraryW,GetProcAddress,ExitProcess和MessageBoxA。
· 当我们在IDA Pro中打开二进制文件(包括最新版本的IDA)时,检测到的函数很差,并且在3个操作码后就完成了处理。我们不确定这是IDA Pro中的bug,或者是恶意软件作者故意造成的(我们怀疑)。
IDA Pro 7.2最新版本中的问题
二、初始感染向量
目前,我们不知道Anatova正在使用或将要使用的感染向量。我们最初的发现位置是私人p2p。
与其他勒索软件系列一样,Anatova的目标是加密受感染系统上的所有或多个文件,并要求付款以解锁它们。该攻击者要求以10 DASH的加密货币支付赎金 – 目前价值约700美元,与其他勒索软件家族相比而言比较高。
三、版本1.0的亮点
由于这是一个新的系列,在代码中找不到任何版本号,我们称之为1.0版本。
恶意软件执行的第一个操作是获取“kernel32.dll”库的模块句柄,并使用“GetProcAddress”从中获取29个函数。
解密字符串后获取kernel32中的函数
如果恶意软件无法获取kernel32的模块句柄,或者找不到某些函数,它将退出而不执行任何加密。
稍后,恶意软件将尝试创建具有硬编码名称的互斥体(在本例中为:6a8c9937zFIwHPZ309UZMZYVnwScPB2pR2MEx5SY7B1xgbruoO),但每个样本中的互斥体名称都会更改。如果创建了互斥体并获取了句柄,它将调用“GetLastError”函数并查看上一个错误是ERROR_ALREADY_EXISTS还是ERROR_ACCESS_DENIED。这两个错误都意味着存在此互斥对象的实例。如果发生这种情况,恶意软件将进入清理内存流程(我们将在本文稍后解释)并结束。
检查互斥体
在此检查之后,Anatova将使用与kernel 相同的流程从“advapi32.dll”,“Crypt32.dll”和“Shell32.dll”库中获取一些函数。所有文本都经过加密和解密,获取函数,释放内存,然后继续下一个。
如果它无法获得一些这些模块或它需要的一些函数,它将转到清理工具流程并退出。
我们发现的一个有趣的功能是Anatova将检索登录和/或活动用户的用户名,并与加密的名称列表进行比较。如果检测到其中一个名称,它将进入清理流程并退出。
搜索的用户列表是:
· LaVirulera
· tester
· Tester
· analyst
· Analyst
· lab
· Lab
· Malware
· malware
某些分析人员或虚拟机/沙箱在其设置中使用这些默认用户名,这意味着勒索软件无法在这些计算机/沙箱上运行。
在用户检查之后,Anatova将检查系统的语言。当用户安装Windows操作系统时,他们会选择一种语言来安装(虽然以后用户可以安装不同的语言)。Anatova会检查系统上第一个安装的语言,确保用户无法安装这些列入黑名单的语言之一从而避免加密文件。
Anatova不影响的国家名单如下:
· 所有独联体国家
· 叙利亚
· 埃及
· 摩洛哥
· 伊拉克
· 印度
看到独联体国家被排除在执行之外,通常表明作者可能来自其中一个国家,这是很正常的。本案例中,看到其他国家被提及是令人惊讶的。我们没有明确假设为什么这些国家被排除在外。
检查系统语言
在语言检查之后,Anatova会查找一个标志,在我们查看的所有样本中,该值都为0,但如果此标志将更改为值1(当前恶意软件样本永远不会更改该值),则会加载两个DLL,其名称(解密后)为“extra1.dll”和“extra2.dll”。这可能表明Anatova准备模块化或在不久的将来扩展其功能。
加载额外的模块
在此之后,恶意软件枚举系统中的所有进程并将它们与大型列表进行比较,例如“steam.exe”,“sqlserver.exe”等。如果发现其中一些进程,恶意软件将打开并且终止他们。此操作是典型的勒索软件,它试图解锁稍后将被加密的文件,例如数据库文件、游戏文件、Office相关文件等。
下一步操作是使用crypto API创建一对RSA密钥,用来加密所有字符串。此功能与其他勒索软件系列相同,例如GandCrab或Crysis。它确保将使用的密钥是因用户和执行次数而异。
如果恶意软件无法创建密钥,它将转到清理流程并退出。
在此之后,Anatova将使用crypto API “CryptGenRandom”函数生成32位的随机密钥和8字节的另一个值,以在运行时使用Salsa20算法和私有的blob密钥进行加密。
在文件加密过程中,它将解密2层加密样本的主RSA公钥,第一个是值为0x55的XOR,第二个是使用硬编码密钥和IV解密使用Salsa20算法的样本。
从第一层解密样本的主RSA公钥
在此之后,导入公钥并使用它加密Salsa20密钥和IV,这两个参数用于在运行时加密RSA私钥。
下一步是准备一个内存缓冲区并加密所有信息(Salsa20密钥,Salsa20 IV和RSA私钥)。它使用函数“CryptBinaryToStringA”在BASE64中创建一个大字符串。勒索软件稍后将清除计算机内存中的密钥、IV和RSA私钥,防止任何人从内存中转储此信息并创建解密器。
这个BASE64字符串将在稍后的赎金票据中写出。只有恶意软件作者才能解密Salsa20密钥和IV以及用户解密文件所需的RSA私钥。
如果不起作用的话,Anatova将自行删除,进入清理流程并退出。
当密钥在内存缓冲区中加密时,Anatova将枚举所有逻辑单元,并将搜索DRIVE_FIXED类型的所有现有实例(例如普通硬盘)或DRIVE_REMOTE(用于安装的远程网络共享)。Anatova将尝试加密每个位置上的文件。这意味着当网络共享上的文件被加密时,公司受害者可能会导致重大事故。
检查所有逻辑单元
对于每个已安装的驱动器(硬盘或远程共享),Anatova将获取所有文件和文件夹。稍后会检查它是否是一个文件夹,如果是,将检查文件夹名是否为“.”和“..”,以避免同一目录和上一个目录。
在收集的文件夹名列表中,Anatova会检查列入黑名单的名称,例如“Windows”,“Program Files”,“Program Files(x86)”等。这在许多勒索软件系列中都很常见,因为作者希望避免破坏操作系统,转而瞄准高价值文件。Anatova对文件扩展名.exe,.dll和.sys也是如此,这些文件对操作系统也很重要。
检查文件名和扩展名
如果通过此检查,Anatova将打开该文件并获取大小,并将其与1 MB进行比较。 Anatova只会加密1MB或更小的文件,以避免在大文件上浪费时间;它想要快速加密。通过在加密文件的末尾设置指针,Anatova确保它不会加密已加密的文件。
接下来,Anatova将创建一个32位的随机值作为Salsa20算法的密钥,另一个值为8字节,将用作Salsa20的IV。
使用这些值,它将读取内存中的所有文件或最大大小为1MB的文件,并使用Salsa20算法使用密钥和IV加密此信息(这是最近非常流行的,因为它是一种非常快速的算法并且具有开源实现)。
加密文件函数
它将导入在运行时创建的RSA公钥,并使用它加密用于加密文件的密钥和IV。接下来,它从文件的开头将加密的内容写入同一文件中,然后将指针指向文件的末尾并写入如下内容:
· 使用RSA公钥加密的Salsa20密钥。
· 使用RSA公钥加密的Salsa20 IV。
· 文件大小(小于1 MB)。
· 出现在赎金票据中的每个样本的特殊硬编码值。
· 样本中的特殊硬编码值,它是之前检查的感染标记,以避免两次加密同一文件。
完成后,Anatova将在同一文件夹中写入赎金票据。因此,如果Anatova无法对文件夹中的某些内容进行加密,则不会在此文件夹中创建赎金票据,赎金条仅在受影响的文件夹中出现。
此行为与在所有文件夹中均写入勒索信息的其他勒索软件系列不同。
赎金票据文本完全加密,但联系作者的邮件地址和要支付的地址除外。
Anatova不会覆盖赎金票据,如果它已存在于文件夹中,这可节省时间。赎金票据包含base64块,其中包含解密以字符串“ – KEY–”开头的块中的文件所需的所有加密信息,以及id。
然后允许响应的受害者免费解密一个最大大小为200kb的.jpg文件,作为他们可以获取解密文件的证据。
赎金票据样例
完成所有这些后,Anatova将非常快速地破坏Volume Shadow副本10次。与大多数勒索软件系列一样,它使用vssadmin程序(需要管理员权限)来运行和删除Volume Shadow副本。
删除Volume Shadow 10次
最后,当所有步骤完成后,勒索软件将遵循清理流程,如前所述,主要是为了防止转储可能有助于创建解密工具的内存代码。
四、覆盖范围
McAfee网关和端点产品的客户受此版本保护。检测名称包括Ransom-Anatova![partialhash]。
IoC
样本使用以下MITRE ATT&CK™技术:
· 通过API执行
· 应用程序进程发现
· 文件和目录发现:搜索要加密的文件
· 加密文件
· 进程发现:枚举终端上的所有进程以杀死一些特殊进程
· 创建文件
· 提升权限:请求运行。
· 创建互斥体
Hashes:
· 2a0da563f5b88c4d630aefbcd212a35e
· 366770ebfd096b69e5017a3e33577a94
· 9d844d5480eec1715b18e3f6472618aa
· 61139db0bbe4937cd1afc0b818049891
· 596ebe227dcd03863e0a740b6c605924