
恶意软件伪装成华硕官方工具
ArmouryLoader于2024年底首次出现在威胁领域,它通过劫持华硕Armoury Crate工具的导出表,将这个可信的游戏辅助软件变成了高级恶意软件活动的初始入口点。
隐蔽的加载机制
此后,安全团队发现相关事件持续增加。该加载器能悄无声息地绕过终端遥测技术,在GPU内存中解密有效载荷,并直接加载从CoffeeLoader到SmokeLoader等各种恶意软件,而无需在磁盘上留下任何文件。
该加载器能够选择支持OpenCL的设备,将权限提升与高级混淆技术相结合,并伪造调用栈,因此成为针对消费级和企业环境的金融动机威胁行为者的首选工具。
多阶段攻击流程
攻击者通常通过鱼叉式网络钓鱼压缩包或被入侵的软件存储库来分发被篡改的ArmouryA.dll文件。一旦恶意DLL被旁加载,执行就会进入第一阶段------大量可逆算术运算旨在填充反汇编列表,同时保持寄存器不变。

几秒钟内,第二阶段会生成一个新线程,解密下一个PE存根并将执行交给第三阶段。在第三阶段,OpenCL内核完全在GPU上对密文块执行异或运算,从而规避监控CPU相关API调用的沙箱钩子。

广泛的攻击影响
4hou分析师指出,该加载器对GPU的依赖迫使许多自动化沙箱进入死路径,因为它们提供的是虚拟化、非加速的图形适配器。该加载器的影响范围广泛:远程办公终端接收第二阶段木马,安全运营中心(SOC)难以处理不透明的调用痕迹,事件响应人员则面临每次重启后都会重新安装freeBuffer劫持的持久性任务。
恶意DLL中嵌入的数字签名带有合法的"ASUSTeK COMPUTER INC."发布者字段,这进一步帮助了针对信任可见证书的非技术用户的社会工程攻击。
持久化策略:无法删除的定时任务
虽然混淆和GPU端解密获得了最多的关注,但ArmouryLoader的持久化层才是确保长期访问的隐形力量。
第五阶段首先查询TokenElevationType
和CheckTokenMembership
来判断当前上下文是否具有管理员权限。如果是,加载器会将自己复制到%PROGRAMDATA%\ArmouryAIOSDK.dll
,设置系统、隐藏和只读属性,并修改文件的ACL,使即使是本地管理员也会收到"拒绝删除"条目。
以下代码片段摘自第五阶段PE,展示了这些权限是如何被强制执行的:
pList.grfAccessPermissions =
DELETE | FILE_WRITE_DATA | FILE_APPEND_DATA |
FILE_WRITE_EA | FILE_WRITE_ATTRIBUTES;
pList.grfAccessMode = DENY_ACCESS;
SetEntriesInAclW(1, &pList, NULL, &newAcl);
SetNamedSecurityInfoW(L"%ProgramData%\\ArmouryAIOSDK.dll",
SE_FILE_OBJECT, DACL_SECURITY_INFORMATION,
NULL, NULL, newAcl, NULL);
如果没有高完整性权限,第五阶段会优雅降级,将DLL放入%LOCALAPPDATA%
,但仍应用相同的属性强化。无论路径如何,它都会调用schtasks.exe
(或在较新版本中调用任务计划程序COM API)来创建一个"AsusUpdateServiceUA"任务。
在提升的上下文中,任务会在登录时以/RL HIGHEST
标志运行;否则会在当前用户下每30分钟重复一次。原始报告中的图2-5("AsusUpdateServiceUA Properties.png")描述了配置为每次登录时触发的任务,从而巩固了立足点。
后续变种完全绕过schtasks.exe
,调用ITaskDefinition::RegisterTaskDefinition
,使得监视命令行工件的EDR规则看不到任何异常。最后一个隐蔽措施是:ArmouryLoader在使用CMLuaUtil
以完全管理员权限重新启动自身之前,会重写PEB的ImagePathName
和相应的LDR_DATA_TABLE_ENTRY
字符串为"explorer.exe"。
因此,任何执行表面进程名称检查的安全产品都会认为权限提升源自Windows shell。通过结合篡改的数字签名、加密的GPU工作负载和ACL强化的计划任务,ArmouryLoader提供了一个持久、低噪声的交付渠道,在防御者加强GPU遥测并限制全系统范围内的任务注册API之前,这一渠道很可能仍对攻击者具有吸引力。