Potato 发表于 2021-5-26 16:33

CrysisV2勒索病毒样本分析

本帖最后由 Potato 于 2021-5-26 16:35 编辑

相关阅读:
Crysis勒索病毒样本分析
Crysis勒索病毒家族详情

一、      样本信息

文件名:Crysis_V2.exe
MD5:18a97b6be393ea73ce52d61a86ddcd5d
SHA-1:8a3820eff288682cf58ad4b2ea77c5e19a694ed0

二、      代码分析
    相比于之前版本的病毒通过EXE文件本身携带加密主体载荷的方式,当前版本的Crysis是一个自解压文件,解压路径为程序所在的执行目录。释放的文件包括2个powershell脚本和2个exe文件。
文件释放完成后执行启动脚本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,实现开机自启动。

    之后执行下列命令删除卷影备份:

<div&gt;mode con cp select=1251
</div&gt;<div&gt;vssadmin delete shadows /all /quiet
</div&gt;<div&gt;Exit</div&gt;
    如果当前执行权限非管理员,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为系统盘的序列号: .id-<hex_str(SystemDriveSerialNummber)>.[cavefat@tuta.io].HCK

以大于1.5MB文件为例,文件加密后结构以及加密流程如下图:

5.      勒索信息提示文件
    Winhost将在每个被加密目录下创建一个勒索信息文件FILES ENCRYPTED.txt。内容如下:

all your data has been locked us
You want to return?
write email cavefat@tuta.io or ripntfs@protonmail.com

另外还将在启动目录下创建文件info.hta,系统启动时将执行该文件以提醒用户,用户ID即为系统盘的序列号。

邮箱:

<div&gt;cavefat@tuta.io
</div&gt;<div&gt;ripntfs@protonmail.com
</div&gt;

打伞小鱼儿 发表于 2021-6-6 21:38

知道了工作原理,是不是可以破解了呀,逆向一下过程可以不,好多文件都被加密了期待解密
页: [1]
查看完整版本: CrysisV2勒索病毒样本分析