-
-
[原创]Conti勒索软件分析
-
2022-3-20 18:06
12310
-
前言
此样本收集自网络,旨在通过逆向分析研究勒索软件的行为特点,样本在附件中,感兴趣的可以自行下载分析,但由此造成的一切损失与本人无关,由下载者自行承担由此出现的一切后果。
Conti勒索组织(又名勒索病毒 IOCP),Conti出现于2019年,是一个非常活跃的勒索团伙,本次分析的样本就出自该团伙之手。
一、 样本基本信息

导入表显然有鬼,怎么可能只有这么点东西

资源中发现勒索信息

二、IDA和OD结合分析
2.1 通过定位WinMain函数,发现样本先是调用sub_401000获取了大量关键函数,然后创建互斥体防止勒索病毒重复运行,接着获取资源中的勒索信息。

sub_401000函数内部
病毒对动态链接库以及WindowsAPI进行了加密,严重干扰分析

使用GetProcAddress和LoadLibrary获取指定函数地址(一些病毒的常规操作),达到隐形调用API的目的,这也是在导入表中看到只有那么点信息的原因

我们来通过OD动态调试进行验证
解密动态链接库

解密API字符串

通过LoadLibrary和GetProcAddress获取关键函数

2.2 通过删除系统卷影副本以及关闭大量影响文件加密的服务和进程为接下来顺利加密文件做准备

删除全部卷影副本

禁用影响勒索病毒加密文件的服务


关闭影响勒索病毒加密文件的进程

2.3 通过异步I/O操作(IOCP)的方式实现高并发多线程对文件进行快速加密。这也是Conti组织又被称为IOCP的原因??
关于IOCP请点击IOCP

重点看文件加密函数
循环创建线程执行文件加密函数 sub_417DF0

sub_417DF0函数内部


先使用CryptAcquireContext函数用于获取特定加密服务提供程序(CSP) 中特定密钥容器的句柄。

CryptImportKey导入密钥

CryptGenKey生成随机加密会话密钥或公钥、私钥密钥对

CryptExportKey 从加密服务 (CSP) 导出加密密钥或 密钥对

使用CryptEncrypt函数对文件内容进行加密,在左下角的内存窗口可以看到原始数据

调用CryptEncrypt函数加密后

把加密后的内容写入原始文件中

解密后缀名 CONTI

把原始文件名和解密的CONTI进行拼接,组成新的文件名

把原文件直接覆盖掉


最后将密钥释放

2.4 释放勒索文档

解密勒索文档文件名

在各个文件夹下创建勒索文档,并写入勒索信息


三、总结
Conti勒索病毒运行后先调用cmd命令关闭了大量的影响文件加密服务以及应用程序,如 SQL Backups、SQLsafe Backup Service、SQLsafe FilterService等等;然后删除了系统卷影副本,防止受害者恢复文件;删除计算机的本地备份文件;然后采用采用并发线程对文件进行快速加密,Conti采用的加密方式为AES-256,被加密文件在未得到密钥前无法解密;将加密后的文件名追加CONTI后缀名;并在系统的各个文件夹下创建勒索文档,文档中包含勒索说明和联系邮箱等;
[2023春季班]2023,新的征程,脱壳机更新、iOS/eBPF、赠送云手机套装!一块裸板虚拟化五个容器云手机!3月25日起同时上调价格并赠送新设备!