Ryuk勒索病毒新变种分析

发布者:Editor
发布于:2021-02-09 13:21


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



前言

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比较容易获得,目前公开的工具

1)mimikatz 

2)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、重要文件定期备份,防患于未然。

阿里云安全中心解决方案

通用防勒索解决方案为您提供逐层递进的纵深式防御体系:

实时防御已知勒索病毒借助云上全方位的威胁情报,云安全中心实现了对大量已知勒索病毒的实时防御。在服务器被病毒感染的第一时间拦截勒索病毒,避免发生文件被病毒加密而进行勒索的情况。

诱捕、拦截新型未知勒索病毒通过放置诱饵的方式,云安全中心实时捕捉可能存在的勒索病毒行为。针对新型未知的勒索病毒,一旦识别到有异常加密行为发生,会立刻拦截病毒,同时通知您进行排查清理。

支持恢复被病毒感染文件在对勒索病毒进行防御的同时,云安全中心还支持文件备份服务,能定期对指定文件进行备份,支持按时间或文件版本恢复服务器数据。在发生极端情况导致文件被加密时,能够通过文件恢复的方式找回数据,确保服务器数据的安全。




声明:该文观点仅代表作者本人,转载请注明来自看雪