这篇博客帖子由Hossein Jazi和JérômeSegura创作。

9月17日,我们发现了一种名为Kraken的新攻击,它将其有效载荷注入到Windows错误报告(WER)服务中,作为一种防御规避机制。

当与操作系统,Windows功能或应用程序相关的错误时,通常会调用该报告服务Werfault.exe。当受害者看到他们的机器上运行的Werfault.exe时,他们可能会假设发生了一些错误,而在这种情况下,他们实际上已经在攻击中实现了目标。

虽然这种技术不是新的,但这个广告系列始于诱使受害者的网络钓鱼攻击,涉及工人的赔偿索赔。其次是Cactertorch框架,以执行无纺丝攻击,然后进行几种反分析技术。

恶意诱惑:“你的赔偿权利”

9月17日,我们发现一种新的攻击开始于一个包含恶意文档的zip文件,很可能是通过鱼叉式网络钓鱼攻击。

“赔偿手册”文件假装包括有关工人赔偿权的信息:

图1:恶意文档

该文件包含一个图像标记("加入“)连接到”whalighttocompendation [。] com“并下载将成为文档模板的图像。

图2:嵌入文档中的Imagetag
图3:WebRightTocithation网站

该域在2020-06-05注册,而文档创建时间为2020-06-12,这可能表明它们是相同攻击的一部分。

里面,我们看到一种使用修改版本的恶意宏Cactustorch.VBA模块要执行其shellcode。仙人掌正在利用dotnettojscript.将。net编译的二进制文件加载到内存中,然后从vbscript执行它。

下图显示了此威胁参与者使用的宏内容。它有两个AutoOpen仿烫功能。AutoOpen只是显示一个错误消息而仿烫是执行主要活动的函数。

图4:宏

如图4所示,已经定义了HEX格式中的序列化对象,其中包含被加载到内存中的.NET有效负载。然后,宏定义了一个条目类“海妖。海妖”作为价值。此值有两个部分已与点分隔:.NET加载程序的名称及其目标类名。

在下一步中,它创建一个序列化BinaryFormatter对象并使用deseralize的函数二进制形态将对象反序列化。最后,通过致电DynamicInvoke.NET有效载荷将从内存加载和执行。

与cactustorch vba不同,指定目标进程以将有效载荷注入宏中,此Actor更改了宏并指定了.NET有效载荷中的目标进程。

克朗伦装载机

加载的有效载荷是一个.NET DLL,其中包含“kraken.dll”作为其内部名称,在2020-06-12编译。

此DLL是注入嵌入式shellcode的加载器werfault.exe.。要清楚,这不是这种技术的第一种情况。它以前观察过NetWire老鼠甚至Cerber赎金制品

加载器有两个主要类:克朗“ 和 ”装载机”。

图5:Kraken.dll

克朗类包含将被注入到在该类中定义的目标流程中的shellcode,该目标流程为werfault.exe.”。它只有一个函数调用负载的函数负载ER类与shellcode和目标过程作为参数。这个shellcode是钴剧的变种。

图6:Kraken类

装载机类负责通过调用Windows API将shellcode注入目标进程。

图7:负载功能

这些是执行其过程注入的步骤:

  • startprocess.职能调用createProcess.Windows API,800000ca as dwcreateflags。
  • Findentry.呼叫ZwQueryInformationProcess找到目标过程的基本地址。
  • CreateSection调用Zwcreatesection.API在目标过程中创建一个部分。
  • ZwMapViewOfSection被调用以将该部分绑定到目标进程,以便通过调用复制shellcodeCopyshellcode.
  • MapAndStart通过调用writeProcessMemory.ResumeThread

ShellCode分析

使用HollowHunter我们把注入的外壳代码werfault.exe.进一步分析。此DLL在多个线程中执行其恶意活动,以使其分析更加困难。

此DLL通过调用DllEntryPoint“调用”主要的“ 功能。

图8:主要过程

主要的职能调用开始时它创建一个线程,在同一个进程的上下文中在一个新线程中执行它的函数。

FIGRUE 9:DLL MAIN

创建的线程首先执行一些反分析检查,以确保它不是在分析/沙箱环境或调试器中运行。

它通过以下操作来实现:

1)通过调用来检查调试器是否存在gettickcount.

gettickcount.是用于测量执行某些指令集所需的时间的时序函数。在这个帖子中,它在a之前和之后被调用了两次睡觉然后计算差值。如果它不等于2,则程序退出,因为它表明正在调试。

图10:创建的线程

2)VM检测:

在此功能中,它通过提取显示驱动程序注册表项的提供程序名称(`system \\ controlset001 \\ control \\ cloud \\ class \\ {4d36e968-e325-11ce-bfc1-08002be10318},检查它是否在VMware或VirtualBox中运行\\ 0000')然后检查它是否包含字符串VMware或Oracle。

图11:VM检测

3)IsProcessorFeaturePresent

此API调用已被用于确定是否支持指定的处理器功能。从以下图片中看到,“0x17”已将此API传递为参数,这意味着它检查__fastfail在立即终止之前提供支持。

图12:InProcessorFeaturePresent

4)NtGlobalFlag

shell代码检查NtGlobalFlag结构来标识它是否正在调试。为了识别调试器,它比较NtGlobalFlag价值0 x70

5)isdebuggerpresent

通过致电,检查调试器的存在“isdebuggerpresent”。

图13:NtGlobalFlag和IsDebuggerPresent检查

执行所有这些反分析检查后,它进入了在新线程中创建其最终shellcode的函数。本部分中使用的导入调用被调用“解决_imports“函数。

此功能获取地址“kernel32.dll”使用loadlibraryex.然后在循环中检索12导入。

图14:Resolve_Imports

使用libpeconv.库我们能够获取已解决的API调用列表。以下是导入列表,我们可以期待它将执行一些过程注入。

VirtualAlloc
VirtualProtect
CreateThread.
VirtualAllocEx
virtualprotectex.
writeProcessMemory.
GetEnvironmentVariableW
CreateProcessw.
Cheateremotethread.
GetThreadContext.
SetThreadContext
ResumeThread

在解析所需的API调用之后,它使用VirtualAlloc然后调用“DecryptContent_And_WriteToAllocatedMemory”来解密最终shell代码的内容,并将它们写入创建的内存中。

在下一步中,VirtualProtect调用将保护更改为分配的内存以使其可执行。最后,CreateThread.已被调用以在新线程中执行最终的shellcode。

图15:解析导入并创建新线程

最后一个Shell代码

最终的shellcode是一组指令,使HTTP请求对硬编码域下载恶意有效载荷并将其注入进程。

作为第一步,它加载WinInet.通过致电APILoadLibraryA

图16:加载WinInet

然后它构建了制作HTTP请求所需的函数调用列表,其中包括:InternetOpenA, InternetConnectA, InternetOpenRequestA和InternetSetOptionsExA。

图17:HttpOpenRequestA

准备建立HTTP请求的要求后,它会创建HTTP请求并通过调用发送它httpsendrequestexa.。请求的URL是:http://www.asia-kotoba net/favicon32.ico(。)

图18:httpsendrequestexa

在下一步中,它检查HTTP请求是否成功。如果HTTP请求不成功,请调用ExitProcess.停止它的过程。

图19:检查HTTP请求成功

如果是返回值HTTPSendRequestExA为true时,表示请求成功,代码继续执行下一步。在这个步骤中,它调用VirtualAllocExA分配内存区域然后调用InternetReadfile.读取数据并将其写入分配的内存。

图20:internettreadfile调用

最后,它跳转到分配内存的开始以执行它。这很可能是托管在受妥协的“亚洲 - 科目”网站上的另一个shellcode,并在那里种植了一个假的Favicon。

由于在报告时目标URL是关闭的,我们无法检索此shellcode进行进一步分析。

[更新:2020-10-09]

进一步调查后,我们意识到这项活动与任何APT组无关,并且是红色合作活动的一部分。

必威平台APPMalwarebytes阻止访问受托管有效载荷的受损站点:

图21:引诱文档试图联系远程站点

IOC.

Lure文件:31368 f805417eb7c7c905d0ed729eb1bb0fea33f6e358f7a11988a0d2366e942

包含Lure文档的归档文件:
D68F21564567926288B49812F1A89B8CD9ED0A3DBF9F670DBE65713D890AD1F4

文档模板图像:
weallighttocondation [。] com / ping

归档文件下载URL:
yourrighttocompensation [] com/吗?掉= UNfxeHM
whalighttocondation [。] com /下载/?键= 15a50bfe99cffe29da475bac45fd16c50c60c85bff6b06e530cc91db5c710ac30&id = 0
wealtighttocondation [。] com / fly = n6xthxd
weallighttocondation [。] com /?vid = auclllu

下载最终有效负载的URL:
asia-kotoba net/favicon32.ico。