RustyWater 代表 Static Kitten 组织攻击中的主要载荷和整个对抗行动的支柱。
RustyWater 代表整个 Static Kitten 组织攻击行动中的主要载荷和骨干。
RustyWater 是一个 Rust 编译的可执行文件(伪装成 reddit.exe,带有虚假的 Cloudflare 图标),被称为 RustyWater(或与 Archer RAT / RUSTRIC 关联),具有强大的 AV/EDR 绕过能力,通过进程注入和基于注册表的持久化实现。
Reddit.exe 实现了一个全面的 8 层反分析系统,主动探测执行环境是否存在监控、虚拟化或调试迹象。每一层都充当过滤器,确保载荷仅在真实目标上触发。
起初,RustyWater 士兵环顾四周,评估其所在机器的性能。它问自己:这个处理器有多少核心?分析环境(如沙箱)通常资源有限,往往只有两个或更少核心。如果士兵发现机器如此弱小,它会立即判定环境不安全,然后消失得无影无踪,浪费分析人员的所有努力。
在下图中,Reddit.exe 程序代码的一部分展示了这一机制。箭头指向检查“cpu count”的行,程序在此处检查处理器核心数。如果计数为 2 或更少,则意味着周围环境可疑,执行立即停止。

仅凭 CPU 检查还不够,士兵进一步深入探查。它知道虚拟机会留下特定的数字足迹,就像一串面包屑。它扫描运行进程列表,寻找与虚拟化软件相关的熟悉名称:vmtoolsd.exe(VMware)、vboxtray.exe(VirtualBox)和 xenservice.exe(Xen)。它还会检查磁盘上是否存在特定的驱动程序文件,例如 vmmouse.sys 或 VBoxGuest.sys。
逻辑很简单:如果机器正在运行 VMware Tools,则很可能是虚拟机。如果是虚拟机,则很可能是分析环境。如果是分析环境,士兵就中止任务。

接着,士兵潜入 Windows 注册表——一个庞大的系统设置数据库。它知道安全分析人员经常留下他们的工具,而这些工具会留下痕迹。它搜索与调试和监控软件(如 Wireshark、Process Hacker、OllyDbg 和 IDA Pro)相关的注册表项。如果存在任何这些项,则确认环境有敌意,立即触发关闭。

如果系统报告 RAM 小于 4GB,士兵会怀疑这是一个资源匮乏的沙箱,并停止执行。这项检查能有效过滤掉许多自动化分析系统。

士兵现在检查其直接环境。它使用一个简单但有效的 Windows API 调用——IsDebuggerPresent——来判断自己是否在调试器控制下运行。调试器就像显微镜;如果存在,意味着有人在观察士兵的每一条指令。士兵不会在如此监视下执行。

时间本身成为因素。士兵检查系统自上次启动以来已运行的时间。沙箱和分析环境通常是在执行样本之前刚刚启动的。如果系统运行时间少于 15 分钟,士兵将其标记为可疑的短时环境并撤退。

士兵接着检查用户身份。它将当前用户名与常用分析账户的黑名单进行比较:“sandbox”、“virus”、“malware”、“analysis”、“vmware”和“test”。这些用户名经常出现在隔离的分析环境中。如果用户名与列表中的任何条目匹配,任务立即中止。

最后,士兵查看机器的网卡。它检查 MAC 地址是否与虚拟化软件使用的已知供应商前缀匹配。以 00:0C:29 开头的 MAC 地址属于 VMware,而以 08:00:27 开头的属于 VirtualBox。它还会扫描硬件配置文件中是否包含“VMware”或“VirtualBox”等字符串。如果发现任何这些痕迹,士兵就知道自己身处虚拟机内,并拔掉电源。

一旦反分析检查通过,Reddit.exe 会建立强大的注册表持久化机制,确保系统重启后依然存活:
该植入程序巧妙地将自身伪装成合法的 Windows Update 组件,使其对普通观察者不那么可疑。持久化机制包括:
这确保了每当用户登录时,Reddit.exe 都会自动以用户权限执行。

最终且最复杂的能力是向 explorer.exe 注入进程,允许植入程序在受信任的系统进程内执行 shellcode。
Reddit.exe 实现了一种经典但有效的远程线程注入技术:
该技术允许攻击者将恶意代码隐藏在受信任的系统进程内,使安全解决方案更难检测。

攻击者故意选择将 explorer.exe 作为注入恶意 shellcode 的目标。这一选择并非随机,而是基于战略优势:

构建 reddit.exe 载荷后,我们必须修改其元数据,使其看起来像合法的、不可疑的程序。安全解决方案和 EDR 工具会检查这些元数据字段,因此修改它们对于规避检测至关重要。
使用的工具:rcedit
要进行这些修改,我们使用一个轻量级免费工具 rcedit,其官方版本可在 GitHub 上获取。 链接:https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe

我观察到攻击者不会在目标系统上直接执行 reddit.exe。相反,他们依赖一个名为 CertificationKit.ini(Dropper)的中介程序,该程序携带加密载荷,在运行时解密并在受害者机器上执行该载荷。
而且该 Dropper 是用 Rust 编写的。虽然它伪装成一个看似无害的配置文件(CertificationKit.ini),但实际上是一个编译后的二进制文件,负责在目标系统上部署和执行主载荷。
该技术提供了几个优势:

载荷加密:主载荷(reddit.exe)存储在 ENCRYPTED_PAYLOAD 部分,并使用 Dropper 中定义的 XOR 密钥(XOR_KEY)加密。这确保了载荷在运行前一直受到保护。
目标路径:Dropper 将解密后的载荷写入 Dropper 配置中指定的位置(TARGET_PATH)。该路径必须正确设置为受害者系统上的目标目录。
运行时解密:执行时,Dropper 使用 XOR 密钥解密载荷,并将其作为 CertificationKit.ini 部署到目标位置。
这种设置允许攻击者保持隐蔽,逃避检测,并确保载荷仅在受害者系统上执行时才可访问。
