WannaCry算个啥?新型勒索软件Anatova开始爆发

折腰的五斗米
作为一款勒索软件,Anatova的主要目标是在向受害者发出赎金票据之前加密受感染系统上的所有文件。攻击者要求受害者支付10达世币(DASH)作为赎金——目前约价值700美元,与其他勒索软件家族,这个赎金金额已经相当高了。
在不断探索新的网络安全威胁的过程中,迈克菲实验室(McAfee Labs)发现了一个新的勒索软件家族,并将它称之为“Anatova”(基于赎金票据的命名)。需要说明的是,Anatova是在一个私有P2P网络中被发现的。在经过了初步分析以及确保其客户已经受到了保护之后,迈克菲实验室决定将这一发现公之于众。
 
Anatova已出现在全球多个国家
 
迈克菲实验室认为,Anatova很可能会发展成为一种极其严重的网络安全威胁,因为它具有加载额外模块以扩展其功能的能力。此外,它还会检查网络共享是否已经开启,并加密这些共享上的文件。
 
迈克菲实验室还认为,Anatova的开发者在恶意软件开发方面有着丰富的经验。因为,每一个Anatova样本都拥有自己独特的密钥以及在其他勒索软件家族中很少看到的函数。
 
作为一款勒索软件,Anatova的主要目标是在向受害者发出赎金票据之前加密受感染系统上的所有文件。攻击者要求受害者支付10达世币(DASH)作为赎金——目前约价值700美元,与其他勒索软件家族,这个赎金金额已经相当高了。
 
在本周二(1月22日)发表的一篇文章中,迈克菲实验室通过其中一个样本“170fb7438316f7335f34fa1a431afc1676a786f1ad9dee63d78c3f5efd3a0ac0”详细阐述了Anatova的技术细节。
 
Anatova概述
 
Anatova通常使用游戏或应用程序的图标来欺骗用户下载它,并包含一个用来请求各种管理权限的列表。
 
样本的二进制文件信息
 
不难看出,Anatova勒索软件实际上是一个64位应用程序,编译日期为2019年1月1日。这里分析的样本大小为307KB,但由于不同样本所包含的资源也不同,因此这个大小并不是固定的。除去所有资源,Anatova的大小实际上只有32 KB——一个非常小的程序,但却极具破坏性。
 
Anatova具备一些强大的静态分析保护技术,这使得对它的分析变得有些棘手:
 
嵌入在可执行文件中的大多数字符串都是加密的(Unicode和Ascii),需要使用不同的密钥来解密它们。
 
90%的调用是动态的,且只使用以下非可疑的Windows API和C语言标准库:GetModuleHandleW、LoadLibraryW、GetProcAddress、ExitProcess和MessageBoxA。
 
当迈克菲实验室的研究人员在IDA Pro中打开样本二进制文件(包括最新版本的IDA)时,出现了分析失败的情况。但他们无法确定这是由于IDA Pro自身的一个bug,还是Anatova的开发者故意造成的。
 
IDA Pro 7.2报错
 
1.0版本的独特之处
 
由于这是一个新出现的勒索软件家族,因此迈克菲实验室的研究人员在Anatova的代码中没有找到任何版本号,故而只能认为它是1.0版本。
 
Anatova执行的第一个操作是获取库“kernel32”的模块句柄,并使用函数“GetProcAddress”从中获取29个函数。
 
解密字符串后得到kernel32函数
 
如果Anatova无法获取到kernel32的模块句柄,或者找不到某些函数,它将退出而不执行任何加密。
 
接下来,Anatova将尝试创建一个具有硬编码名称的互斥锁(对于本文分析的样本而言,互斥锁的名称是6a8c9937zfipz309uzmzyvnwscpb2pr2mex5sy7b1xgbruoo)。但值得注意的是,对于不同的样本而言,互斥锁的名称也不同。如果互斥锁被创建并获取到了句柄,它将调用“GetLastError”函数,并查看最后一个错误是“ERROR_ALREADY_EXISTS”还是“ERROR_ACCESS_DENIED”。实际上,这两个错误都意味着这个互斥对象的前一个实例的存在。如果是这种情况,Anatova将跳转到内存清理释放执行流。
 
检查互斥锁
 
在完成这个检查之后,Anatova将使用上述相同的流程从库“advapi32.dll”、“Crypt32.dll”和“Shell32.dll”中获取一些函数。
 
同样,如果Anatova无法获得这些库的模块句柄,或者找不到它所需要的函数,它将跳转到内存清理释放执行流并退出。
 
迈克菲实验室还发现,Anatova还会检查已登录或活动用户的用户名,并与一个加密的名称列表进行对比。如果匹配到其中任意一个名称,它也将跳转到内存清理释放执行流并退出。
 
这个加密的用户名列表包括:
 
LaVirulera
 
tester
 
Tester
 
analyst
 
Analyst
 
lab
 
Lab
 
Malware
 
malware
 
那么,Anatova为什么要执行上面这个操作呢?这是由于一些分析人员或虚拟机/沙箱在其设置中可能会使用这些默认用户名。这也就意味着,Anatova将不会在此类主机机器/沙箱上进行加密。
 
在完成用户检查之后,Anatova还将检查系统语言。显然,Anatova将一些国家的用户排除在了感染目标之外。
 
具体来讲,Anatova不会感染以下国家的用户:
 
所有独联体国家
 
叙利亚
 
埃及
 
摩洛哥
 
伊拉克
 
印度
 
将独联体国家排除在外并不奇怪,这通常都意味着该恶意软件的开发者很可能就来自这些国家之一。但是,迈克菲实验室的研究人员表示他们并不清楚Anatova为什么将其他一些国家也排除在了感染目标之外。
 
检查系统语言
 
在完成系统语言检查之后,Anatova还会去查找一个flag。在迈克菲实验室捕获的所有样本中,这个flag的值都为0,但如果将它的值改为1,Anatova则会加载两个DLL,其名称(解密后)为“extra1.dll”和“extra2.dll”。这可能表明,Anatova将在后续版本中扩展其功能。
 
加载额外的模块
 
在此之后,Anatova将枚举系统中的所有进程并将它们与一份包含“steam.exe”、“sqlserver.exe”等在内的进程列表进行对比。如果匹配到了这些进程,Anatova将杀死它们。
 
Anatova的下一步操作是使用crypto API创建一对RSA密钥,而该API将对所有字符串进行加密。这里使用的函数与其他勒索软件家族使用的函数几乎完全相同,例如GandCrab或Crysis,以确保使用的密钥对于不同的用户和文件来说都是唯一的。
 
如果Anatova无法创建密钥,它将跳转到内存清理释放执行流并退出。
 
接下来,Anatova将使用crypto API“CryptGenRandom”函数生成一个32位的随机key和一个8字节的值,以在运行时使用Salsa20算法和blob密钥对文件进行加密。
 
下一步操作是准备一个内存缓冲区,并对所有的信息(Salsa20 key、Salsa20 IV和RSA密钥)。Anatova会使用函数“CryptBinaryToStringA”在BASE64中创建一个大字符串,而这个BASE64字符串将被写入赎金票据中。
 
此外,Anatova稍后还会清除计算机内存中的key、IV和RSA密钥值,以防止任何人从内存中转储这些信息并创建解密工具。
 
当密钥在内存缓冲区中加密时,Anatova将枚举所有逻辑单元,并搜索DRIVE_FIXED类型(例如,普通硬盘)或DRIVE_REMOTE(用于挂载的远程网络共享)的所有设备。Anatova将尝试加密这些设备上的几乎所有的文件,这意味着如果一个企业被感染,那么它很可能将遭受重大的损失。
 
检查所有逻辑单元
 
Anatova不会加密的文件夹包括“Windows”、“Program Files”和“Program Files(x86)”等。这对于许多勒索软件家族来说都很常见,因为勒索软件开发者希望避免破坏操作系统,而是瞄准高价值的文件。类似的,Anatova也不会加密扩展名为.exe、.dll和.sys的文件,因为它们对操作系统来说也很重要。
 
检查文件名和扩展名
 
在完成对文件名和扩展名的检查之后,Anatova还会打开文件并读取它的大小,并将它与1MB进行对比。这是因为,Anatova只会加密大小为1MB及以下的文件,以避免与因加密大文件而浪费时间(它似乎希望以最短的事件完成加密)。
 
接下来,Anatova则将会创建一个32位的随机值作为Salsa20 key,以及另一个8字节的值作为Salsa20 IV。
 
使用这些值,它将读取内存中的所有文件或大小为1MB及以下的文件,并使用key和IV使用Salsa20算法加密这些文件。
 
加密函数
 
当加密完成之后,Anatova会在被加密文件的文件夹中留下一份赎金票据。赎金票据承诺可以为受害者免费解密一个大小为200KB及以下大小的.jpg文件,作为攻击者能够解密被加密文件的证据。
 
赎金票据示例
 
在完成所有这些之后,Anatova还将对卷影副本连续进行10次删除。与其他大多数勒索软件家族一样,它使用的是vssadmin程序(需要管理员权限)来运行和删除卷影副本。
 
删除卷影副本10次
 
最后,当所有操作都完成之后,Anatova还将跳转到内存清理释放执行流。正如前面所提到的那样,这主要是为了防止转储任何可能有助于创建解密工具的内存代码。
THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论