银行木马恶意软件的开发人员不断寻找创造性的方法来分发其植入程序并感染受害者。在最近的一项调查中,我们遇到了一种新的恶意软件,该恶意软件专门针对 60 多家银行机构的用户,其中主要来自巴西。引起我们注意的是利用各种先进技术的复杂感染链,使其与已知的银行木马感染区分开来。
该恶意软件利用Squirrel安装程序进行分发,利用NodeJS和一种名为Nim的相对较新的多平台编程语言作为加载程序来完成其感染。由于郊狼是松鼠的天敌,我们将这种新发现的特洛伊木马命名为“郊狼”。Nim 语言将自己定义为“静态类型编译系统编程语言,结合了 Python、Ada 和 Modula 等成熟语言的成功概念”。我们认为网络犯罪分子采用不太流行/跨平台语言是2024 年犯罪软件和金融网络威胁的趋势。
在本文中,我们将深入研究感染链的工作原理并探索该木马的功能。
忘记旧的 Delphi 和 MSI
在银行木马领域,使用 Delphi 语言或 MSI 安装程序是恶意软件创建者中反复出现的趋势。网络安全界众所周知的事实是,这种方法是广泛使用的初始感染媒介。
Coyote 的做法略有不同。它没有采用 MSI 安装程序的常规方法,而是选择了一种相对较新的工具来安装和更新 Windows 桌面应用程序:Squirrel。正如作者所解释的,“ Squirrel 使用 NuGet 包来创建安装和更新包,这意味着您可能已经了解创建安装程序所需的大部分内容。”
Coyote感染链
通过使用此工具,Coyote 通过将其呈现为更新打包程序来隐藏其初始阶段加载程序。
恶意松鼠安装程序内容
Node.js 加载器脚本
当 Squirrel 执行时,它最终会运行一个用 Electron 编译的 NodeJS 应用程序。该应用程序执行模糊的 JavaScript 代码 ( preload.js ),其主要功能是将名为temp的本地文件夹中找到的所有可执行文件复制到 Videos 文件夹内的用户的captures文件夹中。然后它从该目录运行签名的应用程序。
NodeJS 项目结构
已识别出多个正在使用的可执行文件,包括与 Chrome 和 OBS Studio 相关的可执行文件。Banker 是通过这些可执行文件的依赖项的 DLL 旁加载来加载的。在我们团队分析的所有情况下,DLL 旁加载都发生在libcef.dll库中。
The Nim loader
感染链中一个有趣的元素是使用 Nim(一种相对较新的编程语言)来加载最后阶段。加载程序的目标是解压 .NET 可执行文件并使用 CLR 在内存中执行它。这意味着加载程序的目标是加载可执行文件并在其进程中执行它,这让人想起Donut 的操作方式。
解压后的 .Net 可执行文件
值得注意的是,每次计算机重新启动时都会使用相同的入口点obs-browser-page.exe,作为持久性的一种手段。
最后但并非最不重要的一点是 Coyote 银行木马
经过以上步骤,木马就成功执行了。Coyote 没有实现任何代码混淆,仅使用 AES 加密的字符串混淆。
加密字符串建表
要检索特定字符串,它会以字符串索引作为参数调用解密方法。解密方法通过创建一个 Base64 编码数据表来工作。每个解码数据项的前 16 个字节用作IV(初始向量),其余部分是稍后在 AES 解密例程中使用的加密数据。
加密数据结构
密钥由每个可执行文件随机生成,AES 解密算法使用官方 .Net 加密接口。通过这种方法,对于 Coyote 需要的每个字符串访问,它会在表内搜索并使用自定义IV解密每个字符串。
坚持和目标
Coyote 通过滥用 Windows 登录脚本来实现持久化;它首先检查HKCUEnvironmentUserInitMprLogonScript是否存在,如果存在,它将插入注册表值作为签名应用程序的完整路径,在本例中为obs-browser-page.exe。
Coyote 特洛伊木马的目标与典型的银行特洛伊木马行为一致。它监视受害者系统上所有打开的应用程序,并等待访问特定的银行应用程序或网站。
应用程序监控例程
在我们的分析中,我们发现了至少 61 个相关申请,全部来自巴西。这强烈表明 Coyote 确实是巴西银行木马,其行为与我们之前在Tetrade博客文章中报道的行为类似。
C2通讯与控制
当执行和使用任何与银行相关的应用程序时,Coyote 银行家会联系 C2 并提供此信息。然后,C2 对机器上的各种操作做出响应,从键盘记录到截取屏幕截图。以下部分将解释与攻击者服务器的通信。
该特洛伊木马使用具有相互身份验证方案的 SSL 通道与其命令和控制服务器建立通信。这意味着该木马拥有来自攻击者控制的服务器的证书并在连接过程中使用它。
该证书以加密格式存储为资源,由 .Net 的 X509 库解密。一旦恶意软件验证确实与攻击者建立了连接,它就会将从受感染的计算机和银行应用程序收集的信息发送到服务器。传输的信息包括:
机器名称
随机生成的 GUID
正在使用的银行应用程序
利用此信息,攻击者发送包含特定操作的响应数据包。为了处理这些操作,攻击者传输带有随机分隔符的字符串。然后,字符串的每个位置都会转换为列表,其中第一个条目代表命令类型。
为了确定所需的命令,它检查第一个参数中字符串的长度,该参数是一个随机字符串。换句话说,命令之间的唯一区别是字符串的大小。
最重要的可用命令是:
该特洛伊木马还可以请求特定的银行卡密码并创建网络钓鱼覆盖层以捕获用户凭据。
结论
Coyote 标志着巴西银行木马的显着变化。与通常使用 Delphi 等旧语言的同行不同,Coyote 背后的开发人员精通 Node.js、.NET 等现代技术和高级打包技术。
添加 Nim 作为加载程序增加了特洛伊木马设计的复杂性。这种演变凸显了威胁环境日益复杂,并展示了威胁行为者如何在其恶意活动中适应和使用最新的语言和工具。
我们的遥测数据显示,高达 90% 的感染源自巴西。所有卡巴斯基产品均将威胁检测为HEUR:Trojan-Banker.MSIL.Coyote.gen。
参考 IoC(妥协指标)
基于主机(MD5 哈希)
03 eacccb664d517772a33255dff96020
071b6efd6d3ace1ad23ee0d6d3eead76
276f14d432601003b6bf0caa8cd82fec
5134e6925ff1397fdda0f3b48afec87b b
f9c9cc94056bcdae6e579e724e8dbbd
C2 域名列表
atendesolucao[.]com
servicoasso[.]com
dowfinanceiro[.]
comcentralsolucao[.]com
traktinves[.]com
diadaacaodegraca[.]com
segurancasys[.]com
参考链接: https://securelist.com/coyote-multi-stage-banking-trojan/111846/#reference-iocs-indicators-of-compromise
图片来源网络目标可联系删除