一个名为“Dragon Breath”、“Golden Eye Dog”或“APT-Q-27”的 APT 黑客组织正在展示一种新趋势,即使用经典 DLL 旁加载技术的多种复杂变体来逃避检测。
这些攻击变体从一个初始向量开始,该向量利用一个干净的应用程序,最常见的是 Telegram,它侧载第二阶段的有效负载,有时也是干净的,这反过来又侧载恶意软件加载程序 DLL。
受害者的诱饵是木马化的 Telegram、LetsVPN 或适用于 Android、iOS 或 Windows 的 WhatsApp 应用程序,这些应用程序据称已针对中国人进行了本地化。被木马化的应用程序被认为是使用 BlackSEO 或恶意广告进行推广的。
据 跟踪威胁行为者近期攻击的Sophos 分析师 称,该活动的目标范围集中在中国、日本、中国台湾、新加坡、香港和菲律宾的讲中文的 Windows 用户。
双 DLL 侧载
DLL sideloading 是一种自 2010 年以来被攻击者利用的技术,利用 Windows 加载应用程序所需的 DLL(动态链接库)文件的不安全方式。
攻击者在应用程序的目录中放置一个与所需的合法 DLL 同名的恶意 DLL。当用户启动可执行文件时,Windows 会优先考虑本地恶意 DLL,而不是系统文件夹中的恶意 DLL。
攻击者的 DLL 包含在此阶段加载的恶意代码,通过利用加载它的受信任、签名的应用程序为攻击者提供特权或在主机上运行命令。
在此活动中,受害者执行上述应用程序的安装程序,该程序会在系统上放置组件并创建桌面快捷方式和系统启动条目。
如果受害者尝试启动新创建的桌面快捷方式,这是预期的第一步,而不是启动应用程序,则会在系统上执行以下命令。
该命令运行重命名版本的“regsvr32.exe”(“appR.exe”)以执行重命名版本的“scrobj.dll”(“appR.dll”)并提供 DAT 文件(“appR.dat”)作为输入它。DAT 包含由脚本执行引擎库(“appR.dll”)执行的 JavaScript 代码。
JavaScript 代码在前台启动 Telegram 应用程序用户界面,同时在后台安装各种侧载组件。
接下来,安装程序使用干净的依赖项('libexpat.dll')加载第二阶段的应用程序,以加载第二个干净的应用程序作为中间攻击阶段。
在攻击的一种变体中,干净的应用程序“XLGame.exe”被重命名为“Application.exe”,第二阶段加载器也是一个干净的可执行文件,由北京百度网通科技有限公司签名。
在另一个变体中,第二阶段的干净加载程序是“KingdomTwoCrowns.exe”,它没有经过数字签名,Sophos 无法确定它除了混淆执行链之外还有什么优势。
在攻击的第三种变体中,第二阶段加载程序是干净的可执行文件“d3dim9.exe”,由惠普公司进行数字签名。
这种“双 DLL 侧载”技术实现了规避、混淆和持久化,使防御者更难适应特定的攻击模式并有效地屏蔽他们的网络。
最终有效载荷
在所有观察到的攻击变体中,最终的有效负载 DLL 从 txt 文件('templateX.txt')中解密并在系统上执行。
这个 payload 是一个支持多种命令的后门,例如系统重启、注册表项修改、获取文件、窃取剪贴板内容、在隐藏的 CMD 窗口上执行命令等等。
该后门还针对 MetaMask 加密货币钱包 Chrome 扩展程序,旨在窃取受害者的数字资产。
总之,DLL 侧载仍然是黑客的一种有效攻击方法,也是微软和开发人员十多年来未能解决的一种方法。
在最新的 APT-Q-27 攻击中,分析师观察到难以跟踪的 DLL 侧载变体;因此,他们实现了更隐蔽的感染链。