近期GandCrab勒索事件详细分析

作者:Kshom@360观星实验室

勒索事件概述

从2018年9月底开始,根据数据监测GandCrab勒索有大规模爆发趋势,且版本更新频繁。在国内GandCrab目前仍以弱口令爆破、伪装正常软件诱导用户运行及漏洞传播这三种方式传播。当用户遭受感染时,系统磁盘被加密,文件后缀被修改为随机字母,并勒索交付数字货币赎金。 本文将对勒索事件应急中的一些经验与大家分享

PS: GandCrab作者曾向被加密的叙利亚受害者道歉公布了5.0.3以前版本的密钥,随后更新了5.0.4版本并将叙利亚排除在加密区域之外,但是在10月最新的5.0.5版本又将这个区域设定删除

 

样本勒索执行流程

 

勒索样本分析

虽然GandCrab勒索病毒更新比较频繁,但代码框架变动不大,为保持文章完整性,这里对勒索的流程和细节进行梳理,以10月最新的5.0.5版本分析为主。
MD5: C805528F6844D7CAF5793C025B56F67D

从GandCrabV4版本之后,作者对函数调用入口做了处理,增加静态分析难度,此处入口为 loc_4061B3

遍历进程,结束占用特定文件的进程,为能正常加密文件做准备

结束的进程如下

检测特定的互斥量

这里的互斥量对应了样本中嵌入的DLL,决定是否开启利用两个提权漏洞进行提权DLL通过xor 0x18解密后,内存执行并通过管道与主进程通信

通过VerifyVersionInfoW判断操作系统MajorVersion是否为6以上

判断当前进程权限及安全身份RID,判断是否大于0x1000,这是确认当前进程是否为system组启动,以上两步均是判断操作系统是否为win7以上

判断是否为俄语系键盘语言及输入法

5.0.4版本中作者将叙利亚列入未加密区域,在5.0.5中又将其删除

5.0.5如下图所示,5.0.4版本如上图所示

将系统盘磁盘卷区的序号与特定字符串拼接加密后计算hash值,以此创建Mutex变量

随后使用内置的密钥解密出RSA公钥

当前版本RSA公钥如下

查找是否存在相关杀软进程

从注册表中取处理器相关信息拼成字符串计算CRC32值

获取机器信息,生成ransomId并拼接成字符串

随后通过RC4对这部分数据加密,RC4密钥为”jopochlen”

加密后的数据如下

在GandCrabV5版本后,加密文件后生成后缀变为随机

提取中要加密文件的类型及其后缀

使用CryptGenKey及CryptExportKey生出并导出公私密钥对,并查找注册表HKCUSOFTWAREkeys_datadata及HKLMSOFTWAREkeys_datadata两项,作者检查HKCU及HKLM为确保样本在非管理员权限以上启动也可正常写入注册表

若这两个注册表项均不存在,则先创建HKLM(HKCU)SOFTWAREex_datadata项,并生成ext子项中存储此次勒索后缀。

生成RSA公钥加密后的密钥

将密钥信息写入到注册表HKLM(HKCU)SOFTWAREkeys_datadata的public和private中

若这些注册表项已经存在则会使用HKLM(HKCU)SOFTWAREkeys_datadata项中原有的密钥及对应的后缀继续加密

将加密提示写入到txt文件中

并将加密后的密钥Base64保存

创建线程开始加密

加密会分别枚举网络资源和本地文件,枚举网络资源如下

以下目录不加密

以下文件不加密

存在随机生成的字符串则在目录下生成XXXXX-DECRYPT.txt勒索信息文件,否则生成KRAB-DECRYPT.txt

使用随机生成的字符串为后缀,若不存在则使用KRAB后缀

递归遍历磁盘目录,加密流程如下

加密函数与老版本基本相同

最后末尾写入0x21c大小的加密数据

将机器信息Base64编码后发送到某些域名

解密出的域名如下图

通过执行vssadmin delete删除巻影镜像防止恢复

勒索完成后会自删除

在GandCrabV5版本后,会在%TEMP%目录下创建并更改系统壁纸,展示勒索信息

在GandCrabV5版本后,作者增加了多个提权漏洞利用,有影响Win7、WinServer 2008及WinServer 2008 R2提权漏洞CVE-2018-8120

影响Win7以上的操作系统的提权漏洞CVE-2018-8440

Win10提权漏洞CVE-2018-0896

至此勒索样本分析完成

 

事件溯源分析

在2018年10月18日,360观星实验室团队在处理用户应急时,发现内网遭遇勒索,文件后缀被加密为PWFKPFCP,在磁盘目录下发现PWFKPFCP-DECRYPT.txt文件,根据特征判断用户感染了GandCrab勒索软件

对于被感染的用户,使用了观星实验室应急响应分析平台,对用户相关系统提取关键日志等信息,通过关联分析,大致得出黑客攻击的路径,具体如下:

无论是前段时间爆发的GlobeImposter勒索、Crysis勒索还是近期的GandCrab勒索,以弱口令爆破为主要攻击手法的黑客团伙已经拥有非常成熟的流程和工具。

在对收集上来的日志进行关联分析时,发现对KProcessHacker服务的加载时间来统计其时间轴进行初步定位

从数据得出在2018年10月16日22点57分,KProcessHacker服务已被加载,其登录分析行为如下

在暴力破解检测中发现从2018年10月14日开始,用户机器已经遭受大量爆破攻击

并发现了两条可疑的RDP登录记录

一条记录指向是X.X.X.60这台机器,在2018年10月18日凌晨2点29分通过Administrator RDP登录,这台60机器显然也是受害机器,但时间已经晚于KProcessHacker加载时间

另一条记录指向是X.X.X.171这台机器,在2018年10月16日22点56分通过Administrator RDP登录,这台机器的登录时间与KProcessHacker服务的加载时间相近且在其之前

深入分析171机器,同样发现了大量爆破记录

在2018年10月17日凌晨4点05分Administrator被重置密码

随即在2018年10月17日凌晨4点13分开始,恶意ip 119.129.75.111登录

并在2018年10月17日 17点27分将Administrator添加为Oracle超级管理员

继续对X.X.X.171机器关联分析发现X.X.X.164机器被更多的恶意ip登录

针对乌克兰193.238.46.96等ip分析,发现存在明显的扫描和爆破行为

对所有登录事件关联分析如下图所示

通过以上分析,基本确认出此次攻击的发起点及攻击路径

 

处置建议

对于已经感染的服务器立即下线隔离
在网络边界防火墙上全局关闭3389端口或3389端口只对特定IP开放
开启Windows防火墙,尽量关闭3389、445、139、135等不用的高危端口
每台服务器设置唯一口令,且复杂度要求采用大小写字母、数字、特殊符号混合的组合结构,口令位数足够长(15位、两种组合以上)
及时修复系统漏洞

 

安全建议

系统、应用相关的用户杜绝使用弱口令,同时,应该使用高复杂强度的密码,尽量包含大小写字母、数字、特殊符号等的混合密码,加强管理员安全意识,禁止密码重用的情况出现
禁止服务器主动发起外部连接请求,对于需要向外部服务器推送共享数据的,应使用白名单的方式,在出口防火墙加入相关策略,对主动连接IP范围进行限制
有效加强访问控制ACL策略,细化策略粒度,按区域按业务严格限制各个网络区域以及服务器之间的访问,采用白名单机制只允许开放特定的业务必要端口,其他端口一律禁止访问,仅管理员IP可对管理端口进行访问,如FTP、数据库服务、远程桌面等管理端口
配置并开启相关关键系统、应用日志,对系统日志进行定期异地归档、备份,避免在攻击行为发生时,导致无法对攻击途径、行为进行溯源等,加强安全溯源能力
针对服务器,不仅要安装带主动防护的杀毒软件,最好部署安全加固软件,阻断黑客攻击

 

参考链接及IOC

IOC:

c805528f6844d7caf5793c025b56f67d

f8853def4c82a9075ff0434c13ceca23

c805528f6844d7caf5793c025b56f67d

“GandCrab勒索病毒最新疫情”- 360安全卫士

“Rapidly Evolving Ransomware GandCrab Version 5 Partners With Crypter Service for Obfuscation”- Mcafee

(完)