受影响的平台:Microsoft Windows;
受影响方:Windows用户;
影响:从受害者的电脑中收集敏感信息;
严重性级别:严重;
FortiGuard实验室捕捉到了一个网络钓鱼活动,该活动传播了一种新的AgentTesla变体。这个著名的恶意软件家族使用基于.Net的远程访问木马(RAT)和数据窃取程序来获得初始访问权限,它通常用于软件即服务(MaaS)。
AgentTesla源于2014年的一款键盘记录产品,演变至今,俨然成为了黑客专门用来窃密的工具软件。经过不断迭代,AgentTesla覆盖面越来越广,功能也越来越强。
AgentTesla变体攻击了浏览器、FTP、VPN、邮箱、通讯软件、下载工具、数据库等。反分析功能上又增加了反沙箱、反虚拟机以及反windows defender的相关功能,同时诱饵文件使用了多层或分批解密,大大增加了分析难度。
AgentTesla是一种“MAAS”(malware-as-a-service)恶意程序,在过去的7年间,一直保持着较高的活跃度。近两年,国内也出现了多起使用AgentTesla进行商业窃密的攻击活动。
研究人员对本次活动进行了深入分析,从最初的钓鱼电子邮件到安装在受害者设备上的AgentTesla的活动,再到从受影响的设备收集敏感信息。接下来,我们将介绍此次攻击的内容,如钓鱼电子邮件如何启动活动,CVE-2017-11882/CVE-2018-0802漏洞(而非VBS宏)如何被利用在受害者设备上下载和执行AgentTesla文件,以及AgentTesla如何从受害者设备收集敏感数据,如凭据、密钥日志,以及受害者的屏幕截图。
尽管微软于2017年11月和2018年1月发布了对CVE-2017-11882/CVE-2018-0802的修复,但该漏洞在攻击者中仍然很受欢迎,这表明即使在多年后,仍有未修复的设备。
网络钓鱼电子邮件
捕获的钓鱼电子邮件
钓鱼电子邮件伪装成采购订单通知,如上图所示,要求收件人确认工业设备供应商公司的订单。这封电子邮件附带了一个名为 “Order 45232429.xls”的Excel文档。
CVE-2017-11882/CVE-2018-0802被Excel文档利用
附件中的Excel文档为OLE格式。它包含精心制作的方程数据(equation data),利用CVE-2017-11882/CVE-2018-0802漏洞执行恶意shellcode。
Excel文件的内容
打开附加的Excel文档会向用户显示一条欺骗信息。同时,精心制作的方程数据中的shellcode被秘密执行。
CVE-2017-11882/CVE-2018-0802是一个RCE(远程代码执行)漏洞,当被利用时,它会导致EQNEDT32.EXE进程在解析特制的方程数据时内存损坏,这可能导致执行任意代码。
下图显示了在OLE复合读取器中解析的Excel文档,其中方程数据位于存储文件夹“MBD0057E612”下的流“\x01Ole10NativE”中。
OLE Excel文档中的方程内容
一旦打开精心编制的Excel文档,恶意方程式数据就会被称为“EQNEDT32.EXE”的MS Office进程自动解析。这会触发CVE-2017-11882/CVE-2018-0802漏洞,并在后台执行方程数据中的恶意shellcode。
即将在易受攻击的EQNEDT32.EXE进程中执行的ShellCode
在下图中,我们可以看到,精心编制的方程数据覆盖了EQNEDT32.EXE的堆栈,并使其跳转两次(通过0x450650和0x44C329的固定地址)到0x33C006C(堆栈中)的shellcode。
自我解密后,研究人员观察到shellcode的主要工作是从URL“hxxp://23[.]95.128.195/3355/chromium.exe”下载并执行一个额外的恶意软件文件。为此,它调用了几个API,如URLDownloadToFileW(),将恶意软件下载到本地文件夹,ShellExecuteW()在受害者的设备上运行恶意软件。在下图中,我们可以看到shellcode即将调用API URLDownloadToFileW()将其下载到本地文件中,并将其重命名为“%TEMP%”文件夹下的“dasHost.exe”。
调用API下载恶意软件
查看下载的文件
下载的文件(“dasHost.exe”)是一个由IntelliLock和.Net Reactor两个数据包保护的.Net程序。
下图显示了dnSpy中下载文件的EntryPoint函数,其中文件的程序集名称为“Nvgqn7x”。你可能已经注意到,所有名称空间、类、方法和变量的名称都完全混淆了。
被混淆后下载文件的EntryPoint函数
下载文件的.Net Resources部分中有一些资源文件,下载的文件(“dasHost.exe”)从.Net Resources部分提取两个无文件执行模块。一个是AgentTesla的有效负载模块,另一个是AgentTesla有效负载文件的Loader模块。
下载文件的.Net Resources部分
上图显示了.Net Resources部分中的所有资源。根据我的分析,资源“rTMIRNhcvIYnT8lMa6.UJQcCvWAsvT8GV6hyn.resources”是编码的Loader模块,其程序集名称为“Cassa”。资源“FinalProject.resources”是加密和压缩的AgentTesla有效负载模块,其组件名称为“NyZELH bX”,并在Loader模块的“DeleteMC()”函数中作为模块加载,如下图所示。
Loader“Cassa”的DeleteMC()函数
你可能已经注意到的,资源被伪装成Bitmap资源,并与有效负载混合在一起。Bitmap.GetPixel()和Color.FromArgb()是被调用来从资源中读取有效负载的两个API。然后,它通过解密和gzip解压缩来恢复有效负载文件,该文件通过调用AppDomain.CurrentDomain.Load()方法作为可执行模块加载。最后,从Loader模块(“Cassa”)调用有效负载文件的“EntryPoint”函数。
AgentTesla有效负载模块和Process Hollowing
有效负载模块是一个.Net程序,并且是完全混淆的。幸运的是,我使用了几个分析工具来消除混淆。Process-Hollowing是一款windows系统进程注入工具,它能够将目标进程的映射文件替换为指定进程的映射文件,被替换的通常是一些系统进程,如svchost。恶意代码借助此技术可以运行在其他进程中而不被检测到。
与大多数恶意软件一样,开发人员在单独的进程中运行恶意软件的核心模块。这是一种常见的保护策略,可以增加恶意软件在受害者设备上运行的成功率。
有效负载的主要功能(除了持久性)是执行Process Hollowing,然后将另一个解密的可执行文件,该文件来源于有效负载文件中的一个称为“7gQsJ0ugxz.resources”单独的资源,该文件放在Process Hollowing中并执行它。在这个分析中,研究人员把这个解密的可执行文件称为Agent Tesla的核心模块。
用于执行Process Hollowing的API
上图包含有效负载模块调用以执行ProcessHollowing的关键API。它调用CreateProcess()创建一个挂起的“dasHost.exe”进程。接下来,它通过核心模块的API VirtualAllocEx()在该进程中分配内存。然后多次调用WriteProcessMemory(),将保存在数组变量byte_1中的核心模块复制到新进程中。它最终调用API SetThreadContext()和ResumeThread(),将新进程从挂起状态恢复为执行AgentTesla的核心模块。
之后,负载模块通过调用Loader模块的DeleteMC()中的Environment.Exit()退出。
持久性攻击
为了持续盗取受害者的敏感数据,即使受影响的系统重新启动或AgentTesla进程被终止,它也要执行以下两个操作。
1. TaskScheduler
它执行一个命令,在负载模块内的系统taskscheduler中创建一个任务。本文的分析环境中的命令是"C:\Windows\System32\schtasks.exe" /Create /TN "Updates\kCqKCO" /XML "C:\Users\Bobs\AppData\Local\Temp\tmp68E9.tmp",其中“Updates\kCqKCO”是任务名称,“/XML”指定它是由以下参数提供的XML文件创建的,即tmp68E9.tpm。下图显示了XML内容的详细信息,其中文件“C:\Users\Bobs\AppData\Roaming\kCqKCO.exe”是下载的“dasHost.exe”的副本。任务设置为在受害者登录时开始。
在系统TaskScheduler中创建任务
2.在系统注册表中自动运行
系统注册表中的自动运行项
核心模块在系统注册表“C:\Users\Bobs\AppData\Roaming\sOFvE\sOFvE.exe”中添加了一个自动运行项,它是在系统启动时自动启动的“dasHost.exe”的另一个副本。
窃取受害者的敏感信息
AgentTesla核心模块从受害者的设备中窃取敏感信息。这些信息包括一些软件的保存凭据,受害者的键盘记录信息和受害者设备的屏幕截图。
窃取凭据
AgentTesla从中窃取凭据的Web浏览器信息
它从受害者设备上安装的指定软件中窃取保存的凭据,包括网络浏览器、电子邮件客户端、FTP客户端等。
根据其特点,受影响的软件可分为以下几类:
Web浏览器:
Opera浏览器、Yandex浏览器、Iridium浏览器、Chromium浏览器、7Star浏览器、Torch浏览器、Cool Novo浏览器、Kometa浏览器、Amigo浏览器、Brave浏览器、CentBrowser浏览器、Chedot浏览器、Orbitum浏览器、Sputnik浏览器、Comodo Dragon浏览器、Vivaldi浏览器、Citrio浏览器、360浏览器、Uran浏览器、Liebao浏览器、Elements浏览器、Epic Privacy浏览器、Coccoc浏览器、Sleipnir 6浏览器、QIP Surf浏览器、Coowon浏览器、Chrome浏览器、Flo浏览器ck浏览器,QQ浏览器,Safari、UC浏览器、Falkon浏览器
电子邮件客户端:
Outlook,ClawsMail,IncrediMail,FoxMail,eM客户端,Opera Mail,PocoMail,Windows Mail应用程序,Mailbird,The Bat!,Becky!,Eudora
FTP客户端:
Flash FXP, WS_FTP, FTPGetter, SmartFTP, FTP Navigator, FileZilla, CoreFTP, FtpCommander, WinSCP
VPN客户端:
NordVPN,Private Internet Access,OpenVPN
IM客户端:
Discord,Trillian,Psi/Psi+
其他:
Mysql Workbench,\Microsoft\Credentials\,Internet Download Manager,JDownloader
Keylogging攻击
AgentTesla调用API SetWindowsHookEx()来设置键盘挂钩,以监视低级别的输入事件。Keylogging攻击是指攻击者跟踪键盘、鼠标活动,获得用户输入的信息,包括帐号、口令等。
设置挂钩程序以记录键盘活动
在上图中,当受害者在他们的设备上打字时,就会调用回调挂钩进程“this.EiqpViCm9()”。AgentTesla将程序标题、时间和受害者的键盘输入内容不时地记录到一个本地文件“%Temp%/log.tmp”中。
它还有一个每隔20分钟由计时器调用的方法,用于检查“log.tmp”文件并通过SMTP传输其内容。
录制屏幕截图
在核心模块中,AgentTesla设置了另一个定时器,每间隔20分钟调用另一个Timer函数。该Timer函数检查设备上的任何活动,并确定是否记录并传输屏幕截图。为此,它调用API GetLastInputInfo()来检索系统接收到的最后一个输入事件的时间,然后将其与当前时间进行比较。
下面的伪代码片段演示了AgentTesla如何捕获屏幕截图。
“memoryStream”变量将截图保存为jpeg格式。
通过SMTP传输敏感数据
AgentTesla提供了多种传输被盗数据的方式,例如使用HTTP POST方法或通过SMTP作为电子邮件正文。该变体选择通过电子邮件SMTP协议传输从受害者设备收集的数据。变体中的SMTP服务器地址和端口硬编码为“mail.daymon.cc”和587。
下图显示了将要调用smtpClient.Send()函数来传输凭据数据的恶意软件,电子邮件主题以关键字“PW_”开头,后跟凭据数据的用户名/计算机名。
在电子邮件中传输被盗凭据
电子邮件正文采用HTML格式,在浏览器中将电子邮件正文解析为HTML时,如下图所示。
被盗凭据示例
键盘记录程序收集的信息示例
电子邮件的主题是“KL_{User name/Computer name}” ,其中KL是键盘记录程序的缩写,电子邮件正文是收集的键盘记录数据。如下图所示,电子邮件正文包括在名为“Untitled-Notepad”的记事本中输入的键击记录。
捕获的屏幕截图保存在一个变量中,并在传输给攻击者时作为电子邮件附件添加。下图显示了它将屏幕截图数据作为附件添加到电子邮件中。截图的电子邮件主题格式是 “SC_{User name/Computer name}” ,电子邮件正文只是关于受害者设备的基本信息。
传输受害者截图的示例
总结
恶意活动流程图大致如下。
该分析表明,钓鱼电子邮件附带的恶意Excel文档利用老化的安全漏洞执行下载AgentTesla的shellcode。它在Resource部分中对相关模块进行加密和编码,以保护其核心模块不被分析。
然后我解释了这种变体是如何在受害者的设备上建立持久性的。我还展示了AgentTesla能够从受感染的设备中窃取的软件和数据,包括凭据、密钥记录数据和活动屏幕截图。
最后,我提供了几个例子,说明这种AgentTesla从分析环境中获得的敏感数据类型,以及这些被盗的敏感数据是如何通过SMTP协议通过电子邮件传输给攻击者的。
本文翻译自:https://www.fortinet.com/blog/threat-research/agent-tesla-variant-spread-by-crafted-excel-document如若转载,请注明原文地址