Azov勒索软件的演进之路( 三 )


文章插图
系统路径和文件扩展名

Azov勒索软件的演进之路

文章插图
清除时省略的文件扩展名
每个文件都被“间歇性”清除 , 这意味着666字节的块被随机噪声覆盖 , 然后一个大小相同的块保持完整 , 然后一块再次被覆盖 , 依此类推 , 直到达到4GB的硬限制 , 此时所有其他数据都保持完整 。作为随机源 , 样本使用未初始化的局部变量(例如 , char buffer[666]) , 这实际上意味着随机堆栈内存内容 。
Azov勒索软件的演进之路

文章插图
间歇性数据清除
Azov勒索软件的演进之路

文章插图
数据清除程序的示例跟踪
清除完成后 , 新的文件扩展名.azov将添加到原始文件名中 。清除文件的典型文件结构如下所示 。
Azov勒索软件的演进之路

文章插图
清除文件的示例结构
Azov勒索软件的演进之路

文章插图
后门程序
在遍历文件系统以搜索要进入后门的文件之前 , 创建一个名为Local\\Kasimir_%c的互斥锁 , 其中%c替换为正在处理的驱动器的字母 。
Azov勒索软件的演进之路

文章插图
后门程序——互斥锁创建
TryToBackdoorExeFile()函数负责解密满足特定条件的64位“.exe”文件进行后门 。
Azov勒索软件的演进之路

文章插图
通过预处理条件的文件进入TryToBackdoorExeFile函数
这些具体条件可简化如下:
预处理条件:
它不是文件系统位置清除列表的一部分;
文件扩展名为“.exe”;
文件大小小于20MB;
处理条件:
该文件是64位可执行文件;
包含入口点的PE部分有足够的空间用于注入shellcode植入程序 , 以保留PE的原始入口点(shellcode起始地址将放在原始入口点的地址);
File size == PE size(PE大小是手动计算的);
处理条件都在TryToBackdoorExeFile()函数中检查 。
Azov勒索软件的演进之路

文章插图
TryToBackdoorExeFile函数
一旦文件满足所有预处理和处理条件 , 它就被认为适合适合进行后门操作 , 并将其推入BackdoorExeFile()函数 。
Azov勒索软件的演进之路

文章插图
函数TryToBackdoorExeFile的邻近图
函数BackdoorExeFile()负责可执行文件的多态后门 。它首先获取原始代码段(通常是.text段)的地址 , 然后在几个位置随机修改其内容 。在将shellcode的主要blob注入到修改的代码部分之前 , 某些常量值将被更改 , 整个shellcode将使用与前面描述的恶意软件解包期间使用的相同的加密算法和密钥重新加密 。后门文件写回磁盘后 , 三个编码的数据结构被追加到它的末尾 , 这是勒索软件运行所需的有效资源(例如 , 一种模糊形式的勒索通知) 。
Azov勒索软件的演进之路


推荐阅读