关键发现
- 通过WhatsApp分发的新型巴西银行木马"Maverick"通过包含恶意LNK文件的ZIP文件传播
- 木马使用开源项目WPPConnect通过WhatsApp Web自动化发送消息,利用被劫持账户传播
- 新木马与另一巴西银行木马Coyote存在代码相似性,但被认为是新威胁
- 木马检查时区、语言、区域和日期时间格式确保受害者在巴西
- 可完全控制受感染计算机:截图、监控浏览器、安装键盘记录器、控制鼠标、访问银行网站时锁屏、终止进程、打开钓鱼页面
- 监控26家巴西银行网站、6家加密货币交易所网站和1个支付平台
- 所有感染均为模块化且在内存中执行,磁盘活动最少,使用PowerShell、.NET和Donut加密的shellcode
- 新木马在代码编写过程中使用AI,特别是在证书解密和通用代码开发中
- 我们的解决方案在10月前10天在巴西阻止了6.2万次恶意LNK文件感染尝试
初始感染向量
感染链工作流程如下:
受害者通过WhatsApp消息收到包含恶意.LNK文件的ZIP存档。文件名可以是通用的,或伪装成银行文件。
消息内容:“仅限计算机查看。如果您使用Chrome浏览器,请选择’保留文件’,因为这是压缩文件”。
LNK编码执行cmd.exe并带以下参数:
解码后的命令指向PowerShell脚本执行:
该命令将联系C2下载另一个PowerShell脚本。值得注意的是,C2还验证HTTP请求的"User-Agent"以确保来自PowerShell命令。
入口脚本用于解码嵌入的.NET文件,所有这些仅发生在内存中。.NET文件通过将每个字节除以特定值(脚本中为"174")进行解码。PE文件被解码后作为.NET程序集加载到PowerShell进程中,使整个感染无文件化。
初始.NET加载器
初始.NET加载器使用控制流平坦化和间接函数调用进行重度混淆,将它们存储在大型函数向量中并从那里调用。除了混淆,还使用随机方法名和变量名阻碍分析。其主要流程包括下载和解密两个有效载荷。
混淆不隐藏方法的变量名,这意味着如果相同函数在其他地方重用,可以轻松重建函数。此初始阶段使用的大多数函数与银行木马最终阶段使用的函数相同。此阶段的唯一目的是从C2下载两个加密的shellcode。
WhatsApp感染器下载器
第二个Donut shellcode解密并启动后,将加载另一个使用相同混淆方法的下载器。这次它将下载PE文件而不是Donut shellcode。此PE文件是另一个.NET程序集,将作为模块加载到进程中。
此可执行文件使用的命名空间之一名为"Maverick.StageOne",被攻击者视为要加载的第一个。此下载阶段专门用于以与前一阶段相同的方式下载WhatsApp感染器。
Maverick银行木马
Maverick Banker来自与WhatsApp感染器不同的执行分支,是第二个Donut shellcode的结果。执行它没有额外的下载步骤。这是此活动的主要有效载荷,嵌入在另一个名为"Maverick Agent"的加密可执行文件中。
首次加载Maverick Banker时,它将尝试使用启动文件夹注册持久性。此时,如果持久性不存在,通过检查"Startup"目录中.bat文件的存在,它不仅检查文件存在,还执行模式匹配查看字符串"for %%“是否存在。
如果此类文件不存在,它将生成新的"GUID"并删除前6个字符。持久性批处理脚本将存储为:“C:\Users<user>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" + “HealthApp-” + GUID + “.bat”。
接下来,它将使用硬编码URL生成bat命令。
在命令生成函数中,可以看到创建全新的混淆PowerShell脚本。
Maverick代理
代理是完成银行木马大部分工作的二进制文件;它首先检查是否在位于巴西的机器上运行。为此,它将检查以下约束:
- IsValidBrazilianTimezone():检查当前时区是否在巴西时区范围内
- IsBrazilianLocale():检查当前线程的语言或区域设置是否设置为巴西葡萄牙语
- IsBrazilianRegion():检查系统配置的区域是否为巴西
- IsBrazilianDateFormat():检查短日期格式是否符合巴西标准
检查后,它将为操作系统和监视器类型启用适当的DPI支持,确保图像清晰、适合正确比例(屏幕缩放),并在具有不同分辨率的多个监视器上正常工作。
C2通信
通信使用WatsonTCP库和SSL隧道。它使用本地加密的X509证书保护通信,这是与Coyote恶意软件的另一个相似之处。连接建立到主机"casadecampoamazonas.com"端口443。
证书以加密形式导出,用于解密的密码是Maverick2025!。证书解密后,客户端将连接到服务器。
代理配置文件信息
在"INFOCLIENT"命令中,发送到C2的信息包括:
- 代理ID:所有接口使用的所有主MAC地址的SHA256哈希
- 用户名
- 主机名
- 操作系统版本
- 客户端版本(无值)
- 监视器数量
- 主页:“home"指示应使用哪个银行的主屏幕
- 屏幕分辨率
结论
根据我们的遥测数据,所有受害者都在巴西,但木马有可能传播到其他国家。该威胁非常复杂精密;整个执行链相对较新,但最终有效载荷与Coyote银行木马有许多代码重叠和相似性。代理的结构也与Coyote的操作方式不同。
Maverick很可能是使用Coyote共享代码的新银行木马,这可能表明Coyote的开发人员已经完全重构和重写了其大部分组件。
这是我们检测到的最复杂的感染链之一,旨在加载银行木马。它已感染巴西许多人,其蠕虫性质允许它通过利用非常流行的即时通讯器呈指数级传播。影响是巨大的。