前言:
Crysis勒索病毒家族从2016年传播至今已达近4年的传播历史,极少有在传播极少和样本上做调整,但是近日360安全大脑监控到该勒索病毒出现一款新的变种。该通过分析发现该变种版本最大的变动是集成了多个工具便于投毒者了解当前系统中存在的杀毒软件,加密时CPU占用率,以及将未挂载的共享挂载到本地最大程度的加密更多文件。
一、 代码分析
相比于之前版本的病毒通过EXE文件本身携带加密主体载荷的方式,当前版本的Crysis是一个自解压文件,解压路径为程序所在的执行目录。该自解压文件会释放出两个powershell脚本和两个可执行文件。
文件释放完成后会先执行脚本takeaway.ps1。
takeaway.ps1
获取反病毒软件信息并在终端进行展示。在远程投毒过程中,该勒索病毒很大程序会被查杀,获取反病毒信息能更快让投毒者知道该用户机器上存在多少个杀毒软件。方便做处理(大多数投毒者登录到用户系统后会先选择卸载掉杀毒软件)。
使用powershell执行脚本purgeMemory.ps1,并启动扫描挂载模块NS2.exe。
接着删除脚本Takeaway.ps1、purgeMemory.ps1,然后执行加密模块winhost.exe
根据pid修改之前执行的winhost.exe进程运行优先级为最高,并监控winhost执行过程中的CPU占用率。
purgeMemory.ps1
该脚本主要用于删除备份数据、日志、停止服务以及进程等操作。
删除卷影。
删除指定的服务和进程,主要包括服务器、数据库、office办公工具等多种相关程序。
清空系统日志,最大程度隐藏自己的踪迹。
NS2.exe
NS2.exe模块用于扫描本地和网络资源中所有卷,并对未挂载卷进行挂载,以尽可能地对可访问的数据进行加密。
但是从运行情况来看,需要外部向程序控制台输入指令才能进行下一步操作,还并未将其加入自动化中。
将本地未挂载卷进行挂载。
枚举网络资源,将可访问的网络资源映射到本地。
winhost.exe
winhost.exe主要是加密模块,该模块通过对大量数据RC4加密、替换IAT表等方式躲避反病毒软件的检查,并一定程度地反分析。
Winhost.exe和之前分析过的Crysis版本十分相似,除了勒索文件部分内容、加密文件后缀等不同点,其他部分几乎一致。
1. 关闭目标服务和进程
首先是关闭目标服务,主要包括Firebird、sqlserver等数据库服务。
FirebirdGuardianDefaultInstance
FirebirdServerDefaultInstance
sqlwriter
mssqlserver
sqlserveradhelper
关闭目标进程,包括数据库、邮箱等相关进程。
1c8.exe
1cv77.exe
outlook.exe
postgres.exe
mysqld-nt.exe
mysqld.exe
sqlservr.exe
2. 自启动&卷影删除&提升权限
病毒将会尝试将自身复制系统目录、自启动目录下。
%windir%\\System32
%appdata%
%sh(Startup)%
%sh(Common Startup)%
如果复制成功,将%windir%\\System32目录下的winhost.exe加入注册表自启动项Software\\Microsoft\\Windows\\CurrentVersion\\Run,实现开机自启动。
之后执行下列命令删除卷影备份:
mode con cp select=1251
vssadmin delete shadows /all /quiet
Exit
如果当前执行权限非管理员,winhost.exe则以管理员(runas)权限重新运行自身。
3. 搜索文件进行加密
和之前版本Crysis病毒一样,虽然执行过程中会通过RC4对称算法解密处大量的文件后缀名,并且也会进行比较,但实际上并未对指定类型的后缀进行过滤。
搜索时跳过目录%WINDIR%以及后缀为.HCK的加密文件,避过以下文件名:
boot.ini
bootfont.bin
ntldr
ntdetect.com
io.sys
FILES ENCRYPTED.txt(勒索信)
Info.hta(勒索信息文件)
4. 文件加密方式
文件加密时采用AES对称加密算法,生成32字节随机值作为全局密钥,用于加密所有文件。
加密每个文件时,为每个文件生成不同的IV,采用CBC加密模式。
不同大小的文件将采用不同的加密方式。
如果文件小于等于1.5MB,winhost将创建一个新文件,将原文件内容加密后写入其中,然后删除原文件。
如果文件大于1.5MB,为原文件添加扩展名,从文件首部、中部、尾部分别读取0x40000(256KB)内容进行加密,加密结果写于文件尾部,读取的数据原本位置将被置0。
所有被加密后的文件尾部将包含以下信息:
加密标志常量
原文件名
“2K63V7”
SHA-1(RSA_PubKey)
初始向量IV
Padding字节数
RSA_ENC(AES_KEY)
尾部长度
(大于1.5M的文件还会写入片段间隔)
为加密后的文件添加扩展名,id为系统盘的序列号:
以大于1.5MB文件为例,文件加密后结构以及加密流程如下图:
5. 勒索信息提示文件
Winhost将在每个被加密目录下创建一个勒索信息文件FILES ENCRYPTED.txt。另外还将在启动目录下创建文件info.hta,系统启动时将执行该文件以提醒用户,用户ID即为系统盘的序列号。
|
评论
直达楼层