Maze勒索软件以前也被称为“ChaCha勒索软件”,于2019年5月29日被Jerome Segura发现。
Maze的最重要特征是,如果受害者不付款,他们将在互联网上发布受害者信息。
从上图可以看出,Maze的攻击已经遍布全球。
Maze的历史
从历史上看,该恶意软件使用不同的技术来获取进入权限,主要是利用漏洞利用工具包,具有弱密码的远程桌面连接或通过电子邮件模拟,或通过不同的代理机构或公司。这些电子邮件带有Word附件,该附件使用宏在系统中运行恶意软件。其中,最常用的漏洞利用工具包是Fallout和Spelevo。Maze的开发者很聪明,奇热增加了防止其反转和静态分析的难度。
技术细节
该恶意软件是32位二进制文件,通常被封装成EXE或DLL文件。本文重点介绍EXE文件。
下表中显示了有关此报告中使用的样本的更多信息:
该恶意软件开始准备一些似乎将内存地址保存在全局变量中的函数,以供以后在动态调用中使用,尽管该软件后来并未真正使用这些函数。无论是恶意软件入口点中存在的残留代码还是误导研究人员的伎俩,都存在争议。
后来,恶意软件输入了一大堆垃圾代码,其中还包括一些用于解密字符串和重要信息的元素,以供日后使用,该恶意软件会使用一些技巧来检测调试器。
其中最重要的是:PEB字段“IsDebuggerPresent”的大量使用。此字段是布尔值字段,如果应用程序在调试器中运行,则从Windows填充为1(True),否则为0(False)。
如果应用程序在调试器中运行,则“ ISDEBUGGERENTENT” PEB字段的使用率很高。如果恶意软件检测到调试器,它将保持无限循环,而不会浪费任何系统资源。
该恶意软件获取了系统中的所有进程,但忽略了第一个进程(Windows中的“空闲进程”,它只是一种让用户知道正在使用的系统资源百分比的工具)。使用每个进程的名称,它会使用自定义算法创建一个自定义名称,以及一个针对硬编码列表进行检查的哈希。如果在此列表中找到哈希,则该过程将终止。
以下就是捕获调试器“ x32dbg”的过程:
它可以终止IDA调试器,x32dbg,OllyDbg和更多进程,以避免动态分析,关闭数据库,办公程序和安全工具。
下面显示了部分进程列表,这些进程可以使用由恶意软件终止的词典列表来破解:
dumpcap.exe -> 0x5fb805c5 excel.exe -> 0x48780528 fiddler.exe -> 0x5e0c05b1 msaccess.exe -> 0x6a9c05ff mysqld-nt.exe -> 0x79ec0661 outlook.exe -> 0x615605dc pipanel.exe -> 0x5fb805c4 procexp64.exe -> 0x78020640 procexp.exe -> 0x606805d4 procmon64.exe -> 0x776e0635 procmon.exe -> 0x600005c9 python.exe -> 0x55ee0597 taskkill.exe -> 0x6c2e0614 visio.exe -> 0x49780539 winword.exe -> 0x60d805d5 x32dbg.exe -> 0x5062053b x64dbg.exe -> 0x50dc0542
上表就是要杀死的进程的名称以及从原始进程名称生成的特殊名称的自定义哈希。
上图就是内核32的导出地址表(EAT)产生的终止过程函数,并通过了哈希名称检查。
恶意软件将通过从模块“ kernel32.dll”的EAT(出口地址表)获得的“ TerminateProcess”函数杀死该进程,以增加混淆,将名称与从大写字母中获取的自定义哈希值进行比较。