新型银行木马通过WhatsApp传播的技术分析

2 阅读14分钟

技术分析

研究人员近期发现了一种被称为Eternidade Stealer的新型银行木马,它通过WhatsApp劫持和社会工程诱饵进行传播。此次活动中,威胁行为者部署了Python脚本,这与之前基于PowerShell的脚本相比是一个转变。

Delphi因其技术效率及区域熟悉度,仍然是该地区网络犯罪生态系统的基石。它能够快速开发本机Windows可执行文件,易于分发、混淆并与系统API集成,这些特性使其成为隐蔽、独立恶意软件的理想选择。

攻击链

该活动始于一个经过混淆的VBScript,其大部分注释为葡萄牙语。脚本执行后,会释放一个批处理文件,用于下载并执行载荷:一个用于传播的WhatsApp蠕虫和一个部署基于Delphi的银行木马的MSI安装程序。

载荷从威胁行为者的C2服务器下载。活动中使用的WhatsApp蠕虫由Python编写,与最近报告的PowerShell变体形成对比。下载器还会安装必要的Python依赖项,以确保载荷成功运行。

WhatsApp传播蠕虫

文件哈希:SHA-256:6168d63fad22a4e5e45547ca6116ef68bb5173e17e25fd1714f7cc1e4f7b41e1

这是一个超过1300行的Python脚本(whats.py),旨在自动化WhatsApp消息发送、窃取联系人列表并分发恶意文件。

脚本顶部直接显示了其意图,即建立C2通信并为受感染的机器生成唯一的会话ID用于追踪。

窃取WhatsApp联系人:核心功能

该活动的关键功能是“obter_contatos()”,它允许恶意软件窃取受害者的整个WhatsApp联系人列表。其执行的JavaScript代码显示,它利用“wppconnect-w.js”库中的“WPP.contact.list()”函数,该库提供了对WhatsApp Web的程序化访问接口。恶意软件会从GitHub下载此库。

该恶意软件会过滤掉群组(‘@g.us’)、商业联系人(‘@lid’)和广播列表,从而优化攻击,专注于更可能落入钓鱼圈套的个人联系人。

恶意软件为每个联系人提取以下信息:

  • 完整的WhatsApp ID(带有‘@c.us’后缀的电话号码)
  • 联系人姓名(备选值:‘name’, ‘pushname’, ‘shortname’)
  • 纯净的电话号码
  • 是否为已保存的联系人

数据外泄:发送被盗联系人至C2

联系人被窃取后,Python代码会立即调用“enviar_contatos_para_servidor()”,将数据发送至C2服务器。每个联系人都包含受害者的电话号码和姓名。数据通过HTTP POST以纯文本形式发送(虽然使用了HTTPS,但数据本身未加密)。

使用的消息模板

消息问候语会根据发送时间自动调整(“bom dia”、“boa tarde”和“boa noite”,分别对应早上好、下午好和晚上好),并使用联系人的真实姓名,模仿合法的商业通信。攻击者可以通过C2服务器远程更改消息模板。

恶意软件分发:攻击向量

恶意软件从C2服务器下载恶意文件,并将Base64编码转换为二进制。然后,它会向所有联系人发送一条消息,包含个性化问候语、一个恶意文件以及一条后续消息。它使用waitForAck: false来加速发送并避免检测。

MSI下载器

Eternidade Stealer通过恶意的MSI安装程序传播,该程序会释放多个组件,包括加密载荷和一个AutoIt脚本加载器。

恶意软件仅通过检查操作系统语言来定位巴西受害者。如果系统未检测到巴西葡萄牙语,则会显示错误信息并中止执行。

该脚本枚举正在运行的进程和注册表卸载项,以检测已安装的安全产品。它还利用WMI来枚举杀毒软件、防火墙和反间谍软件产品,收集可读的名称用于决策或记录。

它包含收集系统遥测信息、通过api.ipify.org调用获取外部IP以及收集本地IP的功能。

函数OBTERINFOADICIONAL()充当系统信息收集例程,收集基本主机信息并将其格式化为单个可读字符串。它首先查询Windows注册表以获取操作系统产品名称,然后从硬件描述键中收集处理器型号。接着,使用WMI访问Win32_ComputerSystem类来计算物理内存总量(以GB为单位)。最后,它从系统环境中捕获当前登录域,以指示主机是否属于企业网络或本地域。

随后,恶意软件通过POST方法将收集到的系统信息发送到其C2服务器 hxxps://itrexmssl[.]com/jasmin/altor/receptor[.]php

收集的信息包括:

  • 计算机名
  • 操作系统版本和构建号
  • 用户名
  • 本地和公共IP地址
  • 当前日期和时间
  • 已安装的杀毒软件、防火墙和反间谍软件及其状态

该样本展示了清晰且高度本地化的目标定位逻辑。它会持续扫描活动窗口和运行进程,查找与巴西银行门户、金融科技服务和加密货币平台相关的字符串。当检测到匹配项(例如,与Bradesco、BTG Pactual、Binance、Coinbase、MetaMask、Trust Wallet或其他金融品牌相关的窗口标题或进程名称)时,恶意软件会立即解密并激活其下一阶段载荷。这种行为反映了典型的银行木马或覆盖式窃密策略,恶意组件会潜伏休眠,直到受害者打开目标银行或钱包应用程序,确保攻击仅在相关情境下触发,并对普通用户或沙箱环境保持不可见。

载荷解密

恶意软件在安装文件夹中搜索.tda或.dmp文件。如果找到.tda文件,它会首先加载该文件,使用自定义流密码进行解密,并使用LZNT1解压缩,然后在内存中运行。值得注意的是,该自定义流密码与之前在其他银行木马中观察到的类似。

注入器载荷

解密后的.tda文件是一个用Delphi编译的注入器,它执行进程镂空以运行最终载荷。注入器读取.dmp文件,使用上述相同的例程解密,并将Eternidade Stealer载荷注入到svchost.exe进程中。

Eternidade Stealer

Eternidade Stealer是一个用Delphi编译的凭据窃取程序,用于收集敏感数据并与受感染主机保持活动连接。

执行时,它首先检查注册表项“HKEY_CURRENT_USER\Software\MeuApp”以及值“Inicio”是否存在。这用作感染标记,以确定其是否曾在机器上运行过。如果不存在,它会收集计算机名和处理器信息等系统信息,并通过HTTP POST方法发送到某服务器。然后,它创建注册表项“MeuApp”并将“Inicio”的值设置为True。

接着,它通过“EnumWindows” API枚举所有窗口,收集窗口标题、类名和可执行路径等属性。

从枚举的窗口中,窃取程序专门查找与巴西银行、支付服务和加密货币钱包/交易所相关的应用程序,以进行凭据窃取。

如果找到匹配项,恶意软件会建立与C2服务器的连接。该恶意软件的一个显著特点是使用硬编码的凭据登录其电子邮件账户,从中检索其C2服务器。这是一种非常巧妙的更新C2、维持持久性以及在网络层面规避检测或取缔的方法。如果恶意软件无法连接到电子邮件账户,则使用硬编码的备用C2地址。

从电子邮件检索C2服务器的过程如下:

  1. 使用硬编码凭据通过SSL(端口993)连接到IMAP服务器。
  2. 选择邮箱(在此样本中为“John”)。
  3. 检索最新邮件的标题。
  4. 按以下格式拼接邮件主题、发件人和收件人:Assunto: <主题>De: <发件人邮箱地址>Para: <收件人邮箱地址>
  5. 搜索字符串“ip:”并提取C2地址。
  6. 如果未找到,则检索邮件正文并重复检查过程。
  7. 如果仍未找到,则使用备用C2地址(在此样本中为“domimoveis1[.]com.br”)。

在调查期间,研究人员观察到一些样本关联的电子邮件账户未启用双因素认证,允许仅使用硬编码凭据进行访问。利用这些凭据,研究人员成功登录了威胁行为者的账户,并验证了分析中观察到的行为。

后门命令和功能

研究人员还观察到用于C2通信的多个加密字符串。这种混淆延迟了静态分析,并有助于样本规避基于静态和签名的检测。

解密例程使用硬编码密钥“edit1”和盐值“MeuSaltPessoal#2024”。详细解密步骤如下:

  • 提取十六进制值 [0-9a-fA-F]。
  • 将十六进制字符串转换为字节数组。
  • 从每个字节中减去5。
  • 使用盐值和密钥应用循环XOR。

解密这些字符串后,发现恶意软件使用多个命令与C2服务器通信。恶意软件等待来自C2的传入消息,并解析它们以确定运行哪个函数。它实现了多个套接字,每个套接字专用于特定功能。

C2发送的命令格式如下:

以下是样本中观察到的一些命令:

  • <|SocketMain|>:当恶意软件收到此命令时,会提取封装的唯一标识符(受害者机器标识)并保存。用于在向C2发送信息时跟踪单个主机。
  • <|OK|>:从受感染主机收集检测到的银行、计算机系统名、注册用户、操作系统名称和架构、已安装的杀毒软件及最后更新时间、处理器、内存等信息,并以特定格式发送回C2。
  • <|PING|>:这是一个核心C2命令,用于持续监控用户活动并确定服务器接下来应发送哪个恶意功能。收到命令后,恶意软件回复<|PONG|>,休眠100毫秒,并以指定格式报告当前活动窗口,告知威胁行为者受感染主机正在使用哪个应用程序。
  • <|PedidoSenhas|>:此命令允许威胁行为者发送用于窃取凭据的定制覆盖层。它会发送此命令以及特定参数,根据受害者正在访问的窗口,在合法银行窗口上创建虚假的密码输入字段和提交按钮。
  • <|CE_ASSI|><|CE_TRANS|><|CB_SEN|>:恶意软件还实现了针对某巴西银行和某巴西银行的隐藏银行覆盖层。

还观察到的其他命令包括:激活键盘记录功能、发送截图或文件以及其他功能。

研究人员通过分析找到了在VirusTotal上上传的类似样本。识别出的类似恶意软件最早可追溯到2025年1月,其中一个样本由研究员在某社交平台分享。发现的命令和功能相似,但早期变体缺少IMAP功能并使用硬编码C2地址。这些相似性表明同一威胁行为者发起了此次活动并持续开发该恶意软件。

恶意软件面板

从初始URL“serverseistemasatu[.]com”,研究人员识别出具有相似ASN和响应头的IP地址集群,并分析了托管在这些IP地址上的相关域名。

在其中一个域名上,发现了威胁行为者的额外面板:一个用于管理重定向系统,另一个是登录面板,可能用于监控受感染主机。

重定向系统面板包含日志,显示尝试连接到C2地址的总访问量和拦截量。访问仅限于位于巴西和阿根廷的机器。任何被拦截的连接都会被重定向到某搜索引擎的错误页面。在记录的453次访问中,有451次由于系统强制执行的地理位置限制而被拦截。

面板的统计部分提供了对潜在受害者与其交互情况的更广泛了解。总共记录了454条通信记录,反映了来自广泛地理位置的连接尝试。虽然无法确认每条记录都代表与此活动直接相关的活跃感染,但数据的数量和多样性强烈表明,重定向模块被全球范围内的潜在受害者访问或探测,而不仅仅是在主要目标区域内。

通信总共来自38个国家,其中活动最高的是美国(196次连接),其次是荷兰(37次)、德国(32次)、英国(23次)和法国(19次)。只有两次通信被成功重定向到活动的目标域名。仅从巴西IP地址发起了三次连接,这意味着尽管该恶意软件家族和传播媒介主要是巴西的,但可能的运营足迹和受害者暴露范围要全球性得多。

操作系统统计数据表明,在记录的454次通信中,主要是基于桌面的暴露模式。大多数连接(182次,40%)源自未知操作系统类型,表明用户代理数据不完整或被混淆,可能来自自动化工具或匿名代理。Windows系统占115次连接(25%),其次是macOS(94次,21%),而Linux代表45次连接(10%),Android仅18次(4%)。这些统计数据证实基础设施主要由桌面用户联系,强化了活动针对工作站环境而非移动端点的假设,并表明潜在受害者的生态系统是混合的且具有全球传播性。

在配置选项卡中,面板显示了重定向(用于允许和拦截的连接)、允许的国家以及每个IP的连接数的设置。它还包括用于启用反机器人保护、拦截VPN和代理、拦截托管服务器、拦截可疑IP、拦截空或非浏览用户代理以及其他相关保护的复选框。

还有一个输入字段,用于输入始终允许连接的IP地址列表,绕过所有其他检查。

结论

Eternidade Stealer是一种活跃的、不断演变的威胁,凸显了两个令人担忧的趋势:越来越多地使用WhatsApp作为传播媒介,以及恶意软件的持续发展,包括动态的基于IMAP的C2检索、改进的规避技术以及针对巴西受害者的地理围栏。网络安全防御者应对可疑的WhatsApp活动、意外的MSI或脚本执行以及与此持续活动相关的指标保持警惕。

入侵指标(IOC)

VBS:

  • e1779d9810ad39a45759c856cc85f1148a8f6601
  • e3e24d57163e04ac16a93a698d4c8051473bccb4

Whats.py:

  • 8f3b5a0cecd4d50fc6eb52a627fe6a9179e71736
  • 167cc2d716bfebc440f14ff1affe7f99b8556f2e

Payload:

  • db5545b6136f1197fd5234695cdeff285a99208e
  • 03944933d662f4e96d43750aa29bd287685c6007

域名:

  • hxxps://varegjopeaks[.]com/altor/teste_obscado[.]vbs
  • hxxp://varegjopeaks[.]com/altor/whats.py
  • hxxp://centrogauchodabahia123[.]com/altor/installer[.]msi
  • hxxp://varegjopeaks[.]com/altor/installer[.]msi
  • hxxps://itrexmssl[.]com/jasmin/altor/receptor[.]php
  • hxxps://alentodolcevitad[.]com/admin[.]php
  • miportuarios[.]com
  • mazdafinancialsevrices[.]com
  • adilsonralfadvocaciad[.]com
  • domimoveis1[.]com[.]br
  • serverseistemasatu[.]com

IP地址:

  • 104.21.48[.]41
  • 162.120.71[.]56
  • 185.169.234[.]139
  • 83.229.17[.]71
  • 140.99.164[.]172
  • 174.138.187[.]2/