概述
在本篇文章中,我们将重点介绍Mispadu,这是一个主要以拉丁美洲地区为目标的银行木马,伪装成麦当劳的广告从而将其攻击面扩展到Web浏览器。
我们认为,该恶意软件家族针对的是普通用户,其主要目标是窃取金钱和用户凭据。在巴西地区,我们发现其背后的攻击者分发了一个恶意的Google Chrome扩展程序,该程序时图窃取信用卡数据和在线网银数据,并伪装成Boleto支付系统。
恶意软件特征
Mispadu是一个恶意软件家族,我们在针对拉丁美洲银行木马的研究过程中发现该恶意软件,该恶意软件家族主要针对巴西和墨西哥,使用Delphi语言编写,使用相近的方式对受害者发动攻击,即:显示伪造的弹出窗口,并诱导受害者在窗口上填写敏感信息。
该恶意软件具有后门功能,Mispadu可以对屏幕进行截图、模拟鼠标和键盘操作并捕获击键。该恶意软件可以下载并执行Visual Basic(VBS)脚本进行其自身的更新。
与其他以拉丁美洲为目标的银行木马一样,Mispadu也会收集有关受害者的信息,包括:
(1)操作系统版本;
(2)计算机名称;
(3)语言ID;
(4)是否已经安装了Diebold Warsaw GAS Tecnologia(一个在巴西地区常用的应用程序,用于保护用户对网上银行的访问);
(5)已安装的常见拉丁美洲银行的应用程序列表;
(6)已安装的安全产品列表。
与Amavaldo和Casbaneiro一样,Mispadu也具有其独特的特征,它使用自定义加密算法来混淆其代码中的字符串。这种混淆的方式适用于所有组件,且包括其配置文件和C&C通信。下图展示了实现该算法的核心代码,下面还展示了该算法的伪代码。
Mispadu的核心数据解密算法:
Mispadu数据解密算法的伪代码:
def decrypt_string(data_enc, key): seed = data_enc[0] - 0x41 # 'A' data_dec = str() for i in range(1, len(data_enc), 2): b1 = (data_enc[i] - 0x41) * 25 b2 = data_enc[i+1] - 0x41 - seed - key data_dec += chr(b1 + b2) return data_dec
该银行木马可执行文件在其resource部分存储了4个潜在有害的应用程序。这些应用程序原本都是由Nirsoft提供的其他合法文件,但攻击者对其进行了修改,以实现从命令行运行,并且没有GUI。恶意软件会从以下位置提取存储的凭据:
(1)浏览器(Google Chrome、Mozilla Firefox、Internet Explorer);
(2)电子邮件客户端(Microsoft Outlook、Mozilla Thunderbird和Windows Live Mail等)。
Mispadu恶意软件还会监控剪贴板的内容,并像Casbaneiro恶意软件一样,尝试使用特定的内容来替换剪贴板中潜在的比特币钱包地址。但是,根据我们对攻击者钱包的查询,发现这一恶意软件功能到目前为止可能不是非常成功。
Mispadu恶意软件攻击者使用的比特币钱包:
恶意软件分布
Mispadu恶意软件采用两种分发方式,分别是垃圾邮件和恶意软件。尽管前一种方法在拉丁美洲的银行木马中非常普遍,但后一种方法却不常见,因此我们需要对其进行更为深入的分析。下图展示了Mispadu攻击者如何展开攻击。
分发Mispadu恶意软件的垃圾邮件样本。左图展现了垃圾邮件声称对收件人已经尝试进行了3次包裹派送但均未成功,需点击URL进行退款,该邮件主要对巴西地区的用户开展攻击。右图展示了垃圾邮件提醒收件人及时下载发票,以避免帐户被暂时阻断,该邮件主要对墨西哥地区的用户进行攻击。
Mispadu的分发和执行链:
攻击者在Facebook上购买了赞助广告(下图以巴西地区为例展示了截图),提供虚假的麦当劳折扣券。点击广告后,将引导潜在受害者访问下图所展示的网页之一。无论访问者使用什么操作系统,在点击其中的按钮之后都会下载一个ZIP压缩包,其中包含MSI安装程序。有时,该压缩包中还包含合法软件,例如Mozilla Firefox或PuTTY,但这些软件只是诱饵,根本没有使用。
Mispadu攻击者根据他们希望攻击的目标国家,编译了两种不同版本的银行木马。除此之外,攻击者决定对每个受攻击的国家使用不同的安装程序和后续阶段。但是,两条攻击链的逻辑相同,我们将在下面进行详细描述。
Mispadu幕后攻击者发布的Facebook广告,其内容是虚假的麦当劳优惠券网站,广告标题翻译为:在9月的任意一天使用它们!单独使用的优惠券。立即获取!
恶意网页针对巴西地区(左图)和墨西哥地区(右图)提供了两种不同的仿冒优惠券,两种优惠券所对应显示的文字:该优惠券只能使用一次,立即获取!生成优惠券。
当潜在的受害者执行MSI安装程序时,将产生三个后续的VBS脚本链。第一个脚本(解包工具)从其内部解密数据并执行第二个脚本(下载工具),如下图所示。下载程序脚本检索第三个脚本(加载工具)并执行,如下图所示。
Mispadu分发链解包脚本(第一阶段),其中需要关注的是,密钥在w2变量中计算的值为95。
Mispadu分发链下载工具脚本(第二阶段),其中需要关注的是,硬编码的密钥与第一阶段相同。
加载工具脚本与前两个阶段相比要更加复杂,它是基于特定语言环境的,加载工具脚本会检查潜在受害者主机的语言标识符,以验证该主机确实是位于相应目标的国家(巴西或墨西哥)。该加载工具脚本也可以检测某些虚拟环境,如果检测到运行于虚拟环境中,或无法找到所需的语言环境,那么就会退出加载工具。
如果验证通过,加载工具脚本会通过设置配置文件(稍后详细介绍)并下载以下内容:
(1)Mispadu银行木马;
(2)用于执行银行木马的注入程序(DLL);
(3)合法支持DLL。
其中,每个文件都作为一个单独的ZIP压缩包下载,如上图所示。下面是Mispadu Payload解密算法的伪代码:
def decrypt_payload(data_enc): key = data_enc[0] data_dec = str() for i in range(1, len(data_enc)): data_dec += chr(data_enc[i] - ((key + i - 1) % 10)) return data_dec
Mispadu的下载服务器会检查所收到请求的有效性。如果发送无效的请求,会返回一些淫秽的图像,我们无法在本文章中展示这部分截图。
最后,加载工具脚本通过在启动文件夹中创建链接并执行注入工具来设置持久性。具体而言,是通过使用rundll32.exe调用注入程序DLL的导出函数来实现的,该函数的名称来源于先前设置的配置文件之一。注入工具找到加密的银行木马,对其进行解密并执行。
我们在Mispadu恶意软件使用的其中一台服务器上找到了一个开放的目录,并且发现该服务器上疑似存储了一些与恶意活动相关的文件。这些文件可以用于创建伪造AreaVIP网站(巴西某小型报纸的官网),并面向访问者弹出一个虚假的“Adobe Flash Player更新”。截至目前,我们没有在野外观察到这一恶意活动,我们认为这可能是一起在未来准备开展的恶意活动。
由于针对巴西地区的Mispadu恶意活动使用了Tiny.CC URL短网址工具,因此我们可以收集到统计信息。如下图所示,该恶意活动仅仅在巴西地区就收获到了将近100000次点击。其中,“来自Android的点击”可能是表示在Facebook上投放的广告,而不是真正的用户设备。我们还可以看到,该恶意活动正在以周期性的模式开展,其中的一个阶段在2019年9月下半旬结束,在2019年10月初再次出现。
巴西地区Mispadu恶意活动统计:
来源于一封电子邮件附件
恶意活动所使用的垃圾邮件和伪造的麦当劳网站都非常有趣,因为其中都附带了伪造的优惠券。Mispadu恶意软件幕后的攻击者滥用了俄罗斯的Yandex.Mail平台来存储其Payload(如下图所示)。最有可能的一种情况是,攻击者在Yandex.Mail上创建了一个帐户,向用户发送了包含恶意优惠券附件的电子邮件,然后将潜在的受害者指向该附件的直接链接。
恶意URL,从该URL下载包含恶意Mispadu MSI安装程序的压缩包:
配置文件
在针对拉丁美洲的银行木马中,配置文件的使用非常少见。但是,总体而言,Mispadu利用了三个不同的配置文件,如果没有这些配置文件将无法成功运行。所有配置文件都包含在上文分析的加载工具脚本中,或由上述加载工具获取。
Mispadu的执行配置信息仅存储在内存中,其内容是从某一台下载服务器(参见“恶意软件分布”)下载的。其中包含三个关键信息:
(1)创建URL和下载注入工具所需的字符串;
(2)安装恶意软件的文件夹名称;
(3)调用注入工具导出函数的名称,以使其执行银行木马。
常规的配置数据都会被放置到C:\Users\Public\%COMPUTERNAME%[1]中,命名为受害者计算机名称中的第二个字母。举例来说,一台计算机名称为“JOHN-PC”的计算机,该文件将会被命名为“O”。这些内容是根据加载工具脚本和执行配置文件中包含的数据而创建的,其中包含版本信息、加密密钥和文件系统路径。
C&C配置数据被存储在与前一个文件相同位置的文件夹中,并使用相同文件名附加上“_”符号。继续以前面的示例为例,这个文件会被命名为“O_”。文件中包括:
(1)#IP# (银行木马用于接收后门命令的IP地址占位符);
(2)#wp[1-3]#(与#IP#关联的3个端口的占位符);
(3)两个列表,每个列表中包含31个域名(主列表和备份列表)。
Mispadu恶意软件根据当时的月份和日期从这些列表中选择主C&C域名。然后,会尝试每隔几个小时从该域名中获取C&C配置文件的更新版本,并使用它来替换现有的C&C配置文件。我们认为,这种方式的主要目的是填充占位符以激活后门功能。
“保护您的Chrome”?
我们观察到,除了针对巴西的Mispadu银行木马,还存在一个恶意的Google Chrome浏览器扩展程序与其一同分发。这个扩展的名称(如下图所示)为“Securty [sic] System 1.0”,生成可以帮助用户“保护Chrome浏览器”。这个扩展中包含以下三个恶意JavaScript文件。
Mispadu恶意软件分发链的一部分,恶意的Google Chrome扩展程序或随着Mispadu恶意软件的更新而同步更新,而其余的分发链则保持不变。
Mispadu恶意软件安装的恶意Google Chrome扩展:
组件1:控制窗口
这个简单的组件只有一个功能:创建一个新的Google Chrome窗口并关闭所有其他窗口。我们分析的所有样本中,都不包含这个组件,因此我们认为它仍然处在测试阶段。
组件2:窃取信用卡数据
第二部分包含网站的硬编码列表。在这些站点提供的页面中,它将会查找包含“text”(文本)、“email”(电子邮件)、“tel”(电话)、“number”(号码)、“password”(密码)或“radio”(无线电)的任何输入字段。如果在网站上的任何位置找到类似于“CVV”或“CÓD SEG”的内容,那么当受害者提交信息时,这些输入字段的内容就会发送给攻击者。这一过程非常清晰地展现了浏览器扩展的一个功能意图——窃取信用卡数据。
组件3:窃取银行和Boleto数据
第三个组件是最为先进的部分。首先,攻击者使用了类似于DGS的算法,根据当前的月份和日期生成两个字符串。然后,这些字符串将以https://raw.githubusercontent.com/%FIRST_STRING%/w/master/%SECOND_STRING%的形式生成GitHub URL,其中%FIRST_STRING%是GitHub用户名。从生成的URL下载的数据会被解密为另一个URL,我们将其称为Payload URL。
与第二个组件一样,这个组件中还包含目标网站的硬编码列表。如果受害者访问这些网站中的一个,则会从Payload URL中获取该网站上特定的JavaScript文件,并通过JavaScript的eval函数动态加载该文件。
除此之外,该组件还会尝试影响Boleto的正常使用,Boleto是巴西地区常用的一个支付系统。长期以来,这个系统一直是攻击者频繁攻击的目标。要使用这个系统进行付款,用户必须打印一张票据(boleto)。其中,主要包含应接收付款的银行账户ID和条形码(如下图所示)。然后,通过扫描条形码或手动输入ID来完成付款。
Boleto示例:
恶意软件组件使用正则表达式尝试查找ID编号,并将其替换为攻击者的ID(动态获取)。此外,恶意软件会滥用合法网站来生成攻击者账户对应的付款条形码。下图展示了用于滥用Boleto的代码部分。
Mispadu恶意软件的Google Chrome扩展程序对Boleto进行滥用,其中红色标记的是攻击者账户的代码,绿色标记的是恶意条形码:
恶意活动之间的差异
除了我们上述已经分析过的差异,以及Mispadu银行木马的不同变种会针对不同国家的银行之外,在巴西地区的恶意活动的其他方面也明显与墨西哥有所不同。
攻击者似乎对存储每个配置文件的文件系统路径和文件名都做了随机化,并为受害者安装了银行木马。此外,加载工具脚本还包含一部分当前还没有投入使用的内容,其中包括攻击者可以滥用Windows中的mshta.exe来执行实际的银行木马,而不再是rundll.exe。
总结
在这篇文章中,我们主要分析了Mispadu恶意软件,这是我们在研究期间发现的一个独立银行木马家族,主要针对拉丁美洲地区进行攻击。我们已经分析了恶意软件的主要特征,包括我们之所以将其定位为针对拉丁美洲的银行木马的原因。该恶意软件使用Delphi语言编写,主要针对巴西和墨西哥,利用弹出窗口进行社会工程学攻击,并且包含后门功能。
我们对该恶意软件的最新分布链进行了描述,并将视线聚焦在其中一些有趣的地方上,例如攻击者滥用Yandex.Mail来存储恶意Payload,同时攻击者还投放了Facebook广告。此外,我们还分析了Mispadu使用的配置文件。
最后,我们分析了一个恶意的Google Chrome扩展程序,我们观察到Mispadu在巴西分发,这个扩展程序的目标是通过攻击巴西的Boleto付款平台来窃取信用卡信息、敏感银行信息,并尝试从受害者那里窃取金钱。
如果大家有任何疑问,欢迎通过[email protected]与我们联系。本文涉及的威胁指标也可以在我们的GitHub存储库中找到。
威胁指标
针对巴西的恶意活动
A4EDA0DD2C33A644FEEF170F5C24CF7595C19017(MSI安装工具,检测为VBS/TrojanDownloader.Agent.RVY)
A9BADCBF3BD5C22EEB6FAF7DB8FC0A24CF18D121(Mispadu注入工具,检测为Win32/Injector.EHXF)
337892E76F3B2DF0CA851CCF4479E56EAF2DB8FD(Mispadu银行木马,PE编译时间戳为2019年9月8日,检测为Win32/Spy.Mispadu.C)
A8CD12CC0BBD06F14AA136EA5A9A2E299E450B18(Mispadu银行木马,PE编译时间戳为2019年10月2日,检测为Win32/Spy.Mispadu.C)
针对墨西哥的恶意活动
CFE21DBFB97C2E93F099D351DE54099A3FC0C98B(MSI安装工具,检测为VBS/TrojanDownloader.Agent.RVY)
251AC7386D1B376FB1CB0E02BDFC45472387C7BC(Mispadu注入工具,检测为Win32/Injector.EHXF)
A4FC4162162A02CE6FEADFE07B22465686A0EC39(Mispadu银行木马,PE编译时间戳为2019年9月10日,检测为Win32/Spy.Mispadu.J)
710A20230B9774B3D725539385D714B2F80A5599(Mispadu银行木马,PE编译时间戳为2019年9月11日,检测为Win32/Spy.Mispadu.J)
Google Chrome恶意扩展
3486F6F21034A33C5425A398839DE80AC88FECA8(组件1:控制窗口,检测为JS/Spy.Banker.DQ)
1D19191FB2E9DED396B6352CBF5A6746193D05E8(组件2:窃取信用卡数据,检测为JS/Spy.Banker.DQ)
22E6EBDFAB7C2B07FF8748AFE264737C8260E81E(组件3:窃取银行和Boleto数据,检测为JS/Spy.Banker.DQ)
窃取凭据的潜在有害应用程序
63DCBE2DB9CC14564EB84D5E953F2F9F5C54ACD9(电子邮件客户端凭据窃取程序,检测为Win32/PSWTool.MailPassView.E)
8B950BF660AA7B5FB619E1F6E665D348BF56C86A(Google Chrome凭据窃取程序,检测为Win32/PSWTool.ChromePass.A)
F6021380AD6E26038B5629189A7ADA5E0022C313(Mozilla Firefox凭据窃取程序,检测为Win32/PSWTool.PassFox.F)
76F70276EB95FFEC876010211B7198BCBC460646(Internet Explorer凭据窃取程序,检测为Win32/PSWTool.IEPassView.NAH)
恶意文件名称
C:\Users\Public\%COMPUTERNAME%[1]
C:\Users\Public\%COMPUTERNAME%[1]_
C:\Users\Public\{winx86,libeay32,ssleay32}.dll (由加载工具脚本下载的合法DLL;部分指示符)
恶意服务器
http://18.219.25[.]133/br/mp1a{1,sq,sl,ss}.aj5
http://3.19.223[.]147/br/mp1a{1,sq,sl,ss}.aj5
http://51.75.95[.]179/la8a{1,sq,sl,ss}.ay2
伪造优惠券URL
巴西:http://promoscupom[.]cf/
巴西:http://mcdonalds.promoscupom[.]cf/index3.html
墨西哥:http://mcdonalds.promoscupom[.]cf/index2.html
比特币钱包
3QWffRcMw6mmwv4dCyYZsXYFq7Le9jpuWc
MITRE ATT&CK技术
1、战术:初始访问
名称:鱼叉式链接(T1192)
描述:在Mispadu垃圾邮件恶意活动中,受害者在点击恶意链接后会下载Payload。
2、战术:执行
名称:Rundll32(T1085)
描述:Mispadu银行木马借助rundll32.exe运行的注入工具来执行。
3、战术:持久性
名称:浏览器扩展(T1176)
描述:针对巴西的Mispadu变种使用Google Chrome浏览器扩展。
名称:注册表运行键、启动文件夹
描述:Mispadu通过在启动文件夹中创建链接来保证持久性。
4、战术:逃避防御
名称:解密或解码文件或信息(T1140)
描述:Mispadu使用编码后的配置文件。
名称:伪装(T1036)
描述:Mispadu伪装成优惠券。
名称:使用脚本(T1064)
描述:Mispadu在其分发链中仅使用VBS脚本。
5、战术:凭据访问
名称:输入捕获(T1056)
描述:Mispadu可以运行键盘记录程序,其对应的Google Chrome扩展程序通过对输入内容进行捕获来窃取各种敏感信息。
名称:文件中的凭据(T1081)
描述:Mispadu使用其他工具,从文件中提取电子邮件客户端和Web浏览器的凭据。
名称:注册表中的凭据(T1214)
描述:Mispadu使用其他工具,从Windows注册表中提取电子邮件客户端和Web浏览器的凭据。
6、战术:发现
名称:发现文件和目录(T1083)
描述:Mispadu搜索各种系统路径,以确定计算机上安装了哪些应用程序。
名称:发现进程(T1057)
描述:Mispadu搜索各种进程名称,以确定受害计算机上正在运行哪些应用程序。
名称:发现安全软件(T1063)
描述:Mispadu会扫描系统中已经安装的安全软件。
名称:系统信息发现(T1082)
描述:Mispadu会提取操作系统的版本、计算机名称和语言ID。
7、战术:收集
名称:剪贴板数据(T1115)
描述:Mispadu捕获并替换剪贴板中的比特币钱包数据。
名称:屏幕捕获(T1113)
描述:Mispadu包含截屏的功能。
8、战术:命令和控制
名称:自定义加密协议(T1024)
描述:MIspadu是用自定义加密协议来保护其数据。
9、战术:渗透
名称:在命令和控制通道上的渗透(T1041)
描述:Mispadu将收集到的数据发送到C&C服务器。