KREMLIN 银行木马劫持 Chrome 和 Edge 窃取凭据与会话令牌
- 浏览次数 1898
- 喜欢 0
网络安全研究人员揭示了一个此前未被记录的巴西银行木马行动,其投递的工具包名为 KREMLIN。
Elastic Security Labs 以代号 REF9334 追踪该活动。该威胁行为者至少自 2025 年 5 月起活跃,使用冒充十余家巴西银行的诱饵,在 Google Chrome 和 Microsoft Edge 上安装恶意浏览器扩展。
"KREMLIN 恶意软件生态系统采用多阶段 JavaScript 加载器、定制的 C++ 安装程序和恶意浏览器扩展,以窃取凭据、会话令牌和敏感数据,"安全研究员 Cyril François 和 Andrew Pease 在向 The Hacker News 分享的技术报告中表示。
"恶意浏览器扩展通过操纵 Secure Preferences 并重新生成所需的 HMAC 和 App-Bound 加密哈希,绕过 Chromium 的完整性机制。"
该行动的一个显著特点是利用区块链隐藏威胁行为者控制的基础设施,将 Ethereum 智能合约用作死信解析器 (dead drop resolver),以动态更新 C2 端点和载荷托管位置,使其无法被破坏。
KREMLIN 的起点是一个 JavaScript 文件,它伪装成银行、发票或公司文档,由受害者手动执行。执行后会启动一个多阶段加载器,该加载器仅在未运行于沙箱或虚拟机中时才会继续,随后下载并安装额外载荷,再启动下一阶段。
第二阶段旨在执行四项任务:通过计划任务建立持久化、从 Ethereum 智能合约获取下载位置、从这些位置下载所需二进制文件,并执行第三阶段。载荷 URL 托管以下程序——
- 一个恶意浏览器扩展安装程序载荷
- .NET PE 注入器
- "SentinelMemoryScanner.exe",一个与 SentinelOne 相关的合法二进制文件,用于 DLL 侧加载 (DLL sideloading)
具体而言,C++ 安装程序滥用 SentinelOne 二进制文件来侧加载其未签名的主载荷,该载荷冒充 "SentinelAgentCore.dll"。一旦启动,该 DLL 会执行与 JavaScript 加载器类似的沙箱和虚拟机规避检查,通过扫描正在运行的进程列表并检查机器硬件属性(如 CPU 数量和 RAM 容量)。
如果任何正在运行的进程与其硬编码列表中的名称匹配,且系统不具备 2 个 CPU 或未超过 3 GB RAM,恶意软件便终止执行。KREMLIN 还会访问同一个 Ethereum 智能合约以获取两个域名——volmira[.]site 和 zaviro[.]online——并查询前者以获取浏览器扩展版本("1.0.0")和 ID("ndpbidppejfanjbhfgjlohfanbfbklff")。该扩展名为 "AVSync System Inc."。
"在下载压缩包之前,恶意软件会检查该扩展是否已安装,如果已安装,则将已安装版本与服务器报告的版本进行比较,"研究人员表示。"仅当未发现本地安装或版本不同时,它才会下载该扩展。随后它将 Chrome 扩展作为 ZIP 压缩包下载。"
为在基于 Chromium 的浏览器上安装该扩展,它利用了一种公开记录的完整性绕过技术,称为 Phantom Extension 和 GhostChrome-X,且不会触发 Secure Preferences 保护机制。其思路是修改 Secure Preferences 文件、启用 Chrome 的开发者模式,并用伪造的元数据更新 "protection.macs" JSON 对象,以注册恶意 Chrome 扩展。
一旦扩展安装完成,KREMLIN 便开始收集每个配置文件的浏览器数据并将其外泄至其 C2 服务器("luizestrelhashapr[.]online:443"),但在请求对浏览器标签页、Cookie、存储和 webRequest API 的广泛访问权限之后才会进行。它还会生成一个唯一的受害者标识符,存放在浏览器存储中,并包含在 C2 通信中。
在与 C2 服务器建立 WebSocket 通道后,该扩展支持以下命令——
- 对选定或活动标签页截图并上传压缩图像
- 枚举标签页、域名和活动状态,并上传列表
- 从选定或活动标签页窃取 Cookie、sessionStorage 和 localStorage
- 收集过去 15 天内最多 1,000 条历史记录(可能因扩展清单缺少 history 权限而失败)
- 提取并上传选定或活动页面的完整 HTML 源代码
- 下载攻击者控制的 HTML
- 刷新配置
除 WebSocket 外,该扩展还通过伪装成 CSS 文件获取的请求,定期轮询 "/google_api/" 端点。每个路径都映射到特定命令——
- 108766d0.css,上传 Cookie 和存储
- 41f7b187.css,上传标签页 ID、域名和活动标签页状态
- b83fa72d.css,上传过去 15 天的压缩浏览器历史记录
- 0f51ad2f.css,上传压缩的 JPEG 截图,以及页面 URL 和客户端 ID
- e4cce14e.css,上传压缩的整页 HTML,以及页面 URL 和客户端 ID
- 6c0c92f6.css,上传拦截的请求
- 81d47cb6.css,获取包含域名列表和 HTTP 拦截规则的目标配置
- a98cb43d.css,获取包含目标 URL 的重定向规则
据评估,KREMLIN 背后的行为者至少自 2025 年 5 月起活跃,包括安装恶意浏览器扩展和分发 Pulsar RAT、Remcos RAT 等现成木马。据称向 Ethereum 智能合约的转变发生在 2026 年 5 月 19 日。总体而言,自 2025 年 6 月 16 日以来,该组织已被归因于七个不同的活动。
作为其反沙箱机制的一部分,该恶意软件通过尝试从未注册域名下载页面来执行网络金丝雀 (network canary) 检查。换言之,如果它收到有效响应,很可能表明这是一个正在模拟网络连接的沙箱。在这种情况下,恶意软件会故意崩溃。
Elastic 表示,它注册了该网络金丝雀域名,并识别出 1,515 个受感染系统试图向该网络金丝雀域名进行签到。超过 98% 的系统地理位置位于巴西。
"因此,虽然这些系统仍感染着 KREMLIN 的最终组件,但这暂时削弱并操纵了该活动的防御机制,可能为防御者提供额外时间来识别和修复受感染的端点,"Elastic 表示。