近日,亚信安全网络安全实验室关注到REvil勒索软件团伙在暗网数据泄漏站点上发布了一条消息,声称他们已于2021年7月2日入侵了MSP提供商,并表明已有100万个系统受到勒索软件的影响,该团伙要求支付7000万美元的BTC,才能提供解密器。此事件引起安全厂商关注,REvil勒索再次成为焦点,亚信安全已截获到相关样本,并将其命名为:Trojan.Win32.SODINSTALL.YABGC。
释放恶意载荷
该样本是一个Dropper,其包含MODLIS和SOFTIS两个资源节。程序运行后,会搜索这两个资源节,然后这两个资源分别释放如下文件:
然后运行C:\Windows\MsMpEng.exe。
加载dll并调用其中的恶意函数
MsMpEng.exe加载mpsvc.dll并调用mpsvc.dll中的恶意函数ServiceCrtMain。
动态解密勒索代码并跳转执行
经过一系列内存解密操作后最终开始执行逻辑。
解密配置
创建互斥体
Global\422BE415-4098-BB75-3BD9-3E62EE8E8423
清空回收站
调用函数shell32.SHEmptyRecycleBinW清空回收站。
提权
使用函数ntdll.RtlAdjusiPrivilege获得调试权限。
文件加密
1.使用IO完成端口
勒索程序根据系统CPU创建对应数量的加密线程,然后绑定IO完成端口的形式加密文件,提高了加密文件的速度。
2.加密算法
勒索程序使用了一套复杂的加密系统(Curve25519椭圆曲线算法(DECH),AES算法和Salsa20),使得文件很难被解密。经过分析,我们找到了Salsa20加密所使用的常量(expand 32-byte kexpand 16-byte k)。
常量:121665,我们通过google搜索该常量发现,Curve25519椭圆曲线算法使用该常量。
在Github上找到的Curve25519椭圆曲线算法实现代码里同样找到该常量。
首先DECH算法生成两组密钥对,Session,File:
Sesson_Pulic 、Session_Privite ;
File_Public、File_Privite。
使用File_Privite和Session_Public通过DECH算法生成共享密钥File_Encryption,然后将共享密钥File_Encryption作为Salsa20的密钥用于文件加密。
再次通过DECH算法生成一个密钥对,R_public和R_privite。使用攻击者的公钥Attacher_Public和R_Privite生成共享密钥S。
使用共享密钥S作为AES的密钥对Session_Privite进行加密生成Encrypted_Key,将Encrypted_Key,R_public,File_Public写到文件尾部。
文件加密完成后丢弃File_Encryption、Session_Public、 File_Privite、 R_Privite、Session_Privite和 S。
其中Attacher_Public为:
base64编码形式为:
9/AgyLvWEviWbvuayR2k0Q140e9LZJ5hwrmto/zCyFM=
不能对加密文件进行解密
由于Attacher_Privite未知,无法导出共享密钥S;没有共享密钥S,就无法导出Session_Privite;没有Session_Privite,就无法得到用于文件加密的File_Encryption。
加密共享
更改桌面背景
文件加密完成后,使用GDI32库函数绘制勒索桌面背景。
亚信安全病毒码版本16.851.60,云病毒码版本16.851.71,全球码版本16.851.00 已经可以检测,请用户及时升级病毒码版本;
亚信安全DDAn沙盒平台已经可以检测;
亚信安全产品行为监控功能可以拦截该勒索病毒,建议用户开启行为监控功能,有效拦截已知和未知勒索病毒;
IOC:
SHA-256 :D55F983C994CAA160EC63A59F6B4250FE67FB3E8C43A388AEC60A4A6978E9F1E