文章目录
基本信息
FileName | FileType | FileSize | packer | MD5 |
---|---|---|---|---|
tfukrc.exe | 勒索病毒 | 235kb | no | 72CCC18F3038E19273010D45AC2142CE |
一,概述
该样本是一个使用AES CBC模式进行数据加密的勒索病毒,其除了具有加密文件的功能外还具有检测沙箱和简单的对抗功能,在其开始成功运行后,会拷贝自身到用户文档目录下隐蔽运行,然后开启六个线程分别执行不同的操作。第一个线程的功能是杀死相关进程查看工具的进程,第二个和第五个线程的功能是删除卷影,第三个和第六个线程的功能是向指定服务器发送数据,第四个线程的功能是向每个文件夹下写入勒索信息并加密数据。病毒在加密完成后会弹出一个窗口告知受害者自己的数据被加密,让用户登录指定的网址寻求解密。由于其加密秘钥又被加密,而可以给加过密的秘钥进行解密的私钥保存在黑客手里,所以加密完成后在黑客不公布秘钥的情况下不存在自行解密的可能。幸运的是现在秘钥已经公布,恢复文件的工具也已出现。
二,流程图
三,技术细节详细分析
详细分析
放入die中查看,发现样本无壳,使用C语言编写
WinMain()
将样本放入IDA中查看,找到main函数,下面仔细分析其中的比较重要的函数的作用。
CoCreateInstance()函数,用指定的类标识符创建一个未初始化的COM对象,这里被用来调用DirectShow处理音视频数据。在这里使用的真实目的是检查音视频设备是否存在,而且还可以验证api是否完全可操作(用来过滤掉api模拟),执行这些动作是为了确保样本是在真实的系统上运行,而不是在沙盒运行。
DeleteFileW()函数,在这里的作用是删除掉xxx:Zone.Identifier文件,每当在IE6.0或以上版本的浏览器上下载一个文件file_name.extention到本地,就会自动生成一个file_name.extention:Zone.Identifier格式的文件,这个附属文件就是除了描述对应文件的元信息,比如来源信息,还用来弹出安全警告弹窗。这里将其删除掉的原因就是避免用户第二次打开时还出现安全警告弹窗。
Release_Decrypted_402170()函数,其功能是解密数据。
其中值得注意的是其中的Release_403EB0()函数,使用OD查看其具体功能,对应的tfukrc.00403EB0函数执行了解密操作,
执行第一次解密操作后,查看其解密后数据的结果如下,应该是会被加密的文件类型
执行第二次解密操作后,查看其解密出来的数据是一些字符
执行第三次解密操作后,查看其解密出来的数据包括cmd命令,删除卷影的命令,和注册表启动项。
执行第四次解密操作后,查看其解密出来的数据包括6个URL和浏览器的版本信息
执行第五次解密,查看解密的数据是勒索信息
GetTokenLevel_410750()函数,用来查看当前进程的访问令牌信息
copy_del_runself_407360()函数,其功能是判断自己是不是在用户的文档目录下运行,如果不是会将自身拷贝到用户的文档目录下,并将名字改为随机的6个字符,还把其设置为隐藏属性,拷贝完成后运行该文件,然后删除自身,删除自身后程序就结束了,OD就无法调试下面的代码,如果将其创建新进程,删除自身的代码nop掉,还是会是这种情况。解决这种情况的方法就是直接将样本文件放入用户的文档目录下(或者在其启动新进程之前使用镜像劫持),就可以继续调试下面的代码了。
copy_del_runself_407360函数
PrivilegeUP_4108F0()函数内部,用于提升进程权限
线程1
创建第一个线程Processkiller_406EBO(),执行的是杀死指定进程的操作,调用TerminateProcess()函数杀死进程名中包含taskmg,regedi,procex,msconfi,cmd字符串的进程。
线程2
创建第二个线程shellExecute_4072A0(),执行的是删除卷影的操作,创建第二个线程之前会判断运行环境是否是WINXP,如果是就创建第二个线程。
创建第二个线程后调用了6个函数
第一个函数getSomePath_40FB60(),功能获得系统上特殊的文件夹路径,查看其内部功能
使用OD跟踪的结果
第二个函数RegSet_402940(),功能是计算出受害者的ID并将其在注册表中设置为键值,然后随机生成一个32位的加密秘钥,并把此秘钥使用椭圆曲线生成的秘钥加密。
CopyData_402CB0()函数就是用来生成秘钥和加密秘钥。
第三个函数autorun_sharenet_40FF10()函数,功能是设置自启和访问当前登录资源管理器进程的网络共享
设置后的结果
第四个函数writefile_40FBE0(),功能是在用户的文档目录下写入勒索文件,其中含有一小段加密信息。
第五个函数PrintfID_402430()
第六个函数InitGDI_40FE60()就是初始化GDI库
线程3
创建的第三个线程SendHttpRequest_403180(),功能是将先前写入内存中的URL获取到了,然后将一些数据(如受害者ID和计算机信息)加密发送出去。
发送数据
线程4
创建的第四个线程Write_Encryption_401710(),功能是遍历系统中的文件夹与文件(除了C:\windiws,C:\program files,C:\programdata三个系统关键文件夹),在每个文件夹下写入包含勒索信息的+recover+file.txt与+recover+file.png文件,然后加密在加密范围中的文件。
线程中的For_401920()函数比较重要,查看其内部,发现其会遍历系统中的文件夹与文件,遇到文件夹时就调用WriteMess_410150()函数在文件夹下写入含有勒索信息的文件,遇到具有可加密后缀的文件时就调用Encryption_401CD0()函数将文件加密
再看For_401920()内部的Encryption_401CD0()函数,该函数的加密逻辑就是先将文件中的数据整体读取到内存中,然后使用EncryptFUNC_403AB0()函数每次读取内存中文件数据的一部分,再使用KeyGen_411960()函数生成的密钥进行加密,最后使用WriteFile()函数将加密后的数据回写到文件中,这种加密流程符合AEC CBC加密模式。
EncryptFUNC_403AB0()函数中的AES算法函数Encrypt_AES_410D61()
其汇编代码特征符合AES算法
加密前的文件
加密后的文件
包含勒索信息的文件
线程5
创建第五个线程,判断自己是否在Windows XP环境中,如果是就开启第五个线程,其功能是删除卷影
线程6
创建第六个线程,在文件加密结束后将受害者信息发送到指定服务器
最后一步执行DelSelf_410990()函数删除自己的操作
进程行为
首先是tfukrc.exe进程,其开始运行后会将自身拷贝到用户的文档目录下(C:\users\xxx\Documents…),并改名为xxxxxx.exe,在成功生成xxxxxx.exe后,其会开启新exe,然后调用cmd.exe执行删除命令删除自身,但是不知什么原因在本机上并没有删除成功。
然后是用户文档目录下的xxxxxx.exe进程,其会开启四个线程,第一个线程会杀死进程名称中包含taskmg,regedi,procex,msconfi,cmd字符串的进程。第二个线程会使用系统的vssadmin.exe执行删除卷影的操作。第三线程会将受害者的信息发送到指定的服务器。第四个线程除了会在每个文件夹下(除了系统的三个重要的文件夹)写入包含勒索信息的文件(+REcovER+sehxi+.png和+REcovER+sehxi+.txt),其中的内容就是告知受害者计算机上的数据被RSA-4096加密算法加密了,需要下载Tor浏览器访问下面的网址寻求解密,还会使用AES算法生成的秘钥对在加密范围内的文件进行加密。在开启第三个线程之前会通过在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run的位置写入键值的方式将自己加入自启动项(键+++fduw,值C:\windows\SYSTEM32\CMD.EXE /C START “C:\users\xxx\Documentshcrcxe.exe”),勒索信息中让受害者访问的网址。
http://uj5nj.onawhit.com/d4c685d901ec945
http://2gdb4.leorage.at/d4c685d901ec945
http://9hrds.wolfcrap.at/d4c685d901ec945
注册表行为
tfukrc.exe和xxxxxx.exe进程都会访问注册表中的,改写其中的值,降低internet安全设置
HKCU\software\microsoft\windows\\current\version\internet setting\zonemap\proxybypass
HKCU\software\microsoft\windows\\current\version\internet setting\zonemap\intranetname
HKCU\software\microsoft\windows\\current\version\internet setting\zonemap\UNCasintranet
HKCU\software\microsoft\windows\\current\version\internet setting\zonemap\autodetect
xxxxxx.exe进程,会在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run的位置写入键值,将自己加入自启动项,键:+++xxxx,值:C:\windows\SYSTEM32\CMD.EXE /C START “C:\users\xxx\Documentshcrcxe.exe”
网络行为
xxxxxx.exe进程会访问,如下VT报毒的URL。
http://videoaminproduktion.de/plugins/binstr.php
http://clubsaintandre.fr/images/binstr.php
http://affiliateproductes.com/binstr.php
http://ptgp.pl/tmp/binstr.php
http://strategicdisaster.info/wordpress/wp-content/plugins/binstr.php
http://minteee.com/images/binstr.php[]
四,查杀&恢复方案
删除病毒文件
进入C:\Users\用户名\Documents删除xxxxxx.exe文件
修复注册表
删除HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run下的+++xxxx键值
恢复文件
工具
ESETTeslaCryptDecryptor.exe
(下载地址http://download.eset.com/special/ESETTeslaCryptDecryptor.exe
)
使用方法
在命令中输入命令
1,cd 工具所在位置
2,ESETTeslaCryptDecryptor.exe 文件名\目录
3,Y
五,防护建议
1,及时备份重要文件,对重要的数据进行非本地备份
2,不要点击来源不明的邮件附件,不从非官方的网站上下载软件
3,关闭不必要的文件共享权限
4,个人电脑,服务器及时打补丁,修复漏洞
5,经常更换账户密码,设置强密码,避免使用同一个密码