Agent Tesla新变种通过精心构造的Excel文档传播

2023年 9月 21日 33.3k 0

近期,捕获了一次传播新 Agent Tesla 变种的网络钓鱼活动。这个著名的恶意软件家族使用基于 .Net 的远程访问木马 (RAT) 和数据窃取程序来获得初始访问权限。它通常用于恶意软件即服务 (MaaS)。

我对该活动进行了深入分析,从最初的网络钓鱼电子邮件到安装在受害者计算机上的 Agent Tesla 的操作,再到从受影响的设备收集敏感信息。在本次分析中,您将了解该攻击的内容,例如钓鱼邮件如何发起攻击活动、如何利用CVE-2017-11882/CVE-2018-0802漏洞(而非VBS宏)进行下载和攻击。在受害者的设备上执行 Tesla 特工文件,以及 Tesla 特工如何从受害者的设备收集敏感数据,例如凭据、按键记录和受害者屏幕截图。

尽管Microsoft 于 2017 年 11 月和 2018 年 1 月发布了CVE-2017-11882 / CVE-2018-0802修复程序,但此漏洞在威胁参与者中仍然很受欢迎,这表明即使在五年多之后,仍然存在未修补的设备。我们每天在 IPS 级别观察并缓解 3000 次攻击。每天观察到的易受攻击的设备数量 约为 1300 台。

网络钓鱼电子邮件

图1.1:捕获的钓鱼邮件

网络钓鱼电子邮件伪装成采购订单通知,如图 1.1 所示,要求收件人确认来自工业设备供应商公司的订单。此电子邮件中附有一份名为“Order 45232429.xls”的 Excel 文档。

CVE-2017-11882/CVE-2018-0802 被 Excel 文档利用

附件中的 Excel 文档为 OLE 格式。它包含精心设计的方程数据,利用 CVE-2017-11882/CVE-2018-0802 漏洞执行恶意 shellcode。

图2.1:Excel文件的内容

打开附加的 Excel 文档会向用户显示一条欺骗性消息(图 2.1)。与此同时,精心设计的方程数据中的shellcode被秘密执行。

CVE-2017-11882/CVE-2018-0802 是一个 RCE(远程代码执行)漏洞,在解析精心设计的方程数据时,会导致 EQNEDT32.EXE 进程内的内存损坏。这可能导致任意代码执行。

图 2.2 显示了在 OLE 复合阅读器中解析的 Excel 文档,其中方程数据位于存储文件夹“MBD0057E612”下的流“x01Ole10NativE”内。

Agent Tesla新变种通过精心构造的Excel文档传播-1

图 2.2:OLE Excel 文档中的方程内容

一旦打开精心制作的 Excel 文档,恶意方程数据就会被名为“EQNEDT32.EXE”的 MS Office 进程自动解析。这会触发CVE-2017-11882/CVE-2018-0802漏洞,方程数据内的恶意shellcode在后台执行。

图2.3:将在易受攻击的EQNEDT32.EXE进程中执行的ShellCode

在图2.3中,我们可以看到精心设计的方程数据覆盖了EQNEDT32.EXE的堆栈,并使其两次跳转(通过固定地址0x450650和0x44C329)到0x33C006C处的shellcode(在堆栈中)。

自解密后,我们观察到shellcode的主要工作是从URL“hxxp://23[.]95.128.195/3355/chromium.exe”下载并执行额外的恶意软件文件。为此,它会调用多个 API,例如 URLDownloadToFileW(),将恶意软件下载到本地文件夹,并调用 ShellExecuteW() 在受害者的设备上运行恶意软件。在图2.4中,我们可以看到shellcode将调用API URLDownloadToFileW()将其下载到本地文件中,并在“%TEMP%”文件夹下将其重命名为“dasHost.exe”。

图2.4:调用API下载恶意软件

查看下载的文件

下载的文件(“dasHost.exe”)是一个.Net程序,受两个加壳器(IntelliLock和.NET Reactor)保护。

图 3.1 显示了 dnSpy 中下载文件的 EntryPoint 函数,其中文件的程序集名称为“Nvgqn7x”。您可能已经注意到,命名空间、类、方法和变量的所有名称都被彻底混淆了。

Agent Tesla新变种通过精心构造的Excel文档传播-2

图3.1:混淆下载文件的EntryPoint函数

下载文件的.Net Resources 部分中有资源文件。下载的文件(“dasHost.exe”)从 .Net 资源部分提取两个无文件执行模块。一个是Agent Tesla的payload模块,另一个是Agent Tesla的payload文件的Loader模块。

Agent Tesla新变种通过精心构造的Excel文档传播-1

图 3.2:下载文件的 .Net Resources 部分

图 3.2 显示了 .Net Resources 部分中的所有资源。根据我的分析,资源“rTMIRNhcvIYnT8lMa6.UJQcCvWAsvT8GV6hyn.resources”是编码后的Loader模块,其程序集名称为“Cassa”。资源“FinalProject.Resources”是加密和压缩的 Agent Tesla 有效负载模块,其程序集名称为“NyZELH bX”。它在 Loader 模块的“DeleteMC()”函数中被解密、解压并作为模块加载,如图 3.3 所示。

图3.3:加载器“Cassa”的DeleteMC()函数

您可能已经注意到,该资源伪装成位图资源并与有效负载混合在一起。Bitmap.GetPixel() 和 Color.FromArgb() 是被调用以从资源读取有效负载的两个 API。然后,它通过解密和 gzip 解压缩来恢复有效负载文件,该有效负载文件通过调用 AppDomain.CurrentDomain.Load() 方法作为可执行模块加载。最后,从加载器模块(“Cassa”)调用有效负载文件的“EntryPoint”函数。

Agent Tesla 有效负载模块和流程

有效负载模块是一个 .Net 程序,并且已完全混淆。幸运的是,我设法使用多种分析工具对其进行了反混淆。

与大多数恶意软件一样,开发人员在单独的进程中运行恶意软件的核心模块。这是一种常见的保护策略,可以增加恶意软件在受害者设备上的生存机会。

有效负载的主要功能(持久性除外)是执行进程空洞,然后将另一个解密的可执行文件(源自有效负载文件中的单独资源(称为“7gQsJ0ugxz.resources”))放置到空心进程上并执行它。在本次分析中,我将这个解密后的可执行文件称为Agent Tesla的核心模块。

图 4.1:执行 Process Hollowing 的 API

图 4.1 包含有效负载模块调用以执行 ProcessHollowing 的关键 API。它调用 CreateProcess() 创建“dasHost.exe”的挂起进程。接下来,它通过 API VirtualAllocEx() 为核心模块分配该进程中的内存。然后,多次调用 WriteProcessMemory(),将保存在数组变量 byte_1 中的核心模块复制到新进程中。最后调用API SetThreadContext()和ResumeThread()将新进程从挂起状态恢复到执行Agent Tesla的核心模块。

之后,负载模块通过调用Loader模块的DeleteMC()中的Environment.Exit()退出(参见图3.3)。

持续

为了持续收集受害者的敏感数据,即使受影响的系统重新启动或Agent Tesla进程被杀死,它也会执行以下两件事。

1. 任务调度程序

它执行命令以在有效负载模块内的系统 TaskScheuler 中创建任务。我的分析环境中的命令是

“C:WindowsSystem32schtasks.exe”/Create /TN“UpdateskCqKCO”/XML“C:UsersBobsAppDataLocalTemptmp68E9.tmp”

其中“UpdateskCqKCO”是任务名称,“/XML”指定它是根据参数(即 tmp68E9.tmp)提供的 XML 文件创建的。图 5.1 显示了 XML 内容的详细信息,其中文件“C:UsersBobsAppDataRoamingkCqKCO.exe”是下载的“dasHost.exe”的副本。该任务设置为在受害者登录时启动。

Agent Tesla新变种通过精心构造的Excel文档传播-2

图5.1:在系统TaskScheduler中创建任务

2.在系统注册表中自动运行

图 5.2:系统注册表中的自动运行项

核心模块在系统注册表中添加一个自动运行项“C:UsersBobsAppDataRoamingsOFvEsOFvE.exe”(如图5.2所示)。它是“dasHost.exe”的另一个副本,在系统启动时自动启动。

从受害者那里窃取敏感信息

Agent Tesla 核心模块从受害者的设备收集敏感信息。这些信息包括某些软件保存的凭据、受害者的键盘记录信息以及受害者设备的屏幕截图。

窃取凭证

图 6.1:特工 Tesla 从中窃取凭证的 Web 浏览器信息

它从受害者设备上安装的指定软件中窃取保存的凭据,包括网络浏览器、电子邮件客户端、FTP 客户端等。

根据受影响的软件的功能,可以将其分为以下几类:

网络浏览器:

"Opera Browser", "Yandex Browser", "Iridium Browser", "Chromium", "7Star", "Torch Browser", "Cool Novo", "Kometa", "Amigo", "Brave", "CentBrowser", "Chedot", "Orbitum", "Sputnik", "Comodo Dragon", "Vivaldi", "Citrio", "360 Browser", "Uran", "Liebao Browser", "Elements Browser", "Epic Privacy", "Coccoc", "Sleipnir 6", "QIP Surf", "Coowon", "Chrome", "Flock Browser", "QQ Browser", "IE/Edge", "Safari", "UC Browser", "Falkon Browser".

电子邮件客户:

"Outlook", "ClawsMail", "IncrediMail", "FoxMail", "eM Client", "Opera Mail", "PocoMail", "Windows Mail App", "Mailbird", "The Bat!", "Becky!", "Eudora".

FTP 客户端:

"Flash FXP", "WS_FTP", "FTPGetter", "SmartFTP", "FTP Navigator", "FileZilla", "CoreFTP", "FtpCommander", "WinSCP".  

VPN 客户端:

"NordVPN", "Private Internet Access", "OpenVPN",

即时通讯客户端:

"Discord", "Trillian", "Psi/Psi+".

其他的:

"Mysql Workbench", "MicrosoftCredentials", "Internet Download Manager", "JDownloader".

键盘记录

Agent Tesla 调用 API SetWindowsHookEx() 设置键盘钩子来监视低级输入事件。

图 6.2:设置挂钩过程来记录击键

在图 6.2 中,只要受害者在其设备上打字,就会调用回调挂钩过程“this.EiqpViCm9()”。特斯拉特工会不时将程序标题、时间以及受害者的键盘输入内容记录到本地文件“%Temp%/log.tmp”中。

它还具有由计时器每 20 分钟调用一次的方法,以检查“log.tmp”文件并通过 SMTP 提交其内容。

录制屏幕截图

在核心模块中,Agent Tesla 设置了另一个 Timer,间隔 20 分钟来调用另一个 Timer 函数。此计时器功能检查设备上的任何活动,并确定是否记录屏幕截图并提交。为此,它调用 API GetLastInputInfo() 来检索系统上次接收到的输入事件的时间,然后将其与当前时间进行比较。

以下伪代码片段说明了特工 Tesla 如何捕获屏幕截图。

bitmap = new Bitmap(bounds.Width, Screen.PrimaryScreen.Bounds.Height);encoderParameters = new EncoderParameters(1);encoder = 25Tl1j7fiou.KIOsJnSv3(ImageFormat.Jpeg);EncoderParameter encoderParameter = new EncoderParameter(Encoder.Quality, (long)Convert.ToInt32(60L));encoderParameters.Param[0] = encoderParameter;graphics = Graphics.FromImage(bitmap);graphics.CopyFromScreen(new Point(0, 0), new Point(0, 0), blockRegionSize);bitmap.Save(memoryStream, encoder, encoderParameters);

“memoryStream”变量以 jpeg 格式保存屏幕截图。

通过 SMTP 提交敏感数据

Agent Tesla 提供了多种方式来提交被盗数据,例如使用 HTTP POST 方法或通过 SMTP 作为电子邮件正文。此变体选择通过电子邮件 SMTP 协议提交从受害者设备收集的数据。变体中硬编码的 SMTP 服务器地址和端口为“mail.daymon.cc”和 587。

图 7.1 显示了恶意软件将调用 smtpClient.Send() 函数来提交凭据数据。电子邮件主题以关键字“PW_”开头,后跟凭据数据的用户名/计算机名称。

图 7.1:通过电子邮件提交被盗凭证

电子邮件正文采用 HTML 格式。在浏览器中将电子邮件正文解析为 HTML 时如图 7.2 所示。

图 7.2:被盗凭证示例

图 7.3:键盘记录器收集的信息示例

该电子邮件的主题是“KL_{用户名/计算机名}”,其中 KL 是键盘记录器的缩写,电子邮件正文是收集的键盘记录数据。如图 7.3 所示,电子邮件正文包含我在记事本中键入的击键记录,标题为“无标题 - 记事本”。

捕获的屏幕截图保存在变量中,并在提交给攻击者时作为电子邮件附件添加。图 7.4 显示了将屏幕截图数据作为附件添加到电子邮件中。ScreenShots的电子邮件主题格式为“SC_{用户名/计算机名}”,电子邮件正文只是受害者设备的基本信息。

图7.4:提交受害者截图示例

概括

以下流程图大致描述了恶意活动的轮廓。

此分析表明,附加到网络钓鱼电子邮件的恶意 Excel 文档利用老化的安全漏洞来执行下载 Agent Tesla 的 shellcode。它将相关模块加密并编码在资源部分中,以保护其核心模块不被分析。

然后我解释了这个变体如何在受害者的设备上建立持久性。我还展示了 Tesla 特工能够从受感染设备窃取的软件和数据类型,包括凭据、键盘记录数据和活动屏幕截图。

最后,我提供了几个示例,说明 Tesla 特工变种从我的分析环境中获取的敏感数据类型,以及这些被盗敏感数据如何通过 SMTP 协议通过电子邮件提交给攻击者。

IOC

URLs:

Hxxp[:]//23[.]95.128.195/3355/chromium.exe

C2 Server List:

SMTP server @ mail.daymon.cc:587

Relevant Sample SHA-256:

[Order 45232429.xls]FDC04DC72884F54A4E553B662F1F186697DAF14EF8A2DC367BC584D904C22638
[chromium.exe / dasHost.exe / downloaded file]36B17C4534E34B6B22728DB194292B504CF492EF8AE91F9DDA7702820EFCFC3A

转载来源: https://www.fortinet.com/blog/threat-research/agent-tesla-variant-spread-by-crafted-excel-document

图片来源网络侵权可联系删除

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论