隐藏的艺术:滥用 404 页面的新 Magecart 活动

admin 2024年9月22日12:45:16评论8 views字数 5195阅读17分19秒阅读模式
免责声明
由于传播、利用本公众号红云谈安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号红云谈安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!请在授权的站点测试,遵守网络安全法!仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

介绍

一项新的、复杂的、隐蔽的 Magecart 网页窃取活动已针对 Magento 和 WooCommerce 网站展开。该活动的部分受害者与食品和零售行业的大型组织有关。

根据我们发现的证据,该活动已经持续了几周,在某些情况下甚至更长。该活动采用了一种我们以前从未遇到过的高级隐藏技术,令我们措手不及。

新的活动

Magecart 攻击通常首先利用目标网站的漏洞,或感染这些网站正在使用的第三方服务。在这次活动中,我们检测到的所有受害网站都直接受到攻击,因为恶意代码片段被注入到他们的第一方资源之一中。

在某些情况下,恶意代码被插入到 HTML 页面中;在其他情况下,它隐藏在作为网站一部分加载的第一方脚本之一中。

与许多其他 Magecart 活动一样,此活动的攻击基础设施由三个主要部分组成:加载器、恶意攻击代码和数据泄露(图 1)。

  1. 加载器——简短、晦涩的 JavaScript 代码片段,负责加载攻击的完整恶意代码
  2. 恶意攻击代码——执行攻击的主要 JavaScript 代码;它检测敏感输入、读取数据、破坏结帐流程并注入虚假表单
  3. 数据泄露——将窃取的数据传输到攻击者的命令和控制 (C2) 服务器的方法隐藏的艺术:滥用 404 页面的新 Magecart 活动图 1:Magecart 攻击基础设施

将攻击分为三个部分的目的是隐藏攻击,使其更难被发现。这样一来,攻击的整个流程就只能在特定目标页面上激活;也就是说,由于攻击者使用了混淆措施,因此只有在攻击者希望执行攻击的地方才会激活完整的攻击流程。这使得攻击更加隐蔽,更难被目标网站上可能安装的安全服务和外部扫描工具检测到。

尽管大多数 Magecart 攻击活动的流程和阶段都相似,但攻击者使用的各种隐藏技术却使各个攻击活动各有不同。这些技术用于掩盖攻击的基础设施、隐藏踪迹、使检测和逆向工程复杂化,并最终延长攻击时间。

活动的 3 个变体

我们发现了此次活动的三种不同变体,展示了攻击的演变以及攻击者为防止此次活动被检测和缓解而不断做出的改进:

  • 前两个变体非常相似,仅在加载器部分有细微的差别。
  • 第三个版本是独一无二的,因为攻击者使用网站的默认 404 错误页面来隐藏他们的恶意代码;这是一种我们从未见过的创造性隐藏技术。

让我们仔细看看这个新颖的活动的三个变体的技术细节。

变体一

我们的研究始于我们注意到一家大型公司的网站上有一些可疑的代码片段,这些代码片段由我们的威胁情报监控工具检测到。在分析这些代码片段后,我们发现它们是恶意编码的 JavaScript 加载程序,这些加载程序仍然存在并活跃在网站上。这一发现促使我们进一步调查,揭示了整个活动及其变体和对众多网站的影响。

变体一装载机:冰山一角

skimmer 成功将带有onerror属性的畸形 HTML 图像标签注入到被利用的网站(图 2)。此属性包含经过混淆的 Base64 编码的恶意加载程序代码片段。图像标签的 src 属性故意为空,旨在阻止网络请求并触发包含经过混淆的恶意 JavaScript 代码片段的内联onerror回调的执行。隐藏的艺术:滥用 404 页面的新 Magecart 活动使用图像标签来执行 JavaScript 代码是一种不太常见且更为复杂的技术。它可以帮助窃取者绕过安全措施,例如通常分析网络流量的外部扫描仪,而这些措施在这种特定情况下不会被触发。混淆的代码将在页面上下文中执行,并像页面本身启动的原生第一方脚本一样运行。图 2:变体一加载程序——格式不正确的 HTML 图像标记,其 onerror 属性包含恶意加载程序代码 解码的加载器代码——运行时 一旦混淆的 Base64 编码代码在运行时执行,它就会转换为纯 JavaScript,并负责启动 WebSocket 通道(图 3)。此通道充当浏览器和攻击者的 C2 服务器之间的双向通信链路。

在最近的几次活动中,我们都观察到 Magecart 攻击使用了 WebSockets。WebSocket 被认为是一种更安静、更灵活的通信方法,允许攻击者利用单个网络通道实现各种目的。这包括将攻击的不同部分从 C2 服务器发送到浏览器(反之亦然),以及在某些情况下促进数据泄露活动。

该代码的另一个值得注意的方面是机器人检测,它检查用户代理是否处于自动化控制之下。如果是这种情况,代码将终止其执行。这是一种巧妙的反机器人技术,旨在逃避可能检测到攻击的外部安全扫描器和沙箱。

隐藏的艺术:滥用 404 页面的新 Magecart 活动图 3:变体一加载器的运行时解码的 JavaScript 代码

Websocket 通信流程

一旦建立 WebSocket 通道,第一条消息就会从攻击者的 C2 服务器发送到浏览器。此消息以 Base64 编码的字符串形式传输,其中包含一行 JavaScript 命令,指示浏览器发回页面的当前 URL。

此步骤的目的是使 C2 服务器能够确定当前页面是结帐(敏感)页面还是其他非结帐页面。这样,攻击者就可以相应地调整后续步骤。

这种简单的服务器端验证使攻击者能够仅在相关的目标页面上激活攻击,从而避免在非敏感页面上暴露。这是另一个例子,凸显了 skimmer 为逃避安全服务和外部扫描仪的检测而做出的努力。

当 C2 服务器识别到结帐页面 URL 时,流程将进入下一阶段。在此步骤中,另一条消息被发送到浏览器。这是一个很长的 Base64 编码字符串,其中包含整个攻击代码。解码后,会显示一段冗长且模糊的 JavaScript 代码(图 4)。

该代码负责在目标敏感页面上执行各种恶意活动,目的是读取用户的敏感个人和信用卡数据并将其传回 skimmer 的 C2 服务器。

随后,包含恶意代码收集的敏感被盗数据的混淆数据泄露消息将从浏览器发送到 C2 服务器。如前所述,使用相同的 WebSocket 通道加载完整的恶意代码并泄露被盗数据,使该过程比 XHR、fetch 或 HTML 资源请求等更传统的通信方法更安静,并且涉及的网络请求更少。隐藏的艺术:滥用 404 页面的新 Magecart 活动

变奏二

变体二:同一位女士,新衣服

变体一和变体二的主要区别在于加载器组件。在变体二中,skimmer 插入了一个内联脚本,其中的代码片段与著名的 Facebook 访客活动跟踪服务 Meta Pixel 代码片段非常相似,但其中还多了几行代码(图 5)。

这些添加的行是实际的加载器部分,而周围的 Meta Pixel 代码是一种误导性的掩护,使其看起来像是一个合法且无可疑的代码片段。

这种隐藏技术在最近的 Magecart 活动中广受欢迎,它使恶意代码片段看起来像是 Google Tag Manager 或 Facebook 等知名服务。它允许浏览者逃避外部扫描器和研究人员的静态分析。隐藏的艺术:滥用 404 页面的新 Magecart 活动图 5:变体二加载器——伪装成 Meta PIxel 代码片段的内联脚本,其中包含恶意加载器

请求图片

当我们仔细检查伪造的 Meta Pixel 代码片段中的可疑行时,它似乎从网站自己的目录中获取了 PNG 图像。网络请求似乎是对网站上托管的无害图像的典型请求。然而,当我们检查这张图片的实际内容时,很明显它并不像看起来那么无害(图 6)。隐藏的艺术:滥用 404 页面的新 Magecart 活动图6:网络图片请求,请求的是被攻击者篡改且包含恶意代码的图片

图像二进制文件中的恶意 JavaScript 代码片段

PNG 图像的二进制数据包含一个附加在图像二进制文件末尾的 Base64 编码字符串(图 7)。然后,加载程序代码片段会提取、解码并执行此字符串(图 8)。解码后的字符串代表一个 JavaScript 代码片段,与变体 1 中加载程序的onerror属性中的代码片段相同。

流程的后续步骤保持不变。此代码片段在运行时转换为纯 JavaScript 代码,代码启动到攻击者的 C2 服务器的 WebSocket 通道,其余顺序按照前面所述进行。隐藏的艺术:滥用 404 页面的新 Magecart 活动图7:包含隐藏恶意代码的图片二进制数据隐藏的艺术:滥用 404 页面的新 Magecart 活动图 8:恶意代码最初以 Base64 编码并隐藏在图像中,解码后变得明显

变奏三

现在,让我们谈谈最精彩的部分。虽然我们见过类似的攻击,但这次攻击非常独特,确实让我们感到惊讶。

变体三装载机:相同,相同,但完全不同

乍一看,这个加载器与变体二中的加载器类似,但你会发现(正如我们所看到的)这是一个完全不同的场景。在某些情况下,这个加载器被伪装成 Meta Pixel 代码片段,如变体二所示(图 9)。但在其他情况下,它被注入到页面上的随机内联脚本中(图 10)。

该加载器的第一个值得注意的方面是向名为“图标”的相对路径获取请求。隐藏的艺术:滥用 404 页面的新 Magecart 活动图 9:变体三加载程序 - 隐藏在模仿 Meta Pixel 外观的代码片段中的恶意代码片段隐藏的艺术:滥用 404 页面的新 Magecart 活动图 10:变体 3 加载程序——隐藏在任意内联脚本中的恶意代码片段

404 错误?真的吗?

加载程序执行后,攻击会向*/icons*发送获取请求,这是一个实际上不存在的相对路径。此请求导致“404 Not Found”错误(图 11)。分析响应中返回的 HTML 后,它似乎是网站的默认 404 页面(图 12)。这令人困惑,让我们怀疑 skimmer 是否不再在我们发现的受害者网站上活跃。隐藏的艺术:滥用 404 页面的新 Magecart 活动图 12:默认错误页面 HTML

永远不要低估装载机

我们退后一步,重新分析了加载程序,找到了谜题中缺失的部分。加载程序包含字符串“COOKIE_ANNOT”的正则表达式匹配,该匹配应该在图标请求返回的 404 错误页面上执行。

因此,我们在返回的 404 HTML 中搜索此字符串,然后就成功了!我们发现页面末尾隐藏着一个包含“COOKIE_ANNOT”字符串的评论(图 14)。此字符串旁边连接着一个很长的 Base64 编码字符串。此编码字符串代表整个混淆的 JavaScript 攻击代码。加载程序从评论中提取此字符串,对其进行解码,然后执行攻击,旨在窃取用户输入的个人信息。

我们模拟了对不存在路径的额外请求,所有请求都返回了相同的 404 错误页面,其中包含带有编码恶意代码的评论。这些检查证实,攻击者成功更改了整个网站的默认错误页面,并在其中隐藏了恶意代码!隐藏的艺术:滥用 404 页面的新 Magecart 活动图 13:加载器变体 3 - 字符串“COOKIE_ANNOT”的正则表达式匹配。隐藏的艺术:滥用 404 页面的新 Magecart 活动图 14:隐藏在错误页面 HTML 中的恶意编码评论

数据泄露

假表格

与变体一和变体二相比,攻击者在变体三中采用了另一种常见的数据泄露技术 — 注入虚假表单(图 15)。当窃取者无法访问敏感输入时,通常会使用此技术。

当网站使用第三方支付服务,并在第三方 iframe 或外部页面中实现支付表单时,就会发生这种情况。为了绕过这种情况,攻击者会创建一个与原始支付表单非常相似的虚假表单并将其覆盖 — —这种技术越来越受欢迎。这正是变种三中窃取数据的方式。隐藏的艺术:滥用 404 页面的新 Magecart 活动图 15:恶意代码注入的虚假表单 当用户向攻击者的虚假表单提交数据时,会出现错误,虚假表单会被隐藏,原始付款表单会显示出来,并提示用户重新输入付款详情(图 16)。隐藏的艺术:滥用 404 页面的新 Magecart 活动隐藏的艺术:滥用 404 页面的新 Magecart 活动

含有窃取数据的图像请求

提交虚假表单会向攻击者的 C2 服务器发起图像网络请求,并将所有被盗个人信息和信用卡信息作为查询参数中的 Base64 编码字符串携带(图 17)。解码后,此字符串会揭示请求的真实意图,整个攻击流程就会变得清晰。隐藏的艺术:滥用 404 页面的新 Magecart 活动

从变体三中吸取的教训:404 案例

这种隐藏技术极具创新性,我们在之前的 Magecart 活动中从未见过。操纵目标网站的默认 404 错误页面可以为 Magecart 攻击者提供各种创造性选项,以改进隐藏和逃避攻击的能力。

在我们发现的一些案例中,恶意加载程序在撰写本文时已从受影响网站的页面上删除。但是,默认 404 页面中的恶意评论仍然存在,这可能使 skimmer 能够轻松重新激活攻击。这凸显了检测这种方法的复杂性以及缓解这种方法的重要性。

对指向 404 页面的第一方路径的请求是另一种规避技术,它可以绕过内容安全策略标头和其他可能正在主动分析页面上的网络请求的安全措施。这无疑是我们最近遇到的更复杂的 Magecart 策略之一。

Akamai 客户端保护与合规性与窃取者

作为对此活动研究的一部分,我们针对Akamai 客户端保护和合规性对该 skimmer 进行了模拟,我们的解决方案可分析运行时 JavaScript 执行行为,以防御 JavaScript 威胁并减轻客户端攻击。

该解决方案成功检测到复杂的窃取器并触发高严重性事件以立即缓解。在现实场景中,在特定网页上启用了客户端保护和合规性,图 18 显示了网站所有者将收到的警报,以便他们能够快速调查威胁并使用各种缓解选项实时响应。

隐藏的艺术:滥用 404 页面的新 Magecart 活动图 18:检测到 skimmer 后,客户端保护与合规性模拟警报

结论

此次活动再次证明了网络窃取技术在不断发展。它们变得越来越复杂,这使得通过静态分析和外部扫描进行检测和缓解变得越来越困难。该领域的威胁行为者不断找到更好的方法来隐藏他们在受害网站内的攻击并逃避可能暴露他们的各种安全措施。

本研究强调的复杂程度应提醒各组织保持警惕并关注网络窃取攻击媒介,并积极寻求新的和先进的方法来应对此类攻击。

原文始发于微信公众号(红云谈安全):隐藏的艺术:滥用 404 页面的新 Magecart 活动

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月22日12:45:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   隐藏的艺术:滥用 404 页面的新 Magecart 活动https://cn-sec.com/archives/3193187.html

发表评论

匿名网友 填写信息