本文主要是介绍对Anatova勒索软件进行一番深度分析后发现,它可能是新旧两代勒索技术的分水岭!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
今年1月,迈克菲实验室(McAfee Labs)发现了一款攻击威力远胜于 Ryuk 的勒索软件,该勒索软件通常将自己伪装成流行的游戏或者应用程序欺骗用户下载执行,运行后,它会主动请求管理员权限以便对用户磁盘文件进行加密,之后再索取赎金。根据对Anatova的分析可以发现该勒索软件的开发者是一个经验十足的恶意代码编写者,至今发现的多个样本中包含了不同的密钥和部分不同的函数,该勒索软件还预留了模块化扩展的功能,因此其可能衍生出更多的恶意行为。当前主要在美国和欧洲部分国家发现了该勒索软件的踪迹,该勒索软件有简单的绕过分析设备的功能,并根据系统语言版本决定是否进行加密勒索行为,使用了RSA+Salsa20的方式进行加密,中招后不交赎金进行文件解析的可能性非常低。
需要说明的是,Anatova是在一个私有P2P网络中被发现的。在经过了初步分析以及确保其客户已经受到了保护之后,迈克菲实验室决定将这一发现公之于众。
从不同角度来对Anatova进行深度分析
现在距离Anatova的出现已经过了快5个月了,不过对它的分析还都停留在最粗浅的水平(就像前言里分析的那样),本文,我们将深入分析Anatova攻击时的技术细节。这些细节在以前都没有被发现过,也没有在其它报道中被提及过。深入分析该勒索软件,我们将会对它可能发生的概率和攻击模式有个准确的把握。
本文所分析的具体细节大概包括:
1.Anatova用于删除卷影副本(Volume Shadow Copy)的实际指令;
2.收集Anatova试图终止的进程的所有名称的列表;
3.Anatova避免感染的所有文件夹、文件和扩展名;
4. Anatova如何终止一个进程;
5.当检测到一个目标用户时,Anatova如何从内存中删除自己的攻击痕迹。
希望这些信息能帮助其他研究人员分析他们将来可能遇到的这种勒索软件和类似的恶意软件。
Anatova勒索软件是一个64位恶意软件,目前在野外运行,目前FortiGuard实验室的研究人员很少能看到纯碎的64位勒索软件,因为它们要适应32位设备的要求。
没有明显被攻击的症状
一旦Anatova勒索软件开始在目标设备上执行,它就会删除“ANATOVA.TXT”文件的副本,该副本包含带有DASH支付地址的赎金通知。每个受感染的文件夹都会包含此通知,以方便受害者知道怎么与幕后人联系。ASP大马
图1含有赎金地址通知信息:
与其他勒索软件不同,Anatova发起攻击后,没有明显的症状。其他勒索软件在攻击完成后,都会在受害者的设备上出现闪烁和闪亮的赎金图像,明确告诉他们的设备被感染。但对于Anatova来说,除非你已经看过ANATOVA.TXT文件,或者你注意到你的某些数据文件已经加密,否则你无法确定设备是否被攻击了。
不显示可见症状应该是Anatova比较高明的攻击策略,值得注意的是,它要求的支付赎金还要求用Dash币(达世币),而不是更常见的门罗币(Monero)或比特币。达世币是一种基于比特币的,致力于更加匿名化;更快支付效率;以及平稳系统升级的支付类虚拟货币。
解析API
就像任何典型的恶意软件一样,Anatova试图隐藏其API名称,以避免仍然严重依赖于字符串检测的杀毒扫描程序。为了解析API地址,恶意软件从加密名称数组中解密API名称,并调用GetProcAddress API。
然后,恶意软件使用简单的XOR指令来解析API名称。它使用一个单字节密钥来解析名称中的每个字符字节,并且每个API的单字节密钥是不同的。
图2显示了一些API名称及其被解析后所包含的字符串:
该列表显示目前已被解析的kernel32 API。另外,该恶意软件还解析了CryptAcquireContextW,CryptGenRandom,CryptReleaseContext,CryptGenKey,CryptExportKey,CryptDestroyKey,CryptImportKey,GetUserNameW,CryptEncrypt,CryptBinaryToStringA和ShellExecuteW API。
Mutex(互斥锁)
mutex一般用于为一段代码加锁,以保证这段代码的原子性(atomic)操作,即:要么不执行这段代码,要么将这段代码全部执行完毕。
在解析这些名称的进程中,恶意软件在解析了kernel32.dll中需要的所有API之后,创建了一个名为“6a8c9937zFIwHPZ309UZMZYVnwScPB2pR2MEx5SY7B1xgbruoO”的mutex。
(避免对一些用户进行攻击)
Anatova试图避免感染一些使用特定用户名的计算机系统,比如:天空彩
LaVirulera
tester
Tester
analyst
Analyst
lab
Lab
malware
Malware
如果匹配了与以上列表中相同的用户名,则Anatova将终止执行。
从列表中可以看出,这些用户名是设备或系统使用的常见用户名,而这些用户名经常被用于蜜罐分析中。可见Anatova的反追踪能力是非常强的。另外,这些名称也在恶意软件内被加密了,且使用与解析API相同的解析技术。
以上所说的只是Anatova执行攻击之前的反检测功能,在最终执行之前,还要经过很多步骤。首先,Anatova将包含已解析API的内存位置清除,并删除具有mutex名称的内存位置。接下来,它使用VirtualProtect API将.text部分的一部分内存保护更改为PAGE_EXECUTE_READWRITE,然后将其清除。之后它将内存保护更改回PAGE_EXECUTE_READ。 Anatova通过仅将可执行代码的上半部分清零,从而避免清除当前正在执行的代码。
随后,Anatova将包含当前代码的内存保护更改为PAGE_EXECUTE_READWRITE。然后调用memset函数清除当前代码的内存位置,从而有效地将自己从内存中删除。
图3显示了恶意软件清除API和代码部分前后的代码。左侧仍包含恶意软件代码的上半部分,而另一侧已被清除:
大多数恶意软件一旦找到某个攻击标记,比如用户名,只需终止自身的运行,就会停止其恶意执行。不过这样做,通常也会在内存中留下攻击痕迹。但是Anatova希望在它停止其恶意执行之前,清除内存位置,以确保没有留下任何攻击痕迹。
终止进程
Anatova会终止与以上列出的任何名称匹配的任何进程,即使匹配的进程已经终止,恶意软件也会不断地将终止的进程名与其他进程名进行比对。
最初,恶意软件调用CreateToolhelp32Snapshot API来打开一个句柄来获取系统中进程的快照。然后调用Process32FirstW API来获取关于第一个进程的信息。然后它开始解析进程名称列表,并检查每个进程名是否与当前进程名匹配。如果找到匹配项,Anatova会通过调用OpenProcess API打开该进程,然后尝试使用TerminateProcess API终止它(参见图3)。尽管这个进程已经成功地终止,但恶意软件仍会继续对剩下的进程名称列表中的名称进行匹配检测。
恶意软件最终通过对其余进程的Process32NextW API进行后续调用,来检查系统中的所有进程。
上图显示了正在检查的当前进程是“onenote.exe”,看是否与下面列出的进程名称相匹配:
msftesql.exe
sqlagent.exe
sqlbrowser.exe
sqlwriter.exe
ORACLE.EXE
ocssd.exe
dbsnmp.exe
synctime.exe
agntsvc.exeisqlplussvc.exe
xfssvccon.exe
SQLSERVR.EXE
mydesktopservice.exe
ocautoupds.exe
agntsvc.exeagntsvc.exe
agntsvc.exeencsvc.exe
firefoxconfig.exe
tbirdconfig.exe
mydesktopqos.exe
ocomm.exe
mysqld.exe
的mysqld-NT.EXE
的mysqld-opt.exe
dbeng50.exe
sqbcoreservice.exe
EXCEL.EXE
INFOPATH.EXE
MSACCESS.EXE
mspub.exe
onenote.exe
OUTLOOK.EXE
POWERPNT.EXE
steam.exe
thebat.exe
thebat64.exe
thunderbird.exe
visio.exe
WINWORD.EXE
wordpad.exe
对目标文件进行加密,从而实施勒索
Anatova不会感染以下目录:
Program Files
Program Files (x86)
Windows
ProgramData
Tor Browser
Local Settings
IETldCache
Boot
All Users
它还避免加密以下文件:
bootinit
desktop.ini的
的Thumbs.db
的hiberfil.sys
PAGEFILE.SYS
swapfile.sys
的autorun.inf
BOOT.INI
BOOTFONT.BIN
BOOTSECT.BAK
iconcache.db
NTDETECT.COM
NTLDR
NTUSER.DAT
ntuser.dat.lo
ANATOVA.TXT
如果文件的扩展名与以下内容之一匹配,它也不会进行加密:
ani,bat,cab,cmd,cpl,cur,diagcab,diagpkg,dll,drv,exe,hlp,icl,icns,ico, ics,idx,key,ldf,lnk,mod,mpa,msc,msp,msstyles,msu,nomedia,ocx,prf,rom,rtp,scr,shs,spl,sys,theme,themepack
如果文件通过了所有过滤器和检查,则恶意软件会使用CreateFileW API打开它。然后它将文件的内容读入内存缓冲区并加密,加密后,它使用WriteFile API将加密的字节写回文件。文件加密成功后,Anatova会将ANATOVA.TXT的副本放入到当前目录。
每次文件加密成功后,恶意软件都会尝试删除ANATOVA.TXT文件的副本,以确保受感染文件夹中始终存在一个副本。
多次调用VirtualAlloc API
有些恶意软件除了其可见的感染标记或出现在恶意代码中的签名之外,还具有唯一标识。二四六
Anatova在某种程度上也是独一无二的,每当它处理一个字符串、解析或复制时,它就会使用VirtualAlloc API分配一个内存空间,然后在处理完字符串后,它会使用对VirtualFree API的调用来释放新的内存空间。
例如,要解析上面讨论的解析一个API那样,它会调用VirtualAlloc API来分配新的虚拟内存。然后复制字符串,解析API,之后它通过调用VirtualFree API来释放内存空间。
恶意软件在将用户名与要避免的名称列表进行比较时使用相同的技术。它在检查进程名称时以及比较感染文件时再次执行此操作。
大多数恶意软件只调用VirtualAlloc API几次,然后,当需要处理字符串时,它只使用和重用相同的分配内存。对于Anatova来说,在整个恶意软件执行进程中会调用数千个VirtualAlloc和VirtualFree API。这两个函数可能看起来不太相关,但很有可能是一种反仿真技术的形式,因为它们都可以在应用程序中使用虚拟内存(VirtualAlloc VirtualFree),进而绕过某些限制内存分配的安全软件。VirtualAlloc是一个Windows API函数,该函数的功能是在调用进程的虚地址空间,预定或者提交一部分页,简单点的意思就是申请内存空间
删除卷影副本
我们可以使用卷影副本将文件或文件夹恢复到其先前的状态,卷影副本,也称为快照,是存储在 Data Protection Manager (DPM) 服务器上的副本的时间点副本。要开始数据保护,必须先将所选数据的完整副本复制到 DPM 服务器的存储池中。之后,将定期使用对受保护数据的更改使副本同步。DPM 按照指定的计划为保护组中的每个副本创建卷影副本。如果出现数据丢失或损坏,你可以访问卷影副本以恢复以前版本的文件。你可以恢复数据,也可以启用最终用户恢复以便最终用户能够独立恢复他们自己的数据。
所以大多数勒索软件为了达到勒索的目的,都试图避免恢复文件这种情况发生。所以勒索软件的一个重要恶意行为就是删除这些卷影副本,以防止加密文件的恢复。 Anatova试图通过使用ShellExecuteW API,连续运行以下命令十次来删除卷影副本(见图5):
C:\Windows\system32\cmd.exe /c vssadmin delete shadows /all /quiet
一旦卷影副本被删除,则要想看到加密文件,就只能向勒索软件的开发者支付赎金了。
删除所有的蛛丝马迹
加密所有可能的文件后,恶意软件将通过调用另一个ShellExecuteW API从系统中删除自己运行的痕迹,使用以下命令进行删除:
C:\Windows\system32\cmd.exe /c timeout -c 9 & del "C:\Users\username\Desktop\malware.exe" /f /q
总结
1.Anatova是一个相当有创新的勒索软件,它会主动避免感染那些用于分析它们的计算机,也会避免感染那些含有设备常用名称的文件和文件夹。这意味着,Anatova的反侦查能力相比原来的恶意软件有了一个质的飞跃。
2.Anatova与其他勒索软件的另一个显着区别是,它不会更改加密文件的扩展名。
3. Anatova在攻击之后非常“低调”,它不会发出明显的信号来提示用户。
4. Anatova的攻击过程非常谨慎,只关注它希望终止的进程。因为,终止整个列表中的进程可能会引起用户的怀疑。
5. Anatova会在每一步执行完后,都及时清理它的踪迹并消除任何可能的系统恢复情况的发生。
MD5SUM: 596ebe227dcd03863e0a740b6c605924
Detection:W64/Encoder.BHU!tr.ransom
这篇关于对Anatova勒索软件进行一番深度分析后发现,它可能是新旧两代勒索技术的分水岭!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!