译者:知道创宇404实验室翻译组
原文链接:https://www.trendmicro.com/en_us/research/20/l/stealth-credential-stealer-targets-us-canadian-bank-customers.html

前言

攻击者总是在寻找一种方法来执行受害者机器上的文件,并且希望不被发现。一种方法是使用一种脚本语言。如果受害者的操作系统中没有内置的编译器或解释器,那么这种脚本语言就无法执行。Python、AutoIT和AutoHotkey(AHK)就属于这种脚本语言。特别是,AHK是一种面向Windows的开源脚本语言,旨在提供简单的键盘快捷方式或热键、快速的微创建以及软件自动化。AHK还允许用户使用代码创建一个compiled.EXE文件。

12月中旬,我们发现了一个散布盗用证书的活动。这个活动的主要代码组件是用AHK编写的。跟踪发现,这个活动从2020年初就开始了。恶意软件感染由多个阶段组成,这些阶段以恶意Excel文件开始。反过来,此文件包含AHK脚本编译器可执行文件、恶意AHK脚本文件和Visual Basic for Applications(VBA)AutoOpen宏。完整的攻击链如图1所示。我们跟踪了恶意软件的命令和控制(C&C)服务器,并确定这些服务器来自美国、荷兰和瑞典。我们还了解到,该恶意软件一直针对美国和加拿大的金融机构。

删除的adb.exe以及adb.ahk在此感染中起关键作用。这个adb.exe是一个合法的可移植AHK脚本编译器,在给定的路径上编译和执行AHK脚本。默认情况下(不带参数),此可执行文件在同一目录中执行同名脚本。删除的AHK脚本是一个下载程序客户端,负责实现持久性、分析受害者,并在受害者系统上下载和执行AHK脚本。

为了保持持久性,下载客户端在startup文件夹中为adb .exe创建一个自动运行链接。这个可移植编译器用于编译和执行AHK脚本。默认情况下(没有传递参数),这个可执行文件在同一个目录中执行一个同名的AHK脚本(本例中为adb.ahk)。

该脚本通过C驱动器的卷序列号为每个受害者生成唯一的ID来分析每个用户。然后,恶意软件会经历一个无限循环,并开始每隔五秒发送一个带有生成ID的HTTP GET请求。此ID用作其命令和控制(C&C)服务器的请求路径,以便在受感染的系统上检索和执行AHK脚本。

为了执行命令,该恶意软件为每个受害者接受不同任务的各种AHK脚本,并使用相同的C&C URL执行这些脚本(而不是在一个文件中实现所有模块并接受执行它们的命令)。这样,攻击者可以决定上传特定的脚本,以实现每个用户或用户组的自定义任务。这也防止了主要成分被公开披露。尽管我们注意到这次攻击早在2020年初就开始了,但是沙盒仍然没有发现一个命令。这表明,要么是攻击者选择了何时向受感染的受害者计算机发送命令,要么是C&C服务器的快速变化使得跟踪变得困难。到目前为止,我们已经发现了五个C&C服务器和两个命令:deletecookiespasswords

图1.恶意软件的攻击链

在下载程序客户端下载的组件中,我们发现了一个用AHK编写的窃取脚本。此脚本负责从各种浏览器获取凭据并将其过滤给攻击者。值得注意的是,这种脚本的变种可以针对特定的网站。其中包括加拿大的主要银行,如图2所示。

图2.加拿大银行的客户属于渗透的目标凭证

有趣的是,AHK提供了脚本,其中包含俄语的使用说明。这表明在创建攻击链的背后是“雇用黑客”组织。下面我们将描述图1中所示的攻击链的详细信息。

恶意组件分析

如果用户启用了宏以打开Excel文件,那么VBA AutoOpen宏将删除并通过可移植的AHK脚本编译器执行AHK下载程序客户端脚本。

图3. Excel文件中的VBA dropper

默认情况下,已删除的可移植AHK脚本编译器adb.exe在同一目录中执行具有相同名称的AHK脚本。在这种情况下,adb.exe自动检测并执行adb.ahk脚本。

图4. AHK下载器脚本

如前所述,adb.ahk是一个下载客户端,它负责持久性,对受害者进行性能分析,以及每五秒钟连续在受害者系统中下载和执行AHK脚本。该恶意软件向其C&C服务器发送HTTP GET请求,以便在受感染的计算机中下载并执行AHK脚本。

图5. AHK下载器发送的HTTP GET请求

服务器的响应将保存到名为adb.exe〜的文件中(adb.exe〜是AHK纯文本脚本;不是可执行文件)。图5中的HTTP GET请求路径是受害者的唯一ID,其格式如下:

需要注意的是,在其他一些变体中,-xl2被替换为-pro。在adb.ahk执行下载的AHK脚本之前,它将首先检查文件的末尾是否存在特定字符(“〜”)。如果找到该字符,则继续执行。

此外,该恶意软件还会在启动文件夹中创建一个自动运行链接,该链接指向名为GraphicsPerfSvc.lnkadb.exe AHK脚本编译器。如前所述,默认情况下,编译器执行具有相同名称和目录的AHK脚本。

图6.有效窃取程序的最后一行

偷窃程序分析

下载器客户端下载的脚本之一是浏览器凭据窃取程序。下面,我们将研究此恶意脚本的实现、功能以及网络通信。

成功执行后,恶意软件会通过HTTP POST请求向其C&C服务器发送状态日志(“passwords: load”):

图7.恶意软件发送状态日志

adb.ahk一样,此脚本还会根据C驱动器的卷序列号为其受害者生成唯一的ID。生成的唯一受害者ID用于跟踪感染,并且对于每个受害者始终保持相同。

然后,窃取程序尝试在受害计算机上下载sqlite3.dll。恶意软件使用此DLL对浏览器的应用程序文件夹中的SQLite数据库执行SQL查询。

图8.窃取程序下载sqlite3.dll并发送执行状态

从上面的代码段中,我们可以看到恶意软件再次检索了C驱动器的卷序列号,并搜索了两个硬编码的序列号605109072和605109072。这两个序列号用于调试。退出时,脚本在消息框中显示SendLog()函数参数。值得注意的是,这种调试技术也可在此脚本的各种函数中看到。

攻击者使用以下开源代码通过AHK处理SQLite数据库。

图9. AHK的开源SQLite类

该恶意软件的主要目的是从各种浏览器(例如Microsoft Edge、Google Chrome、Opera、Firefox和Internet Explorer(IE))中窃取凭据。为了实现此任务,恶意软件使用以下功能:

图10.窃取程序功能

下图演示了上述功能:

图11.与Chrome,Edge和Opera浏览器相关的功能概述

图12. Firefox窃取程序功能概述

图13. IE窃取程序功能概述

该恶意软件会识别受害计算机中安装的浏览器,并通过SendLog()函数将其发现并报告给C&C服务器。如果未安装目标浏览器,恶意软件会将其标记为not_found

图14.在此图像中,恶意软件将“Opera_not_found”发送到C&C服务器,因为它在已安装的浏览器中找不到Opera

另一方面,如果目标浏览器在受害计算机中,则恶意软件将其标记为“_ok”,如下图所示:

图15.由于Chrome是已安装的浏览器之一,因此恶意软件会将“Chrome_ok”发送到C&C服务器

以下代码演示了恶意软件如何搜索Chrome、Edge和Opera的登录数据。

图16.恶意软件找到已安装的浏览器

对于Internet Explorer密码窃取程序,我们从开放源IE密码信息窃取程序中借用了一些代码,并将其转换为AHK。

图17. IE窃取程序

数据过滤

最终,恶意软件通过HTTP POST请求从受害者计算机上已安装的浏览器中收集到的凭据发送给攻击者。值得注意的是,对于每个浏览器,恶意软件都会尝试解密凭据并将其作为纯文本发送到C&C。

图18.凭证泄露的示例

图19.凭证泄露

另外,下载的组件在代码级别上十分有序。这些下载的组件还具有注释格式的主要功能和变量的使用说明。因此,这表明此代码不仅为攻击者所用,还可能被其他人以服务或独立实例使用。

总结

恶意软件感染包括以恶意Excel文件开始的多个阶段。如果用户允许宏打开Excel文件,则VBA AutoOpen宏将删除并通过合法的可移植AHK脚本编译器执行下载程序客户端脚本。下载器客户端负责实现持久性,分析受害人以及在受害人系统中下载和执行AHK脚本。该恶意软件没有从C&C服务器接收命令,而是下载并执行AHK脚本来执行不同的任务。下载的脚本是针对各种浏览器(例如Google Chrome、Opera、Edge等)的窃取程序。窃取程序从浏览器收集和解密凭据,并通过HTTP POST请求将信息泄露到攻击者的服务器。

事实上,通过在受害者的操作系统中使用缺少内置编译器的脚本语言,分别加载恶意组件来完成各种任务,并频繁地更换C&C服务器,攻击者可以在沙盒中隐藏他们的意图。

IOCs

SHA 256 Description Detection
a1f2606102e59bbc1a6de8912378821e83c32f31f6a402e8f3993ef966746b07 Stealer module TrojanSpy.AHK.CREDSTEALER.A
dd3087a377ee3d1959f6c17b1b13e5972d1783dfd708bd084150e44c30e3af6e Stealer module TrojanSpy.AHK.CREDSTEALER.A
d8483908dc0a18c4b51bfe962279816c910fedbad1961e5c5ed081c250cc5f76 Stealer module TrojanSpy.AHK.CREDSTEALER.A
1994f37501d7fc3038129db09babc5ef67d5ab4c93a95b3b59bf2b5ffa1592ff Stealer module TrojanSpy.AHK.CREDSTEALER.A
0078c476753613a78ff9e8f621fd28c1279c0981d519c44212b9d02e5fb4c81c Stealer module TrojanSpy.AHK.CREDSTEALER.A
bed925d7c0af493c9ccd2828d6fdefe6f4255bada51f645a8fffdd67e24b87fd Excel file
27d9eb869eea6c713c6f109eca867844e2feceb0783bda2b78f7a92dffc833f6 Excel file
IPs Description
93.115.23.48(ZoomEye搜索结果 C&C server
94.103.94.186(ZoomEye搜索结果 C&C server
2.56.215.97(ZoomEye搜索结果 C&C server
199.192.29.202(ZoomEye搜索结果 C&C server
5.39.223.162(ZoomEye搜索结果 C&C server

Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1432/