GandCrab应该是2018年最活跃的勒索病毒家族了,从2018年1月份出现GandCrabV1.0版本以来,到现在一直变化到了GandCrabV5.0版本,通过各种方式进行传播感染,笔者从分析GandCrabV1.0一直到GandCrabV5.0版本,之前一直分析GandCrab勒索病毒母体样本,这次给大家详细分析一下GandCrabV5.0.3的JS脚本,对于JS混淆类的脚本,只需要去混淆动态执行解密还原它本身的代码,就可以了。
GandCrabV5.0.3的JS脚本主要功能:
(1)对抗Avast杀软
(2)对抗Windows Defender
(3)对抗MSE微软杀毒服务
(4)对抗Ahnlab安博士杀软
(5)生成GandCrabV5.0.3勒索病毒变种样本并执行
详细分析如下
1.JS代码,如下所示:
2.从以上JS脚本中提取出里面的解密后的代码,如下所示:
对里面的函数功能进行介绍,ffnoui生成相应的js脚本或GandCrab勒索病毒程序,如下所示:
hmvfdhlkxzz获取系统所有服务及运行状态,如下所示:
vwuyaxrl调用WScript.Shell执行生成的相应的JS脚本,如下所示:
3.对抗Avast杀软,如果检测到系统服务中包含Avast杀软服务,则生成相应的脚本并执行,如下所示:
生成的kyoxks.js脚本内容,如下所示:
解密出相应的JS脚本内容,如下所示:
以上脚本的功能是先将一代PowerShell脚本代码写入到注册表项中,相应的注册表项:
HKEY_CURRENT_USER\SOFTWARE\ycsdrr\pvrylqzhlnv,相应的PowerShell脚本解密之后,如下所示:
查找并启动Avast更新程序,同时拷贝相应的杀软文件到临时目录,清除缓存数据等,如下所示:
遍历Avast更新程序进程,如下所示:
查找Avast更新程序窗口进程ID,如下所示:
发送相应的消息,如下所示:
将上述的PowerShell命令代码写入到注册表之后,再通过PowerShell创建相应的计划任务并执行,通过计划任务执行上面的PowerShell代码,如下所示:
4.对抗Windows Defender,如果检测到系统服务中包含WdNisSvc或WinDefend服务,则生成相应的脚本并执行,如下所示:
生成的nykvwcajm.js脚本,如下所示:
解密出相应的JS脚本内容,查找WdNisSvc或WinDefend服务,如下所示:
将关闭Windows Defender软件实时监控和结束相关进程的命令写入到注册表项中,相应的注册表项,如下所示:
HKEY_CURRENT_USER\Software\Classes\ms-settings\shell\open\command\
HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command\
相应的命令行,如下所示:
cmd.exe /C "powershell Set-MpPreference -DisableRealtimeMonitoring $true && taskkill /im MSASCui /f /t
cmd.exe /C "sc stop WinDefend && taskkill /im MSASCui /f /t
然后通过启动相关程序,执行命令,如下所示:
最后删除相应的注册表项,注册表项如下:
HKEY_CURRENT_USER\Software\Classes\ms-settings\shell\open\command\
HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command\
5.对抗MSE微软杀毒服务,如果检测到系统服务中包含NisSrv,则生成相应的脚本并执行,如下所示:
生成的bervcptyvulur.js脚本的内容,如下所示:
解密出相应的JS脚本内容,查找系统服务中是否存在NisSrv服务,如下所示:
将关闭MSE进程的代码写入到注册表中,相应的注册表项:
HKEY_CURRENT_USER\Software\Classes\ms-settings\shell\open\command\
HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command\
相应的代码:
MsiExec.exe /X{2AA3C13E-0531-41B8-AE48-AE28C940A809} ACCEPT=YES /qr+ /quiet
然后启动相关进程,执行关闭MSE的代码,如下所示:
最后删除相应的注册表项,注册表项如下:
HKEY_CURRENT_USER\Software\Classes\ms-settings\shell\open\command\
HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command\
6.对抗安博士杀软,如果检测到系统服务中包含V3 Service,则生成相应的脚本并执行,如下所示:
生成的recjyzcz.js脚本的内容,如下所示:
解密出相应的JS脚本内容,查找系统服务中是否存在V3 Service服务,如下所示:
将一串base64加密的字符串写入到相应的注册表项,如下所示:
写入的注册表项为:HKEY_CURRENT_USER\Software\capvzgf\cazysa,通过Base64解密出相应的字符串,查找Ahnlab安博士杀软的卸载程序,并执行卸载程序,如下所示:
然后将执行此注册表项命令的PowerShell脚本写入到相应的注册表项,并通过启动相应的程序执行,如下所示:
执行注册表项的PowerShell命令解密出来的代码,如下所示:
最后通过执行PowerShell脚本,查找启动Ahnlab的卸载程序,卸载Ahnlab杀毒软件,同时删除相应的注册表项,注册表项如下:
HKEY_CURRENT_USER\Software\Classes\ms-settings\shell\open\command\
HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command\
7.最后生成GandCrabV5.0.3的勒索病毒母体,并执行勒索病毒加密主机,如下所示:
生成的相应的GandCrabV5.0.3版本的勒索病毒样本,样本运行之后,如下所示:
勒索信息文本文件,如下所示:
解密的TOR链接相关信息,如下所示:
8.这里我也简单分析一下GandCrabV5.0.3的勒索病毒样本吧,主要是教一些人怎么提取一下Payload代码,虽然这不是本文的重点,但你不说总有人不会,GandCrabV5.0.3第一层解密操作,如下所示:
解密出相应的代码,如下所示:
9.然后动态调试,执行到如下地址处,进行第二层Payload的解密操作,如下所示:
解密出第二层GandCrabV5.0.3的核心Payload代码,从内存中Dump出来,修复PE文件之后,如下所示:
可以看到这个GandCrab勒索病毒的版本为GandCrabV5.0.3,如下所示:
这里就不详细分析GandCrab核心Payload代码了,GandCrabV5.0.3的核心代码与GandCrabV5.0的核心代码是差不多的,可以参考之前我分析发表过的GandCrabV5.0勒索病毒分析报告(百度搜索:勒索病毒GandCrabV5.0最新变种来袭)。
从JS脚本释放的GandCrabV5.0.3的母体是一个外壳,它会在内存中通过二次解密出相应的GandCrabV5.0.3的核心加密Payload代码,这也是母体样本分析的重点,也是动态调试的关键点,解密出相应的核心代码之后,然后再在内存中执行相应的加密操作,有兴趣的可以自己动态调试分析。
MD5
595A31A4913951D3EB7211618AE75DEA JS下载脚本
95557A29DE4B70A25CE62A03472BE684 GandCrabV5.0.3勒索病毒样本
样本解压密码:infected