Valices 发表于 2020-9-17 10:17

Phobos勒索软件变种之Roger来袭

本帖最后由 Valices 于 2020-9-17 10:24 编辑


# 前言
Roger是近期较为活跃的一款勒索病毒,隶属于Phobos家族。Phobos家族通常通过RDP暴力破解+人工投放的方式进行攻击。
攻击者成功入侵后,通常会关闭系统的安全软件防护功能,运行勒索病毒,加密后会修改文件后缀为[原文件名]+id[随机字符串]+[邮箱地址].ROGER,目前该勒索无法解密。


# 行为概述

勒索病毒运行后,创建互斥体,接着遍历数据库,邮件,办公软件等相关进程,并中止查询到的进程,解除文件占用,以保证加密文件成功。
之后运行加密模块。与此同时,内存解密出勒索信息、需要加密文件后缀名、以及被加密文件随机后缀等。之后遍历系统文件目录,加密相关文件,最后弹出勒索信息。

**值得关注的是,该勒索病毒在运行过程中会进行自复制,并在注册表添加自启动项,如果没有清除干净系统中残留的病毒体,重启后很可能会遭遇二次加密。**

# 样本分析

**开始正式将分析之前,要说明以下,由于样本来源的特殊性,这里并没有将样本的hash信息公布**。

## 反调试保护

首先是有一层upx的外壳,用upx提供的脱壳工具来搞定。


**接下来的分析让我差点蒙了,感觉这就是一个正常的图形化程序代码,如果不是我提前知道这是个勒索软件,估计就被骗过去了吧。**


**不得不说,Roger新变种勒索在反调试上是做的真好,第一层通过upx加壳保护,第二层通过正常图形化代码伪装,但最终还是被API断点拦下。**


紧接着获取VirtualAlloc的地址,用于分配新的内存来存储内部数据。


分配0x33000大小的内存,用于之后的解码操作,并执行相应的代码,这部分二进制代码,可以作为脱壳后的特征码,用于判断是否是roger勒索。


紧接着对该内存区域进行内存拷贝,拷贝的数据来源于内部数据解码之后的结果。


针对0x1900000下内存写入断点,发现了第二次对该数据写入的地方。


**有意思的是,系统API通过这样的组合来调用,并且jmp eax被所有API调用,所以在jmp eax下断点,会看到所有的API调用。**


通过EnumSystemGeoID的系统API触发了CreateProcessW,当返回到用户层时,发现已经进入了分配的内存区域。


## 进程注入

通过SetThreadContext来设置线程的EIP,此时EIP被设置为0x40A9D0。


**在这里明显发现了进程代码注入的API组合,一般是以下这种组合情况。
1.使用CreateProcessW创建挂起进程。
2.GetThreadContext获取线程上下文信息。
3.SetTreadContext设置线程的EIP信息。
4.ResumeThread恢复线程执行代码。**

通过对roger进程的查看发现,确实满足这样的一组API组合,并且进程也是挂起的状态。


## 子进程附加

通过附加的方式,附加创建的子进程roger,并跳转到0x40A9D0设置断点信息。


在进行其他操作之前,首先获取了几组系统环境变量值。



调试发现通过拼接的方式来获取并打开互斥量,如果没有就创建新的互斥量。



## 涉及的服务和进程

加密的文件类型几乎是全文件加密,由于特别多这里只列举了部分。


涉及的部分服务信息,多数为数据库相关服务,包括firebird、sql、mssql以及sqlserver等数据库服务。


涉及关闭的进程信息,如下图所示,主要包含数据库进程,以mysql、postgres和sqlserver等数据库进程。


## 设置开机启动

将roger勒索病毒在拷贝到多个位置,并设置对应的开机启动项。


首先是注册表的自启动,自启动的目录为SOFTWARE\Microsoft\Windows\CurrentVersion\Run。
其中又包含了HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER,这里可以借助Autoruns来帮助完成查找。



接着是通过Start up目录实现开机文件自启动。



这里可以借助everything来帮助寻找roger文件。


Roger子进程通过进程内存替换完成了以下这些功能,包含目标进程和服务名以及实现多种方式的开机启动,最后删除掉系统的shadow,防止数据恢复。


这些功能也可以通过行为检测工具也能发现roger的相关行为,详细如下图所示。、


## 进程卡死

**在刚开始调试的时候并不知道子进程roger会利用双管道实现对cmd进程数据的读写,发现创建cmd子进程后老容易卡死,并且是创建的双管道,可能是利用的管道对cmd进程进行数据发送的。**


## 勒索提示生成部分

除此之外还没有看到最重要的文件加密部分,为此还得继续努力,终于通过调试发现了有趣的东西,首先发现的是加密后缀的生成。


紧接着看到了勒索提示文件名的生成,感觉应该稳了,继续慢慢调试。


最后是info.hta用于显示勒索信息。


## 遗憾的部分
最后的结果是悲伤的,虽然发现了roger启动了超级多的线程去执行最后的加密过程,但是由于某些未知的原因导致调试器卡死。
**断点信息全部没了,没了,没了**。
当时的内心是卧槽的,整个调试过程可能花了大概30分钟,突然以下就没了,而且还没有之前的调试信息。最后只能留下了一张生成勒索文件的截图。


**啊,西湖的水,我的泪。**

印象中调试最后部分,出现最多的就是**CreateThread**,并且其中有个线程用于完成生成勒索文件的部分。

其他关于加密部分,**由于调试的耗时性,并没有再一次进行二次调试,也算是留下了一个小小的遗憾吧。**

# 安全解决方案

1、由于Phobos家族会利用RDP(远程桌面协议),建议关闭3389等远RDP相关端口,如果确实有工作业务需要,建议进行白名单配置,只允许白名单内的IP连接登陆。
2、尽量关闭不必要的文件共享,或使用强密码对文件共享加密保护。
3、定期更换帐户密码,采用高强度的密码,避免使用弱口令密码,同时避免使用统一的密码。
4、对重要文件和数据进行定期异地备份。

wfd007 发表于 2020-9-17 12:00

了解一下。

sddson 发表于 2020-9-17 12:02

谢谢分享

SwE 发表于 2020-9-17 12:18

请问这个勒索软件,是否利用了系统漏洞?Windows 10的自动升级功能是否可以避开攻击?

匿名。 发表于 2020-9-17 12:34

看的一脸懵逼,看来还是需要学啊!

稻海香 发表于 2020-9-17 13:14

看的一脸懵逼

suohu1984 发表于 2020-9-17 14:35

感谢技术大佬分享

WuAi5324499 发表于 2020-9-17 14:36

羡慕大佬啊,像我们这种外行业余菜j头皮发麻,脑壳痛

雨卷倾城3236 发表于 2020-9-17 18:27

明白了,谢谢分享

hydai520 发表于 2020-9-18 08:31


看的一脸懵逼,看来还是需要学啊!
页: [1] 2
查看完整版本: Phobos勒索软件变种之Roger来袭