动态专区
九维团队-青队(措置)| Revil勒索软件样本行为分析
一、样本根基信息
|
|
文件名称:agent.bak
文件大。83.0KB
最后批改日期:2022年8月10日,0:07:43
MD5:
2608d32524e17332eae79afa78f215eb
SHA1:
887bd34d8eae7de8fe24c6ee890f5196c1ed99f5
SHA256:
ffc9e9505eb0a71352c0421784577153617c970f3f9c27b3c0399db454fd9bdd
是否加壳:有
壳类型:无
开发说话:VS2015
标签:勒索软件、REvil家族
二、样本行为分析
01
注册表监控
|
|
02
文件监控
创建勒索文件,加密文件并改名:
|
|
三、具体分析
法式查问不出任何API,没有什么沉要内容的字符串,恶意行为被暗藏起来。必要病毒样本动态进行解密复原IAT。
IDA分析
加载实现后,能够看到入口点有四个函数挪用:
我们发现sub_407682函数,首先传入数组的4字节数据给sub_4074F9函数,而后将运算了局(eax)的值沉新回填给数组,一共循环了780次,推算了3120个字节。这与我们熟知的动态解析IAT步骤很类似,加上我们之前分析病毒抹去了IAT能够合理猜测该处在做回填IAT表的操作。
进去查看sub_4074F9函数,疑似switch/case的判断。凭据传进来分歧的数据进行执行分歧流程中的函数地址赋值,而后跳转到LABEL_33。凭据动态链接库的加载经验,第一件事通常是动态获取指标?榈幕刂,而后凭据基地址解析对应导出函数的地位。所以猜测这里的switch/case语句是在做获取dll基址的操作。
验证函数是否正确:
01
sub_406C8E? - 解密字符串
汇编大局阐发如下。
注:若是逆向时忽然出现两次循环且每次循环次数都为256,后续存在异或操作根基能够猜测为rc4解密算法,这种个性为rc4算法特点。
下面能够发现字节异或算法,能够根基确认是rc4算法了。
凭据RC4的个职能够分析出函数的职能:
02
动态建复IAT
所谓动态建复IAT类似动态脱壳,道理是利用病毒自身携带的解密法式,在病毒自动建复实现后中断。将内存状态Dump出来保留。在sub_407682步过:
|
|
使用Scylla就能够发现此时IAT能够建复实现了,dump出来就能够进行下一步的分析:
03
病毒行为分析
能够看到建复之后的逻辑了,首先动态获取API后再加载ole32?榛袢〈唇–OM组件所需的接口。
退回到函数主逻辑,能够看到病毒先是建复了IAT表来保障法式正常运行:
Sub_405F61 函数
设置谬误模式获取谬误信息并创建名为Global\72F38129-220D-3C80-4D03-DC9E69CA4394的全局互斥体保障过程唯一性。
Sub_402043 函数
创建内存空间解密配置勒索信息:
解密出来能够看出是一种网络剧本说话JSON语法的配置文件:
在nbody字段和img字段存在base64的特点,通过base64解密能够解密出勒索信的内容:
|
|
勒索信存在填充内容,猜测后续会有网络系统信息的操作:
接着分析,病毒网络卷序列号以及CPU信息天生一个hash值:
获取并设置新的注册表键值信息:
获取当前用户:
获取推算机的 NetBIOS 名称:
获取domain键值:
获取本地系统说话:
获取Windows版本信息:
判断系统位数:
之后在sub_402930将字符串进行拼接并加密,并设置为注册内外的值:
样本函数的主逻辑
我们能够分析出病毒设置了法式/线程的优先级和预防系统休眠;褂幸桓鰏ub_408012的函数,利用RtlAdJustPrivilege进行提权。
接下来病毒创建了两个个通讯线程执行分歧的职能。
Thread sub_404532
使用WMI检测异步创建过程:
Thread sub_4047F1
使用WMI检测是否有ShadowCopy文件:
sub_403AA0函数
遍历过程服务,杀死ServicesActive配置字段中的服务过程:
杀死列表中服务过程:
sub_405EE1函数
病毒创建了一个过程快照通过循环对当前内存中过程信息块进行遍历,并将获取到的过程名传入函数指针,挪用函数指针指向的地址。
不是.exe就终止过程:
凭据过程ID杀死过程:
文件加密是通过API暴力遍历所有盘符,满足类型后遍历加密盘符:
遍历盘符目录:
遍历共享网络盘符:
勒索病毒配置文件下的加密白名单,其中蕴含exe,com等。
写入勒索信函数:
04
加密部门
病毒作者为了钻营加密时的高效急剧,利用了I/O齐全端口。这种技术能够实现异步多线程,为线程并发提供有效支持。
挪用CreateIoCompletionPort函数创建一个I/O实现端口对象,并创建一个函数循环创建与IOCP对象交互的线程。
病毒的加密分为了四个步骤,被封装到一个switch语句里进行挪用。
加密算法我们能够使用ida的插件findcrypt助我们鉴别算法的特点。
RijnDael_AES算法
Salsa20算法
椭圆曲线密码系统(ECC)
在引用AES算法之前的sub_409F32函数里发现121665常量。
四、总结
综上所述,agent.exe样本属于REvil家族的一款勒索病毒,样本的最后编译为2022年8月10号。
Sodinokibi,也称为 REvil,是一种自 2019 年 4 月起活跃的勒索软件。Sodinokibi 是一种“勒索软件即服务”,这意味着开发人员不是进行攻击的人。相反,他们守护治理/支付基础设施并向客户提供或销售恶意软件。这些客户是传布恶意软件的人。对于支付的每一笔赎金,开发人员城市获得肯定的百分比。
这种方式有好多利益:习染源成倍增长,开发人员能够专一于代码和守护,而客户能够专一于攻击和习染指标。
样本使用了-t参数来判断样本是否要开释出病毒,在静态分析的时辰病毒使用了IAT混合和字符串加密,病毒会在执行过程中解析IAT表,而后创建全局唯一变量互斥体保障法式单独运行。
法式使用了RtlAdjustPrivilege进行提取,而后,它将终场其配置中列出的服务和过程。这些过程通常是防病毒、数据库、备份或快照解决规划等。病毒使用 I/O 实现端口并行文件加密,并使其尽可能快。
文件使用 Salsa20 算法加密,每个文件都有一个唯一的加密密钥。加密密钥由复杂的密钥系统;,预防在没有攻击者占有的私钥的情况下解密文件。样本并没有做持续化的作为,预防留下更多的痕迹。
五、防护措施
1、规范上网行为,不下载装置未知的软件,不点开来历不明的文档、图片、音频视频等。
2、定期更换域控、数据库、服务器上的治理员密码。
3、定期更新病毒库,按时组织内网进行全盘扫描。
4、定期更新补丁,建复缝隙。
5、定期查抄防火墙及安全软件的防护日志,实时发现异常并解决。
6、定期离线备份或异地备份沉要数据。
7、批改数据库默认端口,预防被扫描器爆破。
8、进行严格的隔离,有关系统、服务尽量不盛开到互联网上,内网中的系统也要通过防火墙、VLAN或网闸等进行隔离。


立即履历恒脑安全智能体 



立即解锁AI安服数字员工 




行业解决规划
技术解决规划









