攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

admin 2024年10月11日13:45:40评论30 views字数 3100阅读10分20秒阅读模式

几周前,在查阅威胁情报来源时,Jscrambler 研究人员偶然发现了一个新的浏览活动,乍一看,它因其展示的 JavaScript 混淆而引人注目。有些人提出这是否是一种新的混淆技术,可能是因为代码使用了奇怪的重音字符。作为一家制作JavaScript 混淆工具的公司的一部分,该团队可以立即判断它不是。混淆的作者只是将不常见的 Unicode 字符用于变量和函数名称。但以前有人这样做过,这几乎不是什么障碍。

Jscrambler 的研究人员仔细研究了混淆过程,检索了攻击的详细信息,并发现了受影响的受害者,我们甚至看到了不同的窃取者通过代码中的注释进行奇怪的互动。请阅读下面的所有内容。

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

混淆

Jscrambler 的研究人员从 Sansec 威胁情报中了解到了这一窃取活动。目前尚无详细信息,但该团队进行了全面分析。乍一看,最引人注目的是脚本的混淆,由于所有重音字符,这似乎有点奇怪。网上有些人说这可能是一种新的混淆技术。大量使用 Unicode 字符(其中许多是不可见的),确实使人类很难阅读代码。

但是,当 Jscrambler 的研究人员开始研究这种混淆技术时,他们立即意识到这并不是什么新奇的技术——它只是利用了一种众所周知的 JavaScript 语言功能:根据 ECMAScript 标准,可以在标识符中使用任何 Unicode 字符(例如变量名)。

增加的混淆确实会造成混淆(我们称之为混淆效力),但它不会增加任何弹性(使用手动或自动方法进行逆向工程的难度)。删除这些字符的一种简单方法是将代码传递给 JS 转换器,该转换器将所有标识符重命名为简单名称(例如“a”、“b”、“c”等)。但这只有在人类需要查看时才有用。全自动 JS 混淆逆向工程引擎不会介意使用哪些 unicode 字符。该工具在 Jscrambler 已经可用多年,并且完全自动化。这是 Jscrambler 研究人员用来在我们的产品和研究中查找撇取器的工具之一。

使用 Jscrambler 自己的 Code Integrity 产品,团队快速将所有标识符重命名为更短、更易读的标识符。攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

重命名变量后,代码会产生一堆字符串连接,包括一些 String.fromCharCode(...) 语句,其中包含一个隐藏的 skimmer,将传递给 eval 函数调用。

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

经过 eval 处理的字符串显示了一个使用常见混淆工具进行混淆的脚本。一旦 eval 运行,它就会加载一个旨在窃取敏感信息的 skimmer。

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

Jscrambler 的研究人员在对 JS 进行逆向工程后,很快确认这是一个相当标准的撇取器。

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

命名窃密软件

当他们分析脚本中分配的第一个变量时,其首字符由十六进制值“E1A0A5”表示,这对应于名为“蒙古字母 OE”的 Unicode 字符。标识符使用如此不寻常的字符启发团队将撇渣器命名为Mongolian Skimmer

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息
蒙古文字母 OE

窃密软件分析

该略读器遵循 Jscrambler 研究人员过去无数次见过的典型略读结构:

DOM 变化监控
该脚本持续监控特定 DOM 元素(如 <input>、<select> 和 <textarea> 字段)的变化。这些是窃取用户数据(如个人信息或付款详情)的主要目标。它会提取名称或 ID 属性,并在用户与这些元素交互时获取它们的值。

数据泄露

浏览器会检查页面 URL 中是否存在“checkout”或“admin”等关键字,以识别处理敏感数据的页面。识别后,它会使用 window.btoa() 对数据进行 base64 编码,并通过跟踪像素(使用 new Image() 构造)将其发送到远程服务器 - 这是经典的浏览技术。

开发者工具检测
该脚本会主动检测浏览器开发者工具 (DevTools) 是否打开。如果检测到,skimmer 会禁用某些功能 — 这可能是为了在调试或动态分析阶段逃避检测。

页面卸载前的数据收集
通过使用 beforeunload 事件在页面关闭或刷新之前捕获任何最后一刻的数据条目,skimmer 可确保不会丢失任何数据。

跨浏览器兼容性
该略读器采用众所周知的技术,通过采用现代和传统事件处理技术来确保跨不同浏览器的兼容性。这保证了它可以针对广泛的用户,无论他们使用的浏览器版本如何。

反调试

窃取器采用一种有趣的反调试技术,通过字符串转换和正则表达式测试检查其格式以检测篡改。这是窃取器使用的一种标准技巧,通过检测代码美化或任何其他类型的格式更改来阻止调试。

加载器分析

该团队发现的大多数蒙古语 skimmer 实例都使用了主页上的内联脚本,该脚本会从外部源异步获取 skimmer 脚本。不过,他们确实遇到了一个值得强调的特殊情况,即使用了不同的加载程序。

不寻常的加载器变体

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

此加载脚本似乎已添加到由 MageFan 构建的 Magento 插件“Magento 2 Google Tag Manager”的加载程序中。它会动态加载 Google Tag Manager 和 skimmer 脚本,但前提是它检测到用户交互,例如:

  • 滚动

  • 鼠标移动

  • 触摸启动

这种方法不仅可以作为有效的反机器人措施,还可以作为确保脚本加载不会明显影响页面加载性能的一种方式。

使用受害者代码进行网络闲聊

在一个受到攻击的 Magento 网站中,Jscrambler 研究人员发现了不止一个,而是两个 skimmer 实例:我们之前讨论过的熟悉的“'Google'+'Analytics'+'Object'”加载器(我们之前在 这里),以及 Mongolian skimmer。

攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息受感染的网站被多个恶意行为者利用相同漏洞攻击的情况并不少见。此案的特殊之处在于,Jscrambler 研究人员发现,两名威胁行为者通过在源代码中互相留下代码注释来随意聊天。这发展成一场积极的对话,两名威胁行为者同意分割盗取活动的利润。

看看他们的交流:

日期 信息
2024 年 9 月 24 日 也许 50/50?
2024 年 9 月 27 日 我同意 50/50,你可以添加你的代码
2024 年 9 月 30 日 好吧 ) 那么我该如何联系你呢?你了解漏洞利用吗?

我们不能说网络犯罪分子不遵循_code_ 🙂。

结论

在外行人看来,在这个 skimmer 上发现的混淆技术可能是一种新的混淆方法,但事实并非如此。这只是网络空间中一个普通的星期二。它使用旧技术来使混淆效果更明显,但这些技术同样易于逆转。一个简单的代码转换器可以自动为您删除所有奇怪的字符。在外表之下,它只是一种非常常见的 skimmer 代码,通常出现在配置错误或易受攻击的 Magento 安装中。

IoC

common[.]gifcache[.]com Skimmer 191[.]96[.]56[.]171 Hostinger USA
cache[.]cdn-core[.]com Skimmer 198[.]187[.]29[.]127 Namecheap USA
widget[.]statictool[.]com Skimmer 82[.]197[.]83[.]18 Hostinger USA
widget[.]useonline[.]org Skimmer 82[.]197[.]83[.]18 Hostinger USA
process[.]services[.]bz Exfil 82[.]180[.]138[.]247 Hostinger USA
stat[.]mystatpal[.]com Exfil 82[.]197[.]83[.]29 Hostinger USA
seomgr[.]com Exfil 62[.]72[.]7[.]8 Hostinger USA
mdn[.]safecontentdelivery[.]com Exfil 217[.]21[.]77[.]96 Hostinger USA

原文始发于微信公众号(独眼情报):攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月11日13:45:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻击者利用 Unicode 字符隐藏在浏览器中切取用户信息https://cn-sec.com/archives/3253601.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息