part1
点击上方蓝字关注我们
往期推荐
将二进制空间安全设为"星标⭐️"
第一时间收到文章更新
摘要
Glove Stealer是一款用.NET编写的信息窃取工具, 能够窃取广泛的浏览器扩展以及本地安装软件中的敏感数据,包括:
浏览器数据(如 Cookie、自动填充信息等)、加密货币钱包、2FA 身份验证器、密码管理器、电子邮件客户端等信息。
它还有一个专用支持模块,通过IElevator服务绕过 Google 在 Chrome 127 中引入的 App-Bound 加密。
什么是App-Bound
谷歌的App-Bound 加密(App-Bound Encryption, ABE)是谷歌为增强用户数据隐私和安全而推出的一种数据加密技术。这项技术的主要背景和目的是在用户数据的处理过程中,确保只有特定的应用可以解密和访问相关数据, 从而限制未经授权的访问。其核心特性包括:
-
应用绑定(App-Bound)加密过程中的密钥与特定的应用标识绑定,只有在特定的应用内,数据才能被解密。这通常依赖于设备身份验证和应用标识(如Android签名密钥或iOS的应用沙箱机制)。
-
端到端安全数据从用户设备到服务端的传输,以及存储期间,始终保持加密状态,只有满足特定条件时才会解密。
-
硬件支持为了进一步增强安全性,ABE通常与硬件安全模块(HSM)或可信执行环境(TEE)协作,比如Android的安全模块或Apple的Secure Enclave。
Glove Stealer工具简介
该信息窃取工具相对简单,几乎没有混淆或保护机制,这表明它可能仍处于开发的早期阶段。然而,它采用了一种最近的方法绕过 Google 在 Chrome 127 中引入的 App-Bound 加密。该绕过方法通过使用 IElevator 服务实现,并于 2024 年 10 月 27 日由 Alexander Hagenah 公开披露。
除了窃取浏览器中的私人数据外, Glove Stealer还试图从 280 个浏览器扩展和超过 80 个本地安装的应用程序中提取敏感信息。这些扩展和应用程序通常涉及加密货币钱包、2FA 身份验证器、密码管理器、电子邮件客户端等。
Glove Stealer分发机制
该工具作者比较擅长社会工程学, 它在受害网站或攻击者托管页面中插入伪造的错误信息, 用户收到一封网络钓鱼邮件, 邮件通常附带一个 HTML 格式的附件。打开此 HTML 页面后,用户会看到一个伪造的错误信息,提示某些内容无法正常访问,并建议用户修复。按照指令操作时,用户会将一个恶意脚本复制到剪贴板中,然后在终端或运行提示框中执行,从而无意中感染系统。以下是用户打开附件时显示的 HTML 页面示例:
用户复制并执行的脚本会调用一个通过 Base64 编码的 PowerShell 命令。然而,与此类攻击活动常见的一样,这之后会执行一系列中间脚本。
经过这些中间脚本后,最终会出现一个提示信息给用户:
该脚本试图伪装成一种修复 DNS 配置的工具。该恶意脚本连接到攻击者的 C&C(命令与控制)服务器,下载Glove Stealer,最终导致用户设备感染。
以下是提供下载Glove Stealer的地址:
https://master.volt-texs[.]online/api/c4slhp3l
Payload从服务器以 HTML 页面的文本形式下载。可以比较容易发现一个 Base64 编码的 PE 文件, 如图:
窃取核心支持模块
为了利用从 Chrome 窃取的数据, Glove Stealer 需要绕过 App-Bound 加密。为此,它再次向原始服务器发出请求以获取一个 .NET 有效载荷来完成这一任务。
该Payload是一个支持模块,体积较小,专门用于通过 IElevator 服务 绕过 App-Bound 加密, 下载地址:
https://master.volt-texs[.]online/postovoy/RANDOM_STRING
Payload被命名为 zagent.exe
,下载后会进行 Base64 解码并存储到 Chrome 的程序文件目录下:
%PROGRAMFILES%GoogleChromeApplicationzagent.exe
该模块执行后,通过内置的字符串 "app_bound_encrypted_key":"
搜索并检索存储在本地状态文件中的 App-Bound 加密密钥:
%LOCALAPPDATA%GoogleChromeUser DataLocal State
检索到密钥后,它会被进行 Base64 解码并保存到一个名为 chromekey.txt
的文件中,以供 Glove Stealer 访问和使用。
解密代码如下图:
该代码实现了以下功能:
-
与 COM 接口交互: 使用
IElevator
接口提供的DecryptData
方法完成解密操作。 -
安全内存管理: 使用
SysAllocStringByteLen
和Marshal.FreeBSTR
分配及释放内存。通过try-finally
块确保即使出现异常,分配的内存也会被释放。 -
解密逻辑: 输入数据为字节数组
key
,经过内存分配、数据拷贝和解密处理后返回解密结果。
模块完成后,会向 C&C 服务器发送一个指示绕过加密成功的请求(ID=4)。
由于 App-Bound 加密还会对调用进程的位置进行路径验证,支持模块必须被放置在 Chrome 的程序文件目录树中。因此,Glove Stealer 首先需要获取本地管理员权限,才能运行这个支持模块。
往期推荐
原文始发于微信公众号(二进制空间安全):恶意软件的一段代码可以解密Google浏览器的Cookie加密算法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论