Ryuk勒索病毒新变种分析

 

作者:阿里云云安全中心 柏石&清音

一、前言

2020年由于新冠病毒(COVID-19)的持续传播导致远程办公的需求激增,同时网络攻击事件也跟着激增,其中勒索病毒最为明显。整个2020年勒索病毒呈爆发状态,攻击规模以及勒索赎金都有了很大的增幅。其中被勒索赎金最高的为富士康勒索事件。2020年12月富士康位于墨西哥工厂的服务器遭到勒索病毒攻击,攻击者要求富士康在限期21天内支付1804.0955枚比特币,约合2.3亿元人民币。

目前最为流行的勒索病毒家族为Maze、REvil、Sodinokibi 、NetWalker、Ryuk等。随着攻防的演进,2020年勒索病毒也增加了新的特点。比如,勒索分成了两阶段勒索。先要求受害者支付赎金换取密钥以解密文件,然后要求受害者支付另一笔赎金来保证机密信息不被公开。同时,勒索病毒的操纵者们从性价比的角度出发,改变策略,攻击目标从广撒网改到精准投放,打击关键的高价值目标,以此换取高额赎金。还有就是从单纯勒索行为到与僵尸网络,挖矿等相互结合。

Ryuk勒索病毒最早在2018年由国外安全公司披露出来,其主要特点是通过垃圾邮件以及漏洞利用工具包进行传播。阿里云安全中心最近捕获到一个ryuk新型变种样本,我们对其横向传播技术进行了详细的分析,以此揭示勒索病毒常见的技术手段。通过分析大家会发现,勒索病毒会想尽一切办法进行传播,扩大战果,造成最大的破坏。最后我们会给出防范建议。

 

二、详细分析

1. 反调试和脱壳

样本编译时间为2021.1.22,VT上首次出现的时间为2021.2.2,所以样本还是很新的。第一件事当然是IDA里做静态分析。分析发现样本使用了独有的加壳程序,这会给静态分析带来麻烦。所以我们尝试让它自己运行到脱壳解密的状态,然后我们再做进一步的分析。如下图,样本对使用的资源,比如字符串是有加密的。

调试器里运行的时候,发现样本还具有反调试机制。如下:

这里是一个DebugPort的查询操作,指针地址给的1,这当然会触发异常。还有几个类似的地方需要处理掉。

解决了反调试问题后,样本的代码会对自身进行脱壳解密,随后我们把内存转储出来,再修复一下IAT,这样再分析代码就会清晰很多了。

2. fileless加密勒索方式

在随后的分析中我们发现一个有意思的地方,Ryuk勒索病毒在感染远程机器的时候,并不是将可执行文件传输过去,然后拉起再加密。而是通过SMB协议,远程感染加密了文件。这样做的好处是,在被攻击机器上,读写文件的上下文都是系统进程。这对于防御引擎来说,将很难决策是否是恶意的勒索行为。

攻击者使用SMB协议进行远程登录和文件访问,需要先具备登录权限。在很多企业局域网环境下,服务器的登录口令都是一样的,这种情况下,攻击者通过mimikatz和wce等方式可以拿到账户的登录凭证信息,以此再建立smb会话就很容易了。此处不展开讨论。

远程感染的过程分析如下:

我们在测试环境有两台同样用户名密码的测试机:测试机1(192.168.0.28),测试机2(192.168.0.31),在测试机1运行勒索样本,在测试机2抓包分析。

在测试机1运行样本后,测试机2的诱饵文件显示已被加密,并写入勒索通知文件。

通过在测试机2抓包发现,测试机1通过SMB远程登录到测试机2,然后远程对测试机2的诱饵文件进行了加密。

样本在拿到本地凭证的前提下,通过SMB协议登录局域网内同密码的机器,然后通过SMB加密远程机器内的文件实现勒索的目的。

通过SMB协议登录的前提是有明文密码或者NTLM hash,明文密码通过爆破可以拿到,困难度较高,但密码NTLM hash比较容易获得,目前公开的工具:mimikatz、wce(Windows Credentials Editor)都能拿到NTLM hash,所以病毒也能用同样都方式获得NTLM hash。

样本先是连接445端口,然后通过SMB协议使用NTLM认证登录远程机器。

Response包显示登录成功。同时远程机器上的日志也记录了登录成功的过程。(192.168.0.28为攻击者IP)

此处可见登录成功后去遍历磁盘分区。

此处可见远程加密重命名诱饵文件。

以上过程通过SMB协议在不投放病毒的情况下,实现了对目标机的文件加密勒索。对于防守方,这给检测防御带来了一定的困难。

3. 持久化和蠕虫化

此处可见勒索病毒通过SMB拷贝了病毒自身过来,放到了 C:\User\Public\目录下。

传播病毒后,后面的流程自然是建立启动项和进程拉起。通过PronMon监控发现,Ryuk这个勒索病毒是通过schtasks给远端的受害者机器建立了一个计划任务。计划任务建立后,马上发送了Run的命令来进行拉起。通过这个过程实现了病毒自身的传播和传导,勒索病毒实现了持久化和蠕虫化。

IDA里找到创建计划任务这部分的逻辑对应的代码如下。

总结下来,传播的过程是这样的:

总结:

Ryuk这款勒索样本,有加壳加密,有本地勒索,也实现了横向传播和远程勒索,技术相对全面。另外一个有意思的地方,我们发现这个勒索病毒会通过打印机打印自己的勒索声明,可以说是很嚣张了。

Ryuk这个勒索病毒还在持续演进,防守方需要一直关注样本演化的趋势,并提出新的防御,检测和修复方案。

 

三、防护建议

1、除非明确需要,Windows服务器强烈建议封禁445端口。
2、局域网内机器不要使用弱口令,也不要使用统一的口令。
3、操作系统要及时安装补丁,安全软件也要保持更新。
4、重要文件定期备份,防患于未然。

(完)