Sorebrect勒索病毒分析报告

背景介绍

AES-NI是一个x86指令集架构的扩展,用于Intel和AMD微处理器,由Intel在2008年3月提出。该指令集的目的是改进应用程序使用AES执行加密和解密的速度。
这里写图片描述
这里写图片描述
如代码所示,将EAX寄存器设置为0之后执行CPUID指令返回的制造商标识存放在EBX,ECX和EDX寄存器中。如果既不是GenuineIntel的处理器也不是AuthenticAMD的处理器则认为该处理器不支持AES-NI指令集。将EAX寄存器设置为1之后执行CPUID指令通过ECX寄存器中的标志位进一步判断处理器是否支持AES-NI指令集。
这里写图片描述
这里写图片描述
在2016年12月左右被感染的用户在论坛上发布了赎金信息和被加密的文件之后AES-NI 勒索病毒首次浮出水面。被加密的文件的一些早期文件扩展名包括.lock,.pre_alpha,.aes和.aes_ni。2017年5月出现了XData版本。它的代码基于原始的AES-NI版本,但是有一些显着的差异,例如XData的CC服务器不使用TOR并且使用进程注入技术。最明显的区别是加密文件的文件扩展名为〜xdata〜。最新版本的AES-NI现在正在使用.aes_ni_0day和.pr0tect扩展名,并称自己为特殊的“NSA EXPLOIT EDITION”,然而暂时还没有发现有类似于NotPetya和WannaCry使用NSA泄露的工具传播的行为。
这里写图片描述

IOC

CRC32: 907F515A
MD5: 83E824C998F321A9179EFC5C2CD0A118
SHA-1: 16B84004778505AFBCC1032D1325C9BED8679B79

细节分析

该程序在自己实现相关函数得到所需函数地址之后与一个固定值0x772756B1h异或存放,调用时再与此值异或得到真正的函数地址。
这里写图片描述
搜索被加载到内存中的位置。
这里写图片描述
解析kernel32的地址。
这里写图片描述
解析LoadLibrary的地址。
这里写图片描述
尝试获取下列dll的地址。
这里写图片描述
sub_A0A660的三个参数分别为dll的地址,存放函数地址与0x772756B1h异或加密之后的值的地址和函数名称的CRC32与0x772756B1h异或加密之后的值。
这里写图片描述
为了帮助分析,解析这些地址存放的函数地址对应的函数名称之后的效果如下所示。
之前:
这里写图片描述
之后:
这里写图片描述
笔者之前这里用的方法比较简单粗暴,后来看到fireeye开源了一个解析恶意代码隐藏的windows API的工具(见参考来源),和大家分享一下。这个工具的原理是虚拟机中运行恶意代码,服务端程序安装在虚拟机上,服务端程序可以接收指令检索指定进程加载的dll列表和函数。我们在工作机上通过socket和服务端程序通信,可以通过PID或进程名等解析进程中函数名称对应的地址或者地址对应的函数名称。从github上把它下载下来之后可以看到bin文件夹中就是服务端程序的二进制文件和依赖的dll,而cs_client,d_client,vb6_client,python_client是几种常见编程语言编写的客户端的例子。
这里写图片描述
我们首先把bin文件夹拷贝到正在调试恶意代码的虚拟机中并运行,勾选Allow Remote Queries。这里使用的是9000端口,确保我们可以使用该端口连接到虚拟机。
这里写图片描述
然后笔者以python_client为例说明客户端的编写。
这里写图片描述
首先import idc,把IP修改成虚拟机的IP(这里是192.168.132.128),程序名修改成正在运行的病毒的名称(这里是sample)。然后从内存中dump出函数地址列表得到addresses,这里注意大端序小端序的问题和异或解密。然后把这些地址依次发送给服务端解析,解析成功后提取返回结果中的函数名,MakeName修改IDA中对应位置的函数名。
这里写图片描述
可以看到效果还是很好的。有些地址没有解析出来是正常的,它们并不是API的地址,有些是程序释放的PE文件的地址等等。回到对恶意代码的分析。DuplicateTokenEx复制一份具有system权限的进程的token,使用CreateProcessWithTokenW创建具有system权限的svchost.exe。
这里写图片描述
这里写图片描述
如果没有成功会继续调用CreateProcessW创建一个普通权限的svchost.exe。
这里写图片描述
调用WriteProcessMemory向创建的svchost.exe写入一段代码。
这里写图片描述
之前:
这里写图片描述
之后:
这里写图片描述
这段代码在内存中加载并执行了一个文件,该文件内容与原病毒基本相同。
这里写图片描述
主体程序接下来在内存中释放了一个dll文件,这个文件是UPX加壳的。
这里写图片描述
主体程序还会尝试连接ipinfo.io,并以kzg2xa3nsydva3p2.onion/gate.php为参数调用前面释放的dll。该dll的功能为进行tor通信。
这里写图片描述
创建一个批处理文件删除日志记录。
这里写图片描述
这里写图片描述
尝试停止下列服务,这些服务涵盖各种备份恢复软件和数据库软件。
这里写图片描述
这里写图片描述
程序硬编码了一段CRC32的值,如果小写的进程名的CRC32值和硬编码的值相同则尝试终止该进程。
这里写图片描述
这里写图片描述
然后对主机上的文件进行加密,在C:\ProgramData目录下生成密钥,根据提示信息,受害者想要解密必须将该文件发送给攻击者。
这里写图片描述
加密之后探测局域网IP。
这里写图片描述
尝试通过IPC$加密目标主机上的共享文件。
这里写图片描述
设置LegalNoticeCaption和LegalNoticeText注册表项,内容分别为Microsoft Windows Security Center和 Dear Owner. Bad news: your server was hacked. For more information and recommendations, write to our experts by e-mail. When you start Windows,Windows Defender works to help protect your PC by scanning for malicious or unwanted software.系统启动时会弹出这个对话框。
这里写图片描述
这里写图片描述
删除所有卷影副本。
这里写图片描述

应对建议

定期备份文件。
及时更新补丁。
限制共享服务。
限制用户写入权限。
限制诸如PsExec之类的工具和服务。

参考来源

http://blog.nsfocus.net/hardware-accelerate-extortion-software-xdata/
https://www.fireeye.com/blog/threat-research/2017/06/remote-symbol-resolution.html
https://www.cylance.com/en_us/blog/threat-spotlight-aes-ni-aka-sorebrect-ransomware.html
https://blog.trendmicro.com/trendlabs-security-intelligence/analyzing-fileless-code-injecting-sorebrect-ransomware/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值