邮箱地址: bluegray@att.net
电话号码: +13594780391

找到我们

+13594780391

儋州市国脆城53号

FakeMBAM:透过软体更新传送的后门

2024-11-29 15:31:37

许多应用程式可以自动更新,无需用户互动。从安全性角度来看,这通常被认为是一种良好的做法,因为它能快速分发针对关键漏洞的修补程式。然而,自动更新也带来额外的风险,因为它允许软体开发人员在用户的机器上推送任意代码。不幸的是,用户往往别无选择,只能信任开发者会仅将更新通道用于其预期目的,并且会阻止恶意第三方的侵入。

在这篇博客文章中,我们将展示这种信任有时可能是错误的。我们具体将展示一个猫刮下载器torrent client和三个广告拦截器是如何通过自动更新暗中安装了 FakeMBAM 后门的。我们对这个后门进行了反向工程,并在本帖的第二部分中描述了它的内部工作原理。

意外的感染途径

我们最近报导了在超过 100000 台安装了 Avast 的设备上检测到的一个假冒 Malwarebytes 安装程序。这个安装程序试图伪装成正宗的 Malwarebytes 安装程式,并在很大程度上模仿其布局 它使用相同的文件名和图标,并创建了一个包含由 Malwarebytes 签名的有效 PE 文件的 Malwarebytes 安装目录。然而,这一切仅仅是表面,因为该安装程序实际上并未安装 Malwarebytes。实际上,该安装程序的主要目的是打开一个后门,以便攻击者控制的伺服器,从而让其运营者能够向被感染的机器推送额外的恶意载荷。

A地图展示了在 FakeMBAM 后门保护下的 Avast 用户分布情况。该后门在俄罗斯、乌克兰和哈萨克斯坦的活动最为频繁。

在我们的第一篇报告中,我们指出不知道这个假冒安装程序是如何分发的。自那以后,我们花了一些时间反向工程该恶意软体,并调查其感染途径。我们发现,假冒安装程序是通过一个猫刮下载器download[]studio和三个广告拦截器netshieldkit[]com、myadblock[]com 和 netadblock[]com的自动更新推送到受害者的机器上。这些应用程序的网站上列出了三个不同的公司名,分别是“Sigma Software”、“GRAND MEDIA TOV”和“Birmon Software”。但是,根据代码的高度相似性和共享基础设施以及它们都分发了完全相同的恶意软件,我们认为非常可能这四个应用程序背后有同一个操作者。

下载工作室

为了调查用于分发假冒安装程序的感染途径,我们首先查看了被检测到的安装程序提交的元数据。这为我们提供了两个重要线索:安装程序应该通过名为 dstudioguiexe 的进程执行,并带有命令行参数 /SP /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /NOCANCEL /NOICONS。第一个线索表明,安装程序不应被社交工程传播,因为上述参数指示 Inno Setup 在后台静默安装软体。第二个线索暗示了可能的嫌疑犯:下载工作室。

下载工作室产品页面的截图。

下载工作室是一款在俄罗斯和乌克兰受欢迎的免费猫刮下载器。它拥有一个嵌入的 torrent 文件库,提供大量电影、软件、视频游戏、音乐等各类选择。就像通常情况下的猫刮下载器一样,它可以轻松下载很多受版权保护的材料,这似乎是它广泛流行的主要原因。下载工作室被一些反恶意软件程序检测为潜在不必要的程序PUP或风险软件,因为它促进非法行为并通过下载不明来源的 torrent 使用户处于风险之中。

下载工作室的电影库截图。

为了澄清一些潜在的混淆,我们必须说明,还有另一款名为 Download Studio 的软体:由 Conceiva 开发的 下载管理器。除了名称外,这款软体与本博客所描述的猫刮下载器完全无关,因此毫无理由怀疑其合法性。在本博客的其余部分中,“下载工作室”将指代前一段提到的猫刮下载器。

由于下载工作室可用于下载各种软件,因此不妨猜测假冒 Malwarebytes 安装程序是通过它作为常规 torrent 文件分发的毕竟我们在 Download Studio 中搜索“Malwarebytes”时有 609 个结果。然而,这无法解释我们在野外所观察到的命令行参数。这些参数显然表明运行安装程序并不是用户主动开启的操作,用户可能根本不知道安装程式的存在。此外,我们保护的用户数量与我们对使用下载工作室的 Avast 用户数的估算相符,这让我们怀疑是下载工作室本身在某种程度上负责。因此,我们决定对其进行反向工程,以查看它是否包含隐藏的恶意代码。

我们很快发现 Download Studio 与 FakeMBAM 后门之间存在明显的代码相似性。下载工作室和后门都使用 Qt 框架开发,并且使用了相同的字符串混淆方法。其中一种混淆方法特别有趣,因为它在混淆上并不是非常有效它是通过使用相同的掩码对混淆字符串进行两次 XOR 操作,导致明文在反组合中明显可见。

在下载工作室中与 FakeMBAM 后门中字符串 tmp 的混淆左和反组合右。

我们还在一段代码中发现了其他相似性,该代码计算自定义 HTTP 标头的 HMAC,或在通过 ITaskServiceCOM 接口创建计划任务的代码。我们还发现下载工作室中包含一个字符串,该字符串包含上面提到的命令行参数。这些参数用于静默地在后台执行应用程式更新。通过反向工程下载工作室,我们还发现应用程式更新应从一个临时目录中执行,其名称可以用正则表达式 dsd{7}tmp 描述,这与我们对伪安装程序检测的元数据进一步匹配。

FakeMBAM:透过软体更新传送的后门

反组合的下载工作室片段,显示负责自动更新执行的代码。

此时,看起来几乎可以肯定该后门是通过下载工作室的自动更新分发的。不过,我们想要确认这一点,因此我们监控了更新,记录了每个观察到的更新的文件名和哈希值。这给我们提供了以下列表:

SHA256 文件名16d0559067f3cc0ab19e22b935ac90d44897f09f3426f858498dfd7e667c4bda updaterexe1d77fdc7f1b1efc8bdb0938cacc713baa70a2549412ce0be18adf2ebd133cb70 updaterfullexe333dd34d3efc4ded71b36f5fc38bce67de71f80b7fab43358a36e8ba7d4df0f0 updaterexe5822d2b9717cc2a87ba54173587a3808e17f5961f42f5b1702c4a75950ecd4f6 updaterexe6754c5e7d3c03f4e2bf29b013b1a0d532b7f4e8e145da82e6973376785938f65 DSupdater1800fullexe9c112b452ce839536a5cd4a3d8f4999adcb03dc3af5cbd86ca3a477c5b75127b updaterexeb1acc87c7b010f4aafbe03cd70a6452679de07ef31bc2d5701de63d573654615 updaterexeb3359c92cd87bd39ecbf8159666f2c7e123903751654bb8aefd714e23f8e7f7f updaterexeb4039b6a15af681d7c02d1ff798f41023a378668b32132761c8cdffd648a5a5d DSupdater1800exec759c6fffe3d32424f8b29b58ee5cb11d68be5f27e50ba1d1a4755fb56602f7d updaterexedfb1a78be311216cd0aa5cb78759875cd7a2eeb5cc04a8abc38ba340145f72b9 MBSetupexef2caa14fd11685ba28068ea79e58bf0b140379b65921896e227a0c7db30a0f2c MBSetupexe

仅根据文件名,最后两个条目立刻引起了我们的注意。确实,虽然之前所有条目都对应于下载工作室的合法更新,但最后两个哈希则是我们一直在调查的假冒 Malwarebytes 安装程序。它们是以与所有其他自动更新相同的方式执行的,在后台静默进行,而用户并不知情。

这意味著某人试图感染所有下载工作室的用户以安装 FakeMBAM 后门。虽然我们不确定实际上发生了什么,但可以想像出三种可能的情况。第一种情况是,下载工作室的开发者希望以非常不道德的方式“获利”他们庞大的安装基础。Download Studio 和 FakeMBAM 后门之间代码的重用暗示了这种可能性。另一种解释是,后门是由一组不良员工扩散的,他们在不告知公司的情况下行动。最后,也可能某个未知的攻击者黑进了下载工作室并成功实施了供应链攻击。

我们希望寻找一些答案,因此联系了下载工作室的开发者,询问有关后门的情况。他们声称在 2020 年 8 月发现了其持续集成伺服器上的安全事件,并指出他们此后已对此事件进行了全面调查并加强了安全措施。他们对我们进一步的询问没有回应,对于多少用户可能受到此事件影响以及是否通知受影响的用户。

油管加速器

广告拦截器

下载工作室并不是唯一分发 FakeMBAM 后门的软件。我们还发现三个广告拦截器也以相同的方式滥用了自动更新。这些广告拦截器是 NetShield Kitnetshieldkit[]com、My AdBlockmyadblock[]com和 Net AdBlocknetadblock[]com。

NetShield Kit 产品页的截图。

虽然这些广告拦截器被宣传为三种不同产品,但它们的内部结构几乎相同。广告屏蔽的实现是用 Golang 开发的,利用开源的 adblock package。提供这些广告拦截器下载的网站也看起来非常相似,甚至都由同一个 IP 地址 (6211211[]43) 托管。似乎未来可能还会推出另外两个广告拦截器,因为 adblockpro[]net 和 adblockfree[]com 也解析到这个 IP 地址。

所有三个广告拦截器对应的域名解析到同一个 IP 地址。

我们还发现这些广告拦截器和下载工作室之间的代码相似性,这表明它们是同一组开发的。更有甚者,一些下载工作室的安装程序也提供了安装 My AdBlock 的选项。

提供安装 My AdBlock 选项的下载工作室安装程序。

和下载工作室一样,我们不知道这些广告拦截器的主要目的是否是传播恶意软体。但是,如果这是一场供应链攻击或不良员工的行为,很难解释为什么域名 bitminer[]tech这里承载了与 FakeMBAM 后门分发的 XMRig 基于的加密货币挖矿工具类似的工具曾经解析到这三个广告拦截器的网站相同的 IP 地址。此外,NetShield Kit 网站上的 FAQ 部分也显得非常可疑。

NetShield Kit 网站 FAQ 部分的截图。

这里面可能还有其他未被提及的“陷阱”。

FakeMBAM 后门分析

现在我们已经展示了假冒 Malwarebytes 安装程序是如何送达其受害者的,让我们来看看它实际上做了什么。当这个恶意安装程序被执行时,它会创建一个假 Malwarebytes 安装目录,并在其中隐藏 FakeMBAM 后门。该目录看起来与合法的 Malwarebytes 安装目录一模一样,唯一的不同是增加了一个恶意 DLL 文件、一个被恶意修改的 DLL 文件和一个包含随机数据的新 datapak 文件。

合法的 Malwarebytes 安装目录与恶意软件创建的假安装目录的比较。

即使假安装程序应静默在后台执行,但恶意作者仍然试图使其看起来像合法的 Malwarebytes 安装程序,以骗取任何实际分析它的人的注意。然而,仍然存在一些明显的区别。首先,与合法安装程序不同,假安装程序并未数位签名。假安装程序还是使用 Inno Setup 创建的,使其看起来与合法的 Malwarebytes 安装程式不同。默认的安装目录稍有不同。假安装程序会安装在 ProgramFilesMalwarebytes在 64 位 Windows 上为 ProgramFiles(x86)Malwarebytes,而合法的 Malwarebytes 通常安装到 ProgramFilesMalwarebytesAntiMalware。这一区别可能是恶意作者故意引入的,他们希望避免恶意软件与合法的 Malwarebytes 发生冲突。

安装精灵左有典型的 Inno Setup 外观,使其与合法的 Malwarebytes 安装程序右不同。

假安装程序中包装的所有都是人们在 Malwarebytes 安装目录中会期待的常见 PE 文件,除了两个恶意 DLL 外,所有这些文件都由 Malwarebytes 或 Microsoft 进行了有效的签名。第一个恶意 DLL 文件名为 Qt5WinExtrasdll。正如其名所示,它是 Qt 框架 的一部分,合法的 Malwarebytes 安装中同样可以找到相同名称的 DLL。这个恶意 DLL 文件与合法的 Qt5WinExtrasdll 几乎相同,唯一重要的不同是在函数 setCurrentProcessExplicitAppUserModelID 中,恶意作者将对从 Qt5Helpdll 导出的函数进行调用。

合法和后门的 Qt5WinExtrasdll 之间的 Bindiff,1793 个函数是完全匹配的。

Qt5Helpdll 是另一个恶意 DLL 文件。与 Qt5WinExtrasdll 不同,合法的 Malwarebytes 安装中找不到名为 Qt5Helpdll 的文件。这个 DLL 文件是网络罪犯添加的,实现了实际的后门功能。请注意,主要的 Malwarebytes 可执行文件 mbamexe 进口了 Qt5WinExtrasdll 并调用导出的函数 setCurrentProcessExplicitAppUserModelID。如上所述,Qt5WinExtrasdll 又导入了 Qt5Helpdll,并调用了暴露恶意功能的函数。这意味著,当合法的 mbamexe 执行时,如果在相同的目录中植入这两个 DLL,则必然会将控制流传递到隐藏在 Qt5Helpdll 中的 FakeMBAM 后门。

Inno Setup 可执行文件的安装过程由其安装脚本指导。这些脚本嵌入在安装程序中,但可以提取和反编译。假冒 Malwarebytes 安装程序中嵌入的脚本相对简单。首先,它将压缩包中的所有文件复制到安装目录。然后,它创建一些注册值,包括 HKLMSOFTWAREMalwarebytesLicenseKey,其中存储了一个随机十六进制字符串。如我们稍后将看到的,这个字符串由 Qt5Helpdll 读取,并以加密形式包含恶意软件的初始配置。接著,mbamexe 被添加到 Windows 防火墙的排除项中。最后,执行 mbamexe 并加上命令行参数 /install。如前面所述,这是合法的由 Malwarebytes 数位签名的 mbamexe。由于这两个恶意 DLL 文件已被放置在相同的目录中,因此它必然会加载并执行藏在 Qt5Helpdll 中的主要恶意负载。

从假安装程序的 Inno 安装脚本中提取的片段。

Qt5Helpdll

Qt5Helpdll 负责后门的持久性、配置更新和额外载荷的传递。它使用 Qt 框架开发,并利用该框架提供的功能进行加密操作,以及与底层操作系统的互动。只使用基础的混淆最明显的是被加密字符串,在堆栈上构建并在运行时使用基本的混淆方法例如,带一字节密钥的简单 XOR 密码进行解密。

在堆栈上构建的加密字符串,使用简单的 XOR 密码进行加密。

Qt5Helpdll 执行的具体操作由命令行参数决定。如果当前进程带有 /install 参数,Qt5Helpdll 将创建一个新服务,旨在系统启动时自动启动 mbamexe。如果命令行中带有 /remove、/start 或 /stop,则该服务将被删除、启动或停止。

如果没有命令行参数,Qt5Helpdll 假设它已经在服务进程中运行,并调用 StartServiceCtrlDispatcher。如前所述,Inno Setup 脚本最初以 /install 命令行参数执行 mbamexe。这将安装服务并立即启动它。新创建的恶意服务的名称为 MBAMSvc,显示名称为 Malwarebytes Service。而合法 Malwarebytes 服务的名称为 MBAMService,这也可以被视为试图模仿 Malwarebytes,而不实际选择相同的服务名称。

Qt5Helpdll 的反编译片段显示恶意服务的创建。

当恶意软件以服务的身份执行时,它进入一个无限循环,轮询 CampC 伺服器以获取配置更新。恶意软件的配置以加密的十六进制字符串形式保存在注册表中,位于 HKLMSOFTWAREMalwarebytesLicenseKey或在 64 位 Windows 中的 HKLMSOFTWAREWow6432NodeMalwarebytesLicenseKey。该配置可以使用 AES 在 CTR 模式下以密钥 cefd8928fd7411b4c9cef7ec35cc827c 和 IV 260743d9b464883ecc7f144bfa06e36d 进行解密如[此 CyberChef 食谱](https//gchqgithubio/CyberChef/#recipe=AESDecrypt(7BoptionHexstringcefd8928fd7411b4c9cef7ec35cc827c7D7BoptionHexstring260743d9b464883ecc7f144bfa06e36d7DCTRHexRaw7BoptionHexstring7D)JSONBeautify(20202020false)可以看到。该密钥和 IV 是由硬编码字符串 MGZth#l}{JmC!4525719127089151290 和 0@1!elVN]9L)2 的 MD5 摘要生成的,因此对所有受害者来说都是一致的。

该后门在 HKLMSOFTWAREMalwarebytes 中创建的注册值。

配置更新通过使用自定义 HTTP 标头的 HTTP GET 请求来执行。恶意软件发出请求时包含 XBuildID 和 XBuildSign 标头,其中 XBuildID 设置为恶意软件的版本号,后接加密负载配置的 MD5 十六进制摘要稍后将进行解释,XBuildSign 则设置为用硬编码密钥 JXaZy7brRJ 计算的 XBuildID 标头的 HMACSHA256 身份验证码。CampC 伺服器检查 HMAC 的有效性,若无效则返回 404 (未发现) 响应码。否则,如果签名有效,CampC 伺服器将响应 204 (无内容) 状态码。然而,这并不意味著 CampC 伺服器不会返回任何数据。这只是意味著响应主体是空的。来自 CampC 伺服器的实际响应编码在自定义的 XPayload HTTP 响应标头中。当恶意软件看到这样的标头时,它会使用标头的解密内容更新其配置。

CampC 通信的 Fiddler 捕获。请注意 XPayload 响应标头,它包含更新的配置。

解密后的配置是一个 JSON 字符串,包含一级对象中的最多五个键。该恶意软体支持以下键:

键 描述api 包含用于定期查询的 CampC URL 数组,以获取配置更新。params 用于替代分发的恶意载荷中的占位符稍后会解释。此配置参数目前仅用于让恶意软件可以快速更改挖矿池 IP 地址,而无需更新整个恶意payload。refresh 后门在查询 CampC 伺服器之前等待的秒数。默认值为 7200两小时。hash 这似乎是配置部分的哈希值。不幸的是,我们无法确定这个哈希是如何计算的,因为它是由 CampC 伺服器生成的,而恶意软体自身并不对其进行验证。恶意软体只会将这个值与以前配置的 hash 进行比较,以查看是否有任何更改。根据观察到的哈希长度,这似乎是 MD5 摘要。extra 需要下载的额外恶意充载。这是一个包含三个值的数组:url、hash 和 arguments。在收到包含此键的配置时,恶意软体将从 url 下载文件,检查其 MD5 摘要是否与 hash 匹配,如果匹配,则执行并在命令行中传递 arguments。

从 CampC 伺服器分发的配置示例。

持久性载荷

FakeMBAM 后门可能还会投放某些持久性载荷,如果被删除或终止,则会定期重新安装。目前为止,我们看到的唯一持久性载荷是加密货币挖矿器,但该恶意软体能够同时处理多个持久性载荷,因此未来可能会添加其他恶意载荷。

持久性载荷以名为 datapak 的加密文件存储,该文件位于假 Malwarebytes 安装目录中。解密可以使用与解密配置相同的密钥和 IV 进行 AES CTR 模式的操作。解密后,datapak 文件应以魔术字节 71 72 65 73qres开头,用以识别文件格式:Qt 二进制资源。这基本上是一种自定义压缩格式,可以使用 Qt 框架提供的 API 函数进行解包。

datapak 压缩包总是包含一个名为 configjson 的文件,其中保存了载荷配置。在下面的示例 configjson 中,仅有一个载荷,名为 app5。要安装此载荷,恶意软体首先从 datapak 压缩包中提取所有来自 app5 目录的文件到 payload[path]在这里是 CProgramDataVMwareVMware Tools。接著,它根据 payload[type] 和 payload[pre] 的值执行几个设置操作,这些内容将在后面进行说明。当所有设置操作完成后,后门会执行指定为 payload[file][0] 的文件,并在命令行中传递 payload[file][1]。如下面的示例配置所示,CProgramDataVMwareVMware Toolsvm3dserviceexe /detach 的命令将被执行。

描述加密货币挖矿载荷的示例配置。

第三个尚未描述的配置参数是 payload[pre]。这是一个数组,描述恶意软件在实际运行持久性载荷之前将执行的各种设置动作。每个动作由其整数类型和可按具体类型解释的字符串完整指定。目前,该恶意软件支持三种设置动作类型:

类型 描述1 终止具有给定名称的进程。根据在野外观察到的配置,这用于终止先前的持久性载荷实例,而不是终止知名的恶意软件分析工具。2 使用 ITaskService COM 接口删除具有给定名称的计划任务。3 为给定的档案系统路径创建一个 Windows Defender 排除项。排除项是通过使用 IGroupPolicyObject COM 接口添加的,这样会创建一个新的组策略对象,并修改 HKLMSOFTWAREPoliciesMicrosoftWindows DefenderExclusionsPaths。

结论

本博客文章报导了网络罪犯如何滥用下载工作室和三个广告拦截器的更新过程,试图将 FakeMBAM 后门传送给数十万受害者。它还对此后门进行了技术分析,特别关注文档说明恶意软体如何存储和保护其配置以及个别配置参数的作用。这些信息应能帮助事件响应人员处理这一恶意软件。 CampC 通信协议也已被记录下来,这有助于创建基于网络的检测规则,以及实施监控 CampC 活动的追踪器。

妨害指标

完整的 IoC 列表可在 https//githubcom/avast/ioc/tree/master/FakeMBAM 上获得。

SHA256 文件名391817d625e14d6b5b0115b7215c07d9ef6612cccdb1d6891626fdd5609506bf Qt5Helpdll02be0f263b95017caa20f0fed861d2126e81ec176d542cc7415074f48965f2e0 Qt5WinExtrasdlldfb1a78be311216cd0aa5cb78759875cd7a2eeb5cc04a8abc38ba340145f72b9 MBSetup2exef2caa14fd11685ba28068ea79e58bf0b140379b65921896e227a0c7db30a0f2c MBSetupexe

CampC URLs

URL

https//apisbytestech[]dev/get/datahttps//apismbytestech[]com/get/datahttps//apismasterbyte[]nl/get/datahttps//d3ko3huol26z6zcloudfront[]net/get/datahttps//d1t8lqzz4q8388cloudfront[]net/get/datahttps//agonistatdata[]site/get/datahttps//apolistatdata[]site/get/datahttps//augustatdata[]site/get/datahttps//dq96vx43jmub5cloudfront[]net/get/data

下载 URLs

URL

http//dlbytestech[]dev/1/mbsetupexehttp//dlbytestech[]dev/2/mbsetupexehttp//dlbytestech[]dev/3/mbsetupexehttp//dlbytestech[]dev/mbsetup2exehttp//dlcloudnetbytes[]com/3/mbsetupexe

挖矿载荷

SHA256

c6a8623e74f5aad94d899770b4a2ac5ef111e557661e09e62efc1d9a3eb1201cfea67139bc724688d55e6a2fde8ff037b4bd24a5f2d2eb2ac822096a9c214edeb3755d85548cefc4f641dfb6af4ccc4b3586a9af0ade33cc4e646af15b4390e77f7b6939ae77c40aa2d95f5bf1e6a0c5e68287cafcb3efb16932f88292301a4dc90899fcaab784f98981ce988ac73a72b0b1dbceb7824f72b8218cb5783c6791a4447559249f3ce04be4c6d28fc15946cbb8513da76ba522f635bda6a60bedcc8536d573c4180f5df09f183b9434636127127b2134fbf5dced0360ec6d4ee77261b194c80b6c2d2c97920cd46dd62ced48a419a09179bae7de3a9cfa4305a830589377832b1f1e6be2bdbef1753f30e3907c89a680f7f327999d9a1b510aa4aed7a06cba490da60cfbf6f120c33652393f7a1b9176170e57c6cc3649530fca6aaf49b57c1fc4781a7a38457c0b4a595dbb6b5bd7bc4ccafe15fb6b8ae29e17f855869621fb2321ab8c8684d10c49e50e6a0b131f215ac0bbfe7c398d08fbea34f761242dfa8cf57faaae2c659f450bcbdc3253134556141eb6e0e282fbd98aa1269e14bb368ef26f47416a8fcd7f556bece57f5b6113986dc733c2230efdf398beb718a13ef88b2d7f2126226217e76ea773af609aeae870f55e8eb6ed4c497b70830ed1357efd6b373faeaa52701369e2ae7bf9ad74e2f9355b5499ecef1123277cb64e6cd1155c21f6f169d77036ea6e4a36288494f2dfc39d2e76191197d9f8288ecb42478dd37335669a956b4e1adb3400928e1ec440a24882163a9cbbe8edd918e7fe5dbb8e66464939c4a62132d5a3ba17d081c56f0a23beffb2c0ca0c4c36a69540ffb7ac3655170148fe9f358bf0fc926baa7ef96611a