首页 > 防勒索者病毒

时间:2021-06-16

       在上文中,我们谈到,Sodinokibi 恶意软件成功回避杀毒软件的检测,并成功向被攻击系统的内存中加载 test.dll 等模块。接下来,我们看一看 Sodinokibi 又是如何躲过 Windows UAC 用户账户控制,进而向 Ahnlab 杀毒软件进程注入恶意代码的。

加载器任务一:绕过 Windows UAC 用户账户控制

       注入到内存中的模块将作为加载器,执行 Sodinokibi 恶意软件的下一步任务。模块使用 CheckTokenMembership 来确认进程的权限。如果进程权限不足,则尝试绕过 UAC。Sodinokibi 将自己写入注册表项 SoftwareClassesmscfileshellopencommand,并启动一个新的 explorer.exe 实例,执行 CompMgmtLauncher.exe:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

 

       执行 CompMgmtLauncher .exe 时,会执行注册表项 SoftwareClassesmscfileshellopencommand 中配置的任何内容在该示例中,当前正在使用更高的权限,执行之前所执行过的一个命令,即替换感叹号并执行 PowerShell 脚本。

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

 

       加载器模块被加载到内存中,并再次检查权限。这一次,它有足够的权限,并继续进行攻击。在加载器模块的资源中,有一个 XOR 加密的便携式可执行文件:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

 

       加载器将此可执行文件从资源中加载到内存中,在内存中使用 Key 7B 解密,然后开始执行:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

内存中使用 XOR 解密之前的便携式可执行文件

Sodinokibi: 勒索软件的“冠冕之王”(下)

内存中使用 XOR 解密之后的便携式可执行文件

 

加载器任务二:注入 AHNLAB

 

       内存中的便携式可执行文件是第二个加载器,用于加载最后的恶意代码。在该阶段中,恶意软件尝试将其 payload 注入到 AHNLAB 杀毒进程中。

 

       第二个加载器在目标机器中检测是否安装了 AHNLAB 杀毒软件。如果找到了 Ahnlab V3 Lite 软件服务包 V3 Service,将继续查找 autoup.exe。autoup.exe 是 Ahnlab Updater 的一部分,并且易受攻击。

       当初,GandCrab 勒索软件与 AHNLAB 进行过一番“艰苦的”较量。而 Sodinokibi 则同样刻意搜查 AHNLAB,并将其作为攻击的入口:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

恶意软件查找 AHNLAB 杀毒软件

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

autoup.exe 的路径字符串

 

       如果 Sodinokibi 搜索到了 AHNLAB 服务及可执行程序,则加载器将自动以挂起状态启动 autoup.exe,并尝试通过 Process Hollowing 注入其 payload。而如果目标机器中没有安装 AHNLAB,则加载器会以挂起状态启动当前 PowerShell 进程的另外一个实例,并尝试通过 Process Hollowing 注入其 payload。Sodinokibi 的 payload 是以便携式可执行文件的形式,被保存在模块资源中。这个可执行文件被使用 key 7B 进行了 XOR 加密:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

XOR 加密的可执行文件

 

SODINOKIBI 的 Payload

 

       Sodinokibi 使用 RC4 加密算法,将其设置数据进行加密并保存在 .grrr 文件中。文件名称根据变种的不同而有差异:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

Sodinokibi 的 payload 片段

 

       设置文件中包含如下信息:将哪些文件夹、文件和文件扩展名排除,不进行加密。该文件还包含如下信息:结束哪些进程,删除哪些服务,如何通过 CVE-2018-8453 漏洞扩大权限,如何与 C2 服务器进行通信,以及将要显示的勒索信息:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

Sodinokibi 的设置文件

 

       Sodinokibi 通过 GetKeyboardLayoutList 识别所设置的键盘语言。如果识别为白名单国家语言,恶意软件将会关闭。以下是白名单语言列表,使用 GetSystemDefaultUILanguage 及 GetUserDefaultUILanguage 搜索系统语言:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

 

       如果未发现白名单语言,则恶意软件将会继续执行。它将使用 vssadmin.exe 从目标机器中删除卷影副本,目的就是让数据恢复变得更加困难:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

 

       恶意软件遍历机器中所有的文件夹,加密所有文件,并在每个文件夹中扔下一份勒索信息文件。加密过程完成后,恶意软件将改变桌面壁纸,以便让用户更清楚地意识到他受到了攻击:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

恶意软件完成加密后,将用户桌面壁纸进行了改变

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

恶意软件的勒索信息

 

       恶意软件将目标机器中的文件进行加密之后,会尝试与 C2 服务器进行通信。为了创建 C2 服务器中的 URL,恶意软件将对之前解密的配置文件中定义的域列表进行搜索:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

配置文件中的域列表

 

       恶意软件会使用硬编码和随机生成的字符串,创建若干随机 URL。

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

随机生成 URL 的硬编码

 

       生成 URL 之后,Sodinokibi 将向每个域发送被加密的机器信息,包括用户名、机器名、域名、机器语言、操作系统类型以及 CPU 架构等:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)

 

       用户点击勒索信息,并输入密码后,将会显示如下页面,其中显示索取的价格:

 

Sodinokibi: 勒索软件的“冠冕之王”(下)