TrendMicro研究人员最近发现了一种新的攻击活动,该攻击活动传播一个CredentialStealer程序,其主要代码组件使用AutoHotkey(AHK)编写。攻击者一直在寻找一种在受害计算机上执行文件并避免被发现的方法。最常见的方法之一是使用脚本语言,这种语言在受害者的操作系统中没有内置编译器,没有编译器或解释器就无法执行。Python、AutoIT和AutoHotkey(AHK)是此类脚本语言的一些示例。特别是,AHK是一种用于Windows的开源脚本语言,旨在提供简单的键盘快捷键或热键、快速微创建和程序自动化,并且AHK还允许用户从他们的代码创建“编译的”.EXE。12月中旬,研究人员发现了一个传播CredentialStealer的活动。研究人员还了解到,该活动的主要代码部分是使用AHK编写的。通过跟踪该活动的组成部分,研究人员发现其活动始于2020年初。恶意程序感染包括从恶意Excel文件开始的几个阶段。反过来,此文件包含AHK脚本编译器可执行文件、恶意AHK脚本文件和VisualBasicforApplications(VBA)AutoOpen宏。完整的攻击链如图1所示。研究人员通过遥测追踪到恶意程序的命令与控制(C&C)服务器,确定这些服务器起源于美国、荷兰和瑞典。研究人员还了解到,该恶意程序一直以美国和加拿大的金融机构为目标。释放的adb.exe和adb.ahk在这次感染中起着关键作用。adb.exe是一个合法的可移植AHK脚本编译器,其工作是在给定路径下编译和执行AHK脚本。默认情况下(不带参数),此可执行文件在同一目录中执行同名脚本。投放的AHK脚本是一个下载客户端,负责实现持久化、分析受害者、在受害者系统上下载和执行AHK脚本。为了持久化,下载器客户端在启动文件夹中为adb.exe创建一个自动运行链接,adb.exe是用于编译和执行AHK脚本的便携式编译器。默认情况下(没有任何传递的参数),此可执行文件在同一目录(在本例中为adb.ahk)中执行同名的AHK脚本。该脚本通过根据C驱动器的卷序列号为每个受害者生成一个唯一的ID来分析每个用户。然后恶意程序进入无限循环并开始每五秒发送一次带有生成的ID的HTTPGET请求。此ID用作其命令和控制(C&C)服务器的请求路径,以在受感染的系统上检索和执行AHK脚本。为了执行命令,这个恶意程序接受各种AHK脚本,每个受害者都有不同的任务,并使用相同的C&CURL执行它们,而不是在一个文件中实现所有模块并接受命令来执行命令。通过这样做,攻击者可以决定上传特定脚本来为每个用户或用户组执行自定义任务。这也可以防止主要组件暴露,尤其是暴露给其他研究人员或沙箱。事实上,沙箱尚未检测到任何命令,尽管研究人员指出此类攻击早在2020年初就开始了。这表明攻击要么选择何时将命令实际发送到受感染的受害者计算机,要么C&C服务器的快速变化使其难以追踪。到目前为止,研究人员已经发现了五个C&C服务器和两个命令:deletecookies和passwords。恶意程序的攻击链在下载的客户端下载组件中,研究人员观察到一个用AHK编写的CredentialStealer。该脚本负责从各种浏览器收集凭据并将其泄露给攻击者。值得注意的是,此CredentialStealer的变体针对特定网站。其中包括加拿大的主要银行,如图2所示。加拿大银行客户信息泄露的一个有趣方面是AHK提供了脚本,其中包含俄语说明。这表明攻击链的创建背后有一个“黑客雇佣”组织。以下部分详细描述了图1中所示的攻击链。恶意组件分析如果用户启用宏来打开Excel文件,VBAAutoOpen宏将通过可移植的AHK脚本编译器投放并执行AHK下载程序客户端脚本。Excel文件中的VBA下载器默认情况下,已删除的便携式AHK脚本编译器adb.exe在同一目录中执行同名的AHK脚本。在这种情况下,adb.exe会自动检测并执行adb.ahk脚本。AHKDownloaderScript如前所述,adb.ahk是一个下载器客户端,负责持久化、分析受害者,并每隔五秒在受害者系统中持续下载和执行AHK脚本。恶意程序向其C&C服务器发送HTTPGET请求,以在受感染的计算机上下载并执行AHK脚本。AHK下载器发送的HTTPGET请求服务器的响应会保存到一个名为adb.exe~的文件中,这是一个AHK纯文本脚本,不是可执行文件。图5中的HTTPGET请求路径是受害者的唯一ID,格式如下:需要注意的是,在一些其他变体中,“-xl2”被替换为“-pro”。在adb.ahk执行下载的AHK脚本之前,它首先检查文件末尾是否存在特定字符(“~”)。如果找到该字符,则继续执行。此外,恶意程序在启动文件夹中创建一个自动运行链接,该链接指向名为“GraphicsPerfSvc.lnk”的adb.exeAHK脚本编译器。如前所述,默认情况下,编译器会执行具有相同名称和目录的AHK脚本。CredentialStealer最后一行分析CredentialStealer下载器客户端下载的脚本之一是浏览器凭据窃取器。在接下来的章节中,研究人员将研究该恶意脚本的实现、功能和网络通信。成功执行后,恶意软件会通过HTTPPOST请求向C&C服务器发送状态日志(“密码:加载”):恶意软件发送的状态日志与adb相同。受害者生成一个唯一的ID。然后使用生成的唯一受害者ID来跟踪感染,并且对每个受害者始终保持相同。CredentialStealer然后尝试在受害者计算机上下载“sqlite3.dll”。恶意程序使用此DLL对浏览器应用程序文件夹中的SQLite数据库执行SQL查询。CredentialStealer下载sqlite3.dll并发送执行状态从上面的代码片段中,研究人员可以看到恶意软件再次检索了C盘的卷序列号,并搜索了两个硬编码序列号605109072和605109072。这两个序列号已被使用出于调试目的,脚本在退出时在消息框中显示SendLog()函数参数。值得注意的是,这种调试技术也出现在这个脚本的各种功能中。值得注意的是,恶意程序作者使用如下开源代码通过AHK对SQLite数据库进行处理。AHK的开源SQLite类该恶意程序的主要目的是从MicrosoftEdge、GoogleChrome、Opera、Firefox和InternetExplorer(IE)等各种浏览器窃取凭据。为了完成这个任务,恶意软件使用了以下功能:CredentialStealer功能下图演示了上述功能的执行:Chrome、Edge和Opera浏览器相关功能概述Firefox窃取器功能概述IE窃取器功能概述恶意软件将识别安装在受害计算机中的浏览器,并通过SendLog()函数将其发现报告给其C&C服务器。如果目标浏览器没有安装,则恶意软件将其标记为“not_found”:可以看出,恶意软件向C&C服务器发送“Opera_not_found”是因为它在已安装的浏览器中没有找到Opera。另一方面,如果目标浏览器在受害计算机中,恶意程序会将其标记为“_ok”,如下图所示:由于Chrome是安装的浏览器之一,恶意程序会发送“Chrome_ok”到C&C服务器。以下代码片段演示了恶意程序如何搜索Chrome、Edge和Opera登录数据。恶意程序找到已安装的浏览器对于InternetExplorer密码窃取器,开发人员从开源的IE密码信息窃取器中借用了一些代码并将其转换为AHK。IEStealerDataExfiltration最终,恶意程序通过HTTPPOST请求向攻击者发送它从安装在受害者计算机上的浏览器中收集到的凭据。值得注意的是,对于每个浏览器,恶意软件都会尝试解密凭证并将它们以纯文本形式发送给C&C。CredentialLeakage示例CredentialLeakage关于此活动的另一个有趣的事情是,下载的组件在代码级别组织得非常好。这些下载的组件还有主要功能和变量的注释格式的使用说明。因此,此行为可能表明此代码不仅可供其开发人员使用,还可以作为服务或独立对象供其他人使用。总结恶意程序的感染包括从恶意Excel文件开始的多个阶段。如果用户启用了打开Excel文件的宏,VBAAutoOpen宏将通过合法的便携式AHK脚本编译器删除并执行下载客户端脚本。下载器客户端负责持久化、分析受害者,并在受害者系统上下载并执行AHK脚本。恶意程序不是从C&C服务器接收命令,而是下载并执行AHK脚本来执行不同的任务。下载的脚本是适用于GoogleChrome、Opera、Edge等各种浏览器的CredentialStealer。CredentialStealer从浏览器收集和解密凭据,然后通过HTTPPOST请求将信息泄露到攻击者的服务器。事实上,攻击者已经能够通过在受害者的操作系统中使用缺乏内置编译器的脚本语言,加载恶意组件来单独完成各种任务,并对C&C服务器进行频繁更改,从而向沙箱隐藏他们的意图。IOCs本文翻译自:https://www.trendmicro.com/en_us/research/20/l/stealth-credential-stealer-targets-us-canadian-bank-customers.html
