Kraken: 无文件APT攻击滥用Windows错误报告服务

9月17日,研究人员发现一个名为Kraken 新攻击活动,会将payload 注入Windows Error Reporting (WER,Windows 错误报告)服务中作为绕过机制。

[[345890]]

WER 服务(WerFault.exe)一般是在有与操作系统、Windows特征、和应用程序相关的错误产生时才会被调用。当受害者看到WerFault.exe 运行时,会认为有错误产生,实际上在本次攻击事件中是被攻击了。

诱饵文件

9月17日,研究人员发现一起利用鱼叉式钓鱼攻击来传播含有恶意文档的zip文件的攻击活动。恶意文件“Compensation manual.doc” 伪装成含有关于员工赔偿的文档:

 

图 1: 恶意诱饵文档

文件中含有一个image 标签(“INCLDEPICTURE“)会连接到yourrighttocompensation[.]com,并下载一个文档模板的图像。

 

图 2: 嵌入文档中的Image tag

 

图 3: yourrighttocompensation 网站

yourrighttocompensation 网站域名是2020年6月5日注册的,文档的创建时间为2020年6月12日。这表明这是同一攻击的2个部分。事实上,研究人员还发现了一个恶意宏,恶意宏使用修改的CactusTorch VBA模块来执行shellcode。CactusTorch 使用DotNetToJscript 技术来加载.NET 编译的二进制文件到内存中,并从vbscript 执行。

图4就是攻击者使用的宏内容,有AutoOpen(自动打开)和 AutoClose(自动关闭)函数。AutoOpen 负责显示错误消息,而AutoClose 负责执行主要活动。

图 4: 宏内容

如图4所示,十六进制的序列号对象中含有加载到内存中的.NET payload。然后,宏定义了一个记录类(entry class),值为Kraken.Kraken。该值有2个部分,用.隔开:分别是.Net 加载器的名字和目标类的名字。

然后回创建一个序列化BinaryFormatter 对象并使用BinaryFormatter 的反序列号函数将对象反序列化。最后,通过调用DynamicInvoke来加载.Net payload 到内存中并执行。

Kraken加载器

加载的payload是一个名为Kraken.dll 的.Net DLL,编译时间为2020年6月12日。该DLL是一个加载器,会注入嵌入的shellcode到WerFault.exe中。

加载器有2个主类:Kraken 和Loader。

图 5: Kraken.dll

Kraken 类中含有要注入到目标进程的shellcode,目标进程在WerFault.exe中进行了定义。它只有一个功能就是调用Loader 类的Load 函数和目标进程作为参数。

图 6: Kraken class

Loader 类负责调用Windows API来注入shellcode到目标进程中。

图 7: Load函数

执行进程注入的步骤如下:

· StartProcess 函数调用CreateProcess Windows API,其中dwCreateFlags 的值为800000C;

· FindEntry调用ZwQueryInformationProcess 来定位目标进程的基址;

· CreateSection 调用 ZwCreateSection API 来在目标进程中创建一个section;

· 调用ZwMapViewOfSection 来绑定该section 到目标进程中,通过调用CopyShellcode 来复制shellcode;

· MapAndStart 通过调用WriteProcessMemory和ResumeThread 来完成进程注入。

ShellCode 分析

研究人员使用HollowHunter复制出了注入到WerFault.exe 的shellcode。该DLL 会在多个线程中执行恶意活动,因此很难分析。

DLL的执行是通过调用“DllEntryPoint”,而“DllEntryPoint”会调用Main 函数。

图 8: Main进程

Main进程会调用DllMain,DllMain会创建一个线程来在同一进程环境下的新线程中执行其他功能。

图9: Dll main

创建的线程首先会执行反分析检查来确保没有运行在沙箱或调试器等分析环境中。

在执行完反分析检查后,会在新线程内创建最后的shellcode。这部分使用的import 调用是经过混淆的,会通过调用“Resolve_Imports” 函数来动态解析。

该函数会使用LoadLibraryEx 获取kernel32.dll 的地址,然后进入循环来提取12个import。

图 14: Resolve_Imports

研究人员使用 libpeconv 库来获取解析的API 调用列表。下面是import的列表:

· VirtualAlloc

· VirtualProtect

· CreateThread

· VirtualAllocEx

· VirtualProtectEx

· WriteProcessMemory

· GetEnvironmentVariableW

· CreateProcessW

· CreateRemoteThread

· GetThreadContext

· SetThreadContext

· ResumeThread

在解析完必须的API 调用后,会使用VirtualAlloc 创建一个内存区域,然后调用“DecryptContent_And_WriteToAllocatedMemory” 来解密final shellcode的内容并写入创建的内存中。

然后,调用VirtualProtect 来修改对分配的内存的保护以确保其可以执行。最后,调用CreateThread 来在新线程内调用final shellcode。

图 15: 解析Imports和创建新线程

Final Shell code

Final shellcode是一个指令集合,用来对硬编码的域名进行HTTP 请求来下载恶意payload 并注入到进程中。

首先,调用LoadLibraryA 来加载Wininet API:

图 16: 加载Wininet

然后,构建发起HTTP 请求所必须的函数调用集,包括InternetOpenA、InternetConnectA、InternetOpenRequestA 和 InternetSetOptionsExA:

图 17: HttpOpenRequestA

然后,创建一个HTTP 请求并通过调用HttpSendrequestExA 来发送。请求的URL 是http://www.asia-kotoba[.]net/favicon32.ico :

图 18: HttpSendRequestExA

然后检查HTTP 请求是否成功。如果HTTP 请求不成功,就调用ExitProcess 来停止该进程。

图 19: 检查HTTP请求成功

如果HTTPSendRequestExA 的返回值是true,也就是说请求是成功的,代码会继续下一步。

 

然后调用VirtualAllocExA 来分配内存区域,并调用InternetReadFile 来读取数据并写入到分配的内存中。

图 20: InternetReadFile 调用

最后,进入分配的内存区域来执行。

由于URL 已经无法访问,因此无法提取shellcode进行进一步分析。

APT32?

目前还没有关于该攻击所属攻击组织的足够证据。但研究人员发现了一些与APT 32相关联的证据。APT32 以使用CactusTorch HTA来释放Denis Rat 变种而知名。但是因为无法获得final payload因此无法进一步分析。用来保存恶意文件和文档的域名的注册地址为胡志明市,而APT 32也是位于胡志明的。因此,研究人员分析初步判断该攻击活动与APT 32有关联。

图 21: 尝试连接远程站点的诱饵文件

本文翻译自:https://blog.malwarebytes.com/malwarebytes-news/2020/10/kraken-attack-abuses-wer-service/如若转载,请注明原文地址

【编辑推荐】

  1. 适合Vue用户的React教程,你值得拥有
  2. 微信视频号的“长短”之争
  3. 苹果封杀云游戏服务引众怒,被指扼杀竞争
  4. 臭打游戏的信息,泄漏了也没人要?
  5. 5G网络的优势和缺点
  6. 二维码:一种隐秘的安全威胁

 【责任编辑:姜华 TEL:(010)68476606】

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/150937.html<

(0)
运维的头像运维
上一篇2025-03-13 07:39
下一篇 2025-03-13 07:41

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注