攻击观察:通过滥用Windows Installer MSI中的自定义操作来运行恶意JS/VBS/PowerShell脚本

2019年5月16日 295点热度 0人点赞 0条评论

图片

Windows Installer使用Microsoft Software Installation (MSI)包文件来安装程序,每个包文件都有一个关系型数据库,其中包含安装或删除程序所需的指令和数据。

趋势科技最近发现了一些恶意MSI文件,它们能绕过传统的安全解决方案,下载并执行其它文件。恶意行为者可以滥用这些文件中的自定义操作来执行恶意脚本,植入恶意软件,并能定位用户电脑中金融应用程序所在位置。

图片 分析恶意MSI文件

我们在几个恶意.msi文件样本中发现了JScript / VBScript脚本,但脚本文件并不完整,部分代码似乎被截断并放在了文件的其他部分,并且脚本没有直接调用wscript.exe来运行,因为安装程序msiec .exe本身就带有解释器。

图片

图1..MSI文件中包含的可能被截断的JavaScript脚本

我们使用了Orca MSI Editor工具,它允许用户查看和编辑数据库文件表,进而了解文件传送的方式和位置,我们可在CustomAction表中查找相关问题脚本。CustomAction表允许用户将自定义代码和数据集成到安装中,代码源可以是来自特定数据库、已安装文件或现有可执行文件流。该表列出了各种信息,如操作、类型、源、目标和扩展类型。

图片

图2.Orca MSI Editor:包含JavaScript的CustomAction

恶意JS代码(由趋势科技检测为Trojan.JS.MSAIHA.A)通过访问下列地址hxxps[:]//s3-eu-west-1[.]amazonaws[.]com/{random characters}/image2[.]png来下载文件。下载的文件或创建的.txt文件将存储在以下任一文件夹中:

· %User Startup%\

· %User Profile%\Saved Games

· %User Profile%\Contacts

· %User Profile%\Links

· %User Profile%\Music

下载文件(.exe,.msi或来自zip的转储文件)的文件名为jesus或dump,而对于创建的.txt文件,文件名则在desktop.txt,desktop和desktop.ini之间变换。

文件%Application Data%/ {yyyyMM} .ini是感染标记,如果有它,则恶意软件将不会继续其例程。恶意软件还会下载一个加密的.zip文件,然后使用带有硬编码0x29的XOR对其进行解密。

图片

图3.保存在Microsoft文件夹中的.zip文件的内容

图片

图4.执行context_snapshot.exe的木马

这个.zip文件里有常规文件,如iLua.inf,msvcr120.dll和msvcp120.dll;也有由Avira(小红伞,由德国的Avira公司所开发的杀毒软件)数字签名的文件;还有 AutoIt相关文件和加密的动态链接库(DLL)。该木马通过AutoIt(一个使用类似BASIC脚本语言的免费软件,设计用于Windows GUI中进行自动化操作)来解密加密的DLL并执行context_snapshot.exe来注入其自身的DLL,并能成伪装合法的进程。

此处的AutoIt脚本(图3中的v8_context_snapshot.src,趋势科技检测为Trojan.AutoIt.AUTINJECT.AA)受密码保护,因此我们通过一个修改过的myAut2Exe(一个用于密码猜测、生成路径名以及其他信息的工具)对其解码。

图片

图5.v8_context_snapshot.src的日志输出

图片

图6.将 Avira可执行文件注入到加密的DLL之中

该木马使用解密后的AutoIt脚本进行注入操作,此AutoIt脚本我们在网上也发现过类似的,攻击者将其修改成了适合自己使用的版本。此外,AutoIt脚本还附加了一个DLL,随后会加载到内存中,这么做的目的是为了执行数字签名的Avira文件(context_snapshot.exe),然后在Avira可执行文件的进程中注入加密的DLL (Jlib.dll),并将其作为合法进程传递。

在我们与Avira公司阐述了研究结果后,Avira回应道:

图片

我们的首要任务是保护我们的用户,因此我们立即检测了产品中所有文件以及外部链接。恶意软件为了能够在合法进程的上下文中执行恶意代码并绕过安全解决方案,利用了我们的一个Avira可执行程序,在常规安装的上下文中注入恶意代码。不过只有在用户机器上未启用Avira保护时,此项步骤才能执行成功,否则是不会允许任何第三方进程或组件修改/注入进程的。在过去,我们并没有收到过类似的报告。这一问题目前正在调查中,因此我们将在未来几天提供更多信息。

图片

其他与Trojan.PS1.MSAIHA.A相关的样本也可以重启目标计算机并使用Dropbox链接下载上述.zip文件。有些恶意样本甚至会检查以下文件夹名称是否存在,如果存在,则继续程序:

· %AppDataLocal%\ Aplicativo Itau(与巴西银行有关)

· %Program Files%\ AppBrad(与巴西的银行和金融服务公司有关)

· %ProgramFiles%\ Diebold \ Warsaw(与金融和零售技术公司有关)

图片

图7.伪装成Adobe Acrobat Reader DC弹出窗口

恶意MSI文件另一个值得注意的地方是它们会伪装成合法应用,如图7所示的Adobe Acrobat Reader DC,会将用户重定向到网站www[.]adobe[.]com/br/(域名位于葡萄牙)。

图片

图8.MSI文件将用户重定向到此站点

图片

图9.从恶意URL下载的垃圾邮件包含了一个.zip文件

电子邮件由葡萄牙语书写,内容简明扼要,并要求收件人紧急处理附件文件。附件是一个标题为“Fatur432952-532-674.zip”的.zip文件,下载地址是一个恶意链接,如下图框线中所示,其中地址里的“image2.png”是下载附件时的存档。

图片

图10.下载存档的脚本

存档文件包含dump.msi(检测为Trojan.JS.MSAIHA.A),dump.exe(检测为TrojanSpy.Win32.CASBANEIRO.XLB)和ssleay64.dll(检测为TrojanSpy.Win32.CASBANEIRO.XLB)。

图片

图11.垃圾邮件中MSI文件的感染流程

恶意payload通过检查hxxps[:]//www[.]localizaip[.]com[.]br/api/iplocation[.]php中的国家代码来将攻击目标锁定在巴西和葡萄牙,具体来说可能与银行和金融等方面信息有关,甚至可能会记录用户的输入信息。

图片

图12.执行dump.exe例程的流程图

以下是一些解密字符串在回调函数中创建的窗口:

· AMARELO_PASS_6

· AMARELO_PASS_8

· AMARELO_PASS_CERT

· AMARELO_QR

· AMARELO_CERT_SIMPLES

· AMARELO_PASS_SIMPLES

· AMARELO_PASS_QR

· SICREDI_ASS

· SICREDO_TOKEN_FISICO

· SICREDO_TOKEN_MOB

· SICREDO_PASS_QR

· SANTA_ASSI_ELECTRO

· SANTA_TOKEN

· SANTA_N_SERIE

· SANTA_PASS_QR

· SANTA_POS_TABELA

· CEF_ASS_NUMERO

· CEF_ASS_NUMER0_LETRAS

· CEF_PASS_QR

· NORD_POS_CARTAO

· NORD_PASS_QR

· BANESTER_CERTIFICADO

· BANESTES_COD_ACCESSOBANESTES_PASS_QR

· BANRI_SENHA

· BANRI_SENHA_TECLADO

· SAFRA_TOKEN_MOB

· SAFRA_TOKEN_DISPLAY

· SAFRA_SENHA_TECLADO

· SAFRA_PASS_QR

· DESCO_POS_TABELA

· DESCO_CERT

· DESCO_TOKEN_6

· DESCO_TOKEN_8

· DESCO_PASS_QR

· DESCO_CEL_VISOR

· DESCO_PISCA

· BRB_CODIGO

· BRB_SENHA_TECLADO

· BRB_PASS_QR

· ITA_DATA

· ITA_SENH6

· ITA_TOKAPP

· ITA_TOKCELL

· ITA_QR

图片 滥用MSI中的自定义操作

执行安装时,除了标准的内置操作之外,有时开发人员可能需要编写自定义操作。微软列举了下列可能需要自定义操作的场景:

· 在安装过程中,必须启动安装在用户机器上或与应用程序一起安装的可执行文件。

· 在安装过程中必须调用DLL中定义的特殊函数。

· 在安装过程中必须使用用编程语言Microsoft Visual Basic Scripting Edition或Microsoft JScript文字脚本文本编写的函数。

· 有些操作必须在安装脚本执行后才能执行。

· 时间和进度信息必须添加到ProgressBar控件和TimeRemaining文本控件中。

考虑到上述情况,对于攻击者来说,滥用第一和第二种的情况是不太可能的。

图片

图13.Orca MSI Editor:CustomAction中包含了VBScript

在检查了另一个包含VBScript的样本(参见图13)之后,我们可以推断恶意软件创建者使用的是Advanced Installer(安装包制作工具)来构建样本的,因为该样本需要第三方库(如powershellscriptlauncher.dll)来运行PowerShell脚本,进而查看日志和进程。

图片

图14.包含其他自定义操作的Advanced Installer

我们能够添加或修改样本中的自定义操作,例如在JS,VBS和PowerShell脚本之间选择执行,或者使用Advanced Installer来加载库。此举可能有助于恶意行为者滥用其功能,比如他们就可以轻松修改正常的MSI包并在其中插入恶意脚本。

图片

图15.指示现有和新创建的PowerShell脚本的自定义操作

图片

图16.添加一个新的自定义操作来运行PowerShell脚本

目前,恶意软件下载的档案中包含了多组(DLL side-loading)恶意软件。

图片 缓解和解决方案

我们注意到,恶意行为者滥用MSI包最常见的目的通常为了安装不需要的应用程序(PUAs),而不一定是为了植入恶意软件。而使用MSI包和自定义操作的恶意软件安装则是另一种需要警惕的机制,因为它可能会绕过传统安全软件的检测方法。

在本例中,恶意行为者可能正在测试不同的传播方法,而根据垃圾邮件中的语言、重定向的站点以及在分析过程中遇到的文件夹路径,我们都可以判定攻击者的重点目标放在了巴西和葡萄牙上。想要防范此类攻击,首先我们建议用户避免安装未知文件和访问未知链接,这些链接可能会重定向到下载恶意文件的站点。用户还可以通过使用最新的安全补丁更新系统,或者使用能够抵御攻击的解决方案来阻止此类攻击。

图片

图片

52580攻击观察:通过滥用Windows Installer MSI中的自定义操作来运行恶意JS/VBS/PowerShell脚本

这个人很懒,什么都没留下

文章评论