ACR Stealer:威胁活动加剧期间观察到的两条入侵链
导语:2026 年 4 月末至 6 月中旬,Microsoft Defender Experts 在客户环境中观察到 ACR Stealer 活动显著增加。这些攻击活动利用 ClickFix 社会工程学诱饵窃取浏览器凭据、身份认证令牌及企业敏感文档。本文详细分析了使用 WebDAV 投递、Python 加载器及区块链 C2(EtherHiding)的攻击链,以及采用 MSHTA、混淆 PowerShell 和图像隐写术的无文件攻击链,并附带威胁指标、狩猎方法与防御建议。
2026 年 4 月末至 6 月中旬,Microsoft Defender Experts 观察到 ACR Stealer 在客户环境中的活动显著增加。这些攻击活动正在成功利用 ClickFix 诱饵,从企业环境中窃取浏览器凭据、身份认证令牌以及敏感文档。成功入侵可能暴露浏览器凭据、会话令牌、认证构件以及敏感的企业数据,进而可能导致账户失陷、对云资源的未授权访问以及后续入侵活动。安全团队应优先监测 ClickFix 诱饵、可疑的 WebDAV 活动、经过混淆的 PowerShell 执行行为,以及访问浏览器凭据存储的尝试。
ACR Stealer 是一种信息窃取类恶意软件家族,据报道以"恶意软件即服务"(MaaS)模式提供,并与 Amatera Stealer 的品牌重塑相关联。在此观察期内,有两起攻击活动在近期入侵事件中频繁出现,尤为突出。两者以相同的方式开始——使用 ClickFix 社会工程学技术诱骗目标运行威胁行为者的命令——但其后跟随的入侵链在载荷投递、建立执行以及规避检测的方式上有所不同。
第一条攻击活动依赖通过 WebDAV 投递的载荷、分阶段的 PowerShell、基于 Python 的加载器与持久化机制,并在部分入侵中使用了由区块链支撑的 dead-drop 命令与控制(C2)解析方式。第二条攻击活动则采用更为无文件的路径,利用 MSHTA、经过混淆的 PowerShell,以及借助隐写术辅助的内存执行。尽管存在上述差异,但两起攻击活动的最终目标一致:窃取浏览器中存储的凭据以及其他敏感数据用于外传。
这两起攻击活动代表了 Defender Experts 观察到的最为普遍的 ACR Stealer 投递活动,但它们并不代表该恶意软件家族所使用的全部投递方式。对 ACR Stealer 的归因基于所观察到的行为与入侵后的战术,并结合了与该恶意软件家族相关基础设施的开源情报加以佐证。可能还有其他攻击活动、基础设施模式以及执行链正在活跃运行,各组织应将本文中所述的指标与技术视为具有代表性的样本加以处置。
Microsoft Defender for Endpoint 可通过对 "living-off-the-land" 执行行为、可疑的 WebDAV 与 MSHTA 活动、经过混淆的 PowerShell、计划任务持久化、内存载荷执行以及浏览器凭据窃取等行为覆盖来帮助呈现这两起攻击活动的特征。本文详细分析这两起攻击活动,包括其投递机制、入侵后的战术、威胁指标、威胁狩猎机会以及相关指导建议,以帮助防御者在其环境中检测并阻断相关活动。
第一条攻击活动

在这条攻击活动中,ClickFix 提示很可能通过恶意广告或被 SEO 操纵的搜索结果投递,指示目标用户运行一个用于启动 cmd.exe 的命令。该命令随后调用 rundll32.exe 从通过 HTTPS 访问的远程 WebDAV 共享加载 DLL。WebDAV 路径通常使用基于 GUID 的目录结构,并使用被设计成模仿合法资源的文件名(例如 google.ct),从而使该活动能够混入正常的网络流量中,逃避粗略的检查。
我们观察到初始执行命令的三个变种。其中变种二和变种三因使用 pushd 而值得注意,pushd 会在执行前透明地将远程 WebDAV 共享映射到一个临时的本地驱动器。该技术允许威胁行为者通过看似本地的路径来执行远程托管内容,从而简化载荷执行的同时降低用户的察觉程度。在更为先进的变种中,威胁行为者进一步通过 conhost.exe –headless 启动命令(抑制可见的控制台窗口)以及采用环境变量混淆和延迟变量扩展来隐藏关键执行组件(如 pushd、rundll32 以及远程主机名),以提升隐蔽性。结合最小化或无控制台窗口的执行方式,这些技术降低了用户的可见度,使静态分析与检测变得复杂,并使感染链能够在几乎不被受害者察觉的情况下执行。
一旦 rundll32.exe 加载从远程服务器获取的 DLL,恶意软件便与威胁行为者控制的基础设施建立通信,并执行一段经过重度混淆的 PowerShell 脚本。该脚本使用大量的算术 no-op、死循环、伪造的控制流以及随机化的变量名,以阻碍静态分析并规避基于签名的检测。
随后,该 PowerShell 脚本部署另一个阶段,该阶段同时充当恶意软件安装程序与持久化机制。它会部署一个经过混淆的 Python 加载器、创建计划任务以维持持久化,并通过伪装为合法应用程序安装程序的归档文件投递最终载荷。Python 组件作为一个重度混淆的加载器,旨在运行时才揭示其真实功能。它采用了多层静态分析对抗机制,包括动态 API 解析、编码字符串重建、垃圾数据移除、字符位移、字符串反转、Base64 解码以及 zlib 解压。这些技术确保嵌入的载荷在静态形态下不可读,仅在执行期间被重建,从而显著阻碍了基于签名的检测与自动化分析。
解码后,最终阶段的载荷充当内存型 shellcode 加载器。它提取一个伪装为合法应用程序安装程序的归档文件,从该归档中读取一个文件,并将载荷注入到系统进程中。该加载器使用 VirtualAlloc 分配可执行内存,将载荷复制到所分配的内存区域中,并通过 Windows Fiber API(ConvertThreadToFiber、CreateFiber 以及 SwitchToFiber)转移执行。该技术有助于实现隐蔽的内存执行,并最大程度地减少写入磁盘的痕迹。
该攻击活动中一个值得注意的变种是使用区块链服务进行 C2 解析,即采用被称为 EtherHiding 的技术。尽管大多数入侵依赖于更为常规的 C2 机制,但其中一部分会部署一个额外的次级 Python 加载器,利用区块链服务作为 dead-drop 解析器。当该加载器执行时,已观察到其与公共区块链 RPC 端点及第三方 Web3 节点基础设施进行通信,可能通过查询存储在去中心化公共账本上的数据来获取后续载荷或 C2 地址。

通过将 C2 信息外置到区块链上,运营者能够在不修改或重新部署恶意软件的情况下动态更新基础设施,显著增加了检测与下架的难度。该行为在本次攻击活动的两种变种中均有观察到。
第二条攻击活动
第二条攻击活动在投递与执行方式上采取了明显不同的策略。如果说第一条攻击活动依赖于基于磁盘的痕迹(Python 运行时、计划任务以及伪装二进制文件),那么该攻击活动几乎完全通过无文件、内存内执行来达成其目标,使其更难通过基于文件的扫描与取证分析检测到。
执行链始于受害者(通过恶意广告或被 SEO 操纵的搜索结果被引导)遇到一个 ClickFix 提示,该提示触发一条命令,生成 MSHTA 以从威胁行为者控制的域获取并执行远程 HTA 内容。嵌入的 VBScript 加载器滥用 COM 对象,以解码并执行经过编码的 PowerShell 内容。
解码后的 PowerShell 阶段采用了与第一条攻击活动中类似的混淆技术:随机化的变量名、算术 no-op 操作、死循环、误导性的控制流以及自定义的加密例程。在与下一阶段基础设施通信之前,恶意软件会生成一个受害者专属的标识符并禁用证书验证。所获取的内容直接在内存中执行。
该攻击活动中一个值得注意的技术是利用隐写术将恶意内容隐藏在公开托管的图像之中。该恶意软件并未(如第一条攻击活动中那样)下载一个二级脚本,而是从一个图像托管服务检索一个 JPEG 图像。
来源信息
来源:Microsoft Security Blog
作者:Microsoft Security Research and Balaji Venkatesh S

