首页
社区
课程
招聘
[翻译]对攻击澳大利亚用户的Gustuff银行木马的技术分析
发表于: 2019-6-20 10:42 11778

[翻译]对攻击澳大利亚用户的Gustuff银行木马的技术分析

2019-6-20 10:42
11778

Cisco Talos发现了一个新的针对澳大利亚金融机构的基于Android生态的恶意活动。随着调查的进行,Talos发现该活动与之前在澳大利亚发现的“ChristinaMorrow”垃圾短信群发诈骗有关。

虽然该恶意软件收集凭证的机制并不是特别复杂,但其自我保护机制比较先进。虽然这不是传统的远控(RAT),但该活动似乎主要还是针对个人用户。除了凭证窃取之外,该恶意软件可以上传联系人列表,电话号码关联的名字,以及设备上的文件和照片等。但这并不意味着公司和组织可以放松警惕,相关人员仍然应该留意此类特洛伊木马,因为攻击者的目标也可能是包含大量资金的公司账户。

攻击者可以利用恶意软件收集的信息和对受害者移动设备的控制,执行更复杂的社会工程攻击。攻击者可以使用此木马来获取受害者的用户名和密码,然后登录受害者工作组织的系统。在这个典型的例子中,基于SMS的双因素身份验证也不起作用,因为攻击者可以读取SMS短信。公司可以通过部署基于客户端的双因素身份验证(例如Duo Security)来保护自身免受此类侧信道攻击。

该恶意软件令人印象最深刻的功能之一是其灵活性。如果C2服务器被关闭,攻击者仍然可以通过直接向受感染设备发送SMS短信的方式来恢复对恶意软件的控制。这对于防御方来说,应对变得更加困难。

该恶意软件主要的感染传播渠道是SMS。就像以前的老派邮件蠕虫利用受害者的邮件通讯录选择下一个受害者一样,在该银行木马的激活期中,也会读取受害者的手机通讯录。该木马接收来自C2的命令进行传播。

C2下发的传播命令

-C2下发的传播命令-

受害者设备收到命令sendSMSMass。通常,此消息一次针对四五个人。短信包含一条消息和一个URL。攻击者的理念也是,如果新的受害者收到来自熟人的SMS短信,安装恶意软件的概率更大。当受害者尝试访问SMS短信中的URL时,C2会检查设备是否符合安装恶意软件的要求(详情参阅基础设施部分)。如果设备不符合要求,则不会收到任何数据,否则,设备将被重定向到第二台服务器下载恶意软件副本。

该恶意活动关联的域名于2019年1月19日注册。但是,Talos确定该域名至少自2018年11月以来就已经被使用。在调查期间,Talos还找到了其他使用相同基础设施来部署类似活动的不同版本的恶意软件。

受害者全球分布

-受害者全球分布-

基于多个证据,Talos坚信该活动针对的是澳大利亚金融机构。Umbrella监测系统显示,大部分请求来自澳大利亚,而且大多数被感染设备的电话号码带有澳大利亚的国家代码。另外,特有的app界面专门是为澳大利亚金融机构设计的,并且在澳大利亚境内,C2也没有被屏蔽。

DNS请求频率随时间分布

-DNS请求频率随时间分布-

该恶意活动似乎尚未处于爆发期。数据显示,受害者设备平均每小时收到三次请求。请求仅在安装后触发,但也无法保证安装一定成功。当结合分析Talos在调查期间收到的SMS短信的命令数量时,我们得出结论,攻击者正在积极地传播恶意软件,但这似乎并不会导致与之前相同规模的设备被感染。

恶意软件界面样例

-恶意软件界面样例-

如上图所示,可以看到该活动中恶意软件的注入界面样例。

调查中,我们也发现了其他不同名字的恶意软件包,其中一些可能已用于之前的恶意活动或准备用于新的恶意活动。

调查期间,研究人员发现了一款名为”Gustuff“的恶意软件。鉴于缺乏IOC(入侵威胁指标),我们决定检测该恶意软件是否与我们一直在研究的是同一款。我们的威胁情报和拦截团队发现Gustuff恶意软件在Exploit.in论坛中以僵尸网络的方式对外租赁。名为“bestoffer”的卖家账号,已在该论坛被封禁。

Gustuff广告帖子截图

-Gustuff广告帖子截图-

上图中提到的公司来自澳大利亚,与我们研究的恶意活动相匹配。作者提供的截图也说明其宣称的功能与我们在分析中发现的功能一致。

管理面板

-管理面板(变量名和HTML文件名与C2下发的命令匹配)-

管理面板展示了app配置,与C2下发的命令匹配。

选择国家

-选择国家-

管理控制台截图还显示了按国家/地区筛选结果的功能。上图中的代码“AU”,表示澳大利亚。

基于已有证据,Talos坚信两者为同一款恶意软件,即Gustuff恶意软件。

在manifest中,该恶意软件请求了大量权限。然而,它并没有请求像BIND_ADMIN之类的权限。随后我们会解释到,该恶意软件并不需要高级别权限来执行恶意行为。

Manifest中的权限

-Manifest中的权限-

该恶意软件在设计时已考虑了反检测和分析。它在C2和恶意软件代码中都有一些保护措施。代码不仅做了混淆,还加了壳,除了给静态分析加大难度外,还会干扰调试。

Manifest中的activity声明

-Manifest中的activity声明-

DEX文件中的类

-DEX文件中的类-

主要的类都加了壳,manifest中定义的类有个handler指向MAIN入口,但它并不存在于DEX文件中。

使用Android Studio IDE调试报错

-使用Android Studio IDE调试报错-

加壳的副作用之一是Android Studio IDE无法调试代码,因为IDE通过从ADB中调用manifest中声明的activity来运行代码。由于启动时该类并不存在,所以程序无法在调试器里运行。Talos也分析了脱壳后的代码,但是脱壳分析不在本文讨论范围内。

检测模拟器的代码

-检测模拟器的代码-

作为其保护机制的一部分,恶意软件有效负载首先检测模拟器环境以对抗沙箱分析。它会检测不同类型的模拟器,包括QEMU,Genymotion,BlueStacks和Bignox。如果恶意软件确定未在模拟器上运行,还会执行其他检查,以确保不会被检测。

检测SafetyNet Google API的代码

-检测SafetyNet Google API的代码-

它还会检查Android SafetyNet是否处于活动状态并向C2报告,帮助C2决定在恶意软件被检测出之前,在移动设备上执行的操作。

检测的杀毒程序包列表

-检测的杀毒程序包列表-

有效负载很好地保护了自己,并会检查移动设备上安装的杀毒程序。该木马利用Android Accessibility API拦截用户和移动设备之间的所有交互。

Android开发者文档将AccessibilityEvent描述为一个“类”,表示当用户界面中出现明显事件时系统运行的辅助功能。例如,单击按钮、界面聚焦等等。

对于每次交互,恶意软件将检查其是否是源于杀毒列表中的包,恶意软件利用Accessibility API的另一个功能,有个函数名为“performGlobalAction”,介绍如下:

Android文档将该函数描述为“全局操作,可无视当前应用程序或应用程序中的用户位置,随时执行操作。例如,返回,回到主界面,打开最近记录等等”。

木马调用此函数并执行GLOBAL_ACTION_BACK,等同于按下返回键,并取消打开杀毒程序。

当用户尝试访问目标app时,恶意软件使用相同的拦截方式在目标app界面上覆盖其WebView页面,从而拦截凭证数据。

恶意软件在成功安装并且从后台运行任务列表中移除之后,才会向C2发送通信信标。

信标信息

-信标信息-

每次恶意软件安装成功都会生成一个不同的ID,但是token是唯一的。之前完成的某些检测的结果会立即发送给C2,比如safetyNet、 admin以及defaultSMSApp。恶意软件每60秒向3e6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8W2)9J5y4X3I4@1i4K6y4n7f1@1g2d9g2V1g2d9i4K6t1$3k6%4c8Q4x3@1u0Q4x3V1k6S2M7r3W2Q4x3V1k6$3x3W2)9J5c8X3N6W2N6q4)9J5k6i4m8Z5M7q4!0q4y4g2)9^5c8W2)9&6x3g2!0q4z5g2)9^5x3q4)9^5x3g2!0q4y4q4!0n7c8W2!0m8x3g2!0q4y4W2!0m8x3q4)9^5y4#2!0q4x3#2)9^5x3q4)9^5x3R3`.`.

C2回复

-C2回复-

C2会检测国家字段,如果是空或者非目标国家,则会返回“Unauthorized(未授权)”,否则会返回编码“OK”的JSON字符串和要执行的命令。

命令列表

-命令列表-

这些命令就是其字面意思。命令以回复信标的方式下发,执行结果会发送回707K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8W2)9J5y4X3I4@1i4K6y4n7f1@1g2d9g2V1g2d9i4K6t1$3k6%4c8Q4x3@1u0Q4x3V1k6S2M7r3W2Q4x3V1k6$3x3W2)9J5c8Y4y4W2N6q4)9#2k6Y4y4@1j5i4c8W2i4K6u0W2M7r3S2H3i4@1f1K6i4K6R3H3i4K6R3J5

“changeServer”命令示例

-“changeServer”命令示例-

命令以JSON格式下发,恶意软件代码本身已经做过混淆,而并非是加壳引入的。混淆支持自定义,且部分基于Base85编码,在恶意软件中比较少见。Base85编码常见于PDF和PostScript文档中。恶意软件的配置存储在自定义选项文件中,也用了相同的混淆方法。

如上所述,恶意软件具有多种防御机制。除了混淆和环境检测之外,还有一些有趣的反沙箱机制。

安装后,用户需要运行该app。用户得按“关闭”按钮才能完成安装。但是,这不会关闭app,而是会在后台运行。当app在后台运行时,虽然服务已在运行,但却不会发送信标。信标只会在app从后台移除后才会开始发送,最终将app关闭,这样才会触发服务开始发送信标。

如前所述,信标每60秒发送一次。但是,只有inactiveTime字段(参见上面的信标图片)的值不低于2000000时才会从C2接收命令。用户每次执行某活动时都会重置该值。

检测阶段过后,恶意软件开始活跃,但是先要进行七个步骤,每个步骤关联一个命令:
1.uploadPhoneNumbers:获取联系人列表中的所有电话号码。除了联系人姓名和电话号码本身的自然价值之外,还可以利用SMS短息功能作为攻击渠道感染其他受害者,这也是获取联系人列表的目的之一。
2.checkApps:
询问恶意软件是否已安装作为参数发送至受害者设备的软件包。该恶意软件在源码中硬编码了209个包。C2也可以发送更新列表。

C2下发的软件包列表

-C2下发的软件包列表-

3.adminNumber:设置管理员手机号。此例中,管理员手机号归属于澳大利亚的移动网络。

管理员手机号

-管理员手机号-

4.changeServer:恶意软件更换C2地址,API和通信协议保持不变。

更换C2请求

-更换C2请求-

为防止轻易识别,URL中新的C2的信息被混淆。

5.changeActivity:此命令可针对目标app和活动部署覆盖WebView页面。

changeActivity命令

-changeActivity命令-

注入的WebView页面托管在另一台服务器上,而不是C2。

6.params:此命令允许攻击者更改恶意软件中的配置参数。在激活期这个阶段,恶意软件延长了信标间隔以避免检测。

修改信标的命令

-修改信标的命令-

7.changeArchive:激活期的最后一个命令是下载压缩包。压缩包存储在托管WebView页面的服务器上。压缩包是一个包含多个文件的ZIP,并受密码保护。

changeArchive命令

-changeArchive命令-

在激活期之后,恶意软件将开始收集信息并传播。

激活期之后,该木马开始执行恶意活动。恶意活动与设备配置有关。根据受害者设备是否安装了目标app,以及安装的杀毒软件或地理位置的情况,恶意软件选择执行从目标app中窃取凭证,获取所有个人信息,或使用受害者的设备发送传播木马的SMS短信。

恶意软件覆盖WebView页面以欺骗用户并最终窃取其登录凭证。这是攻击者需要的信息。在激活期的步骤6中,会创建第一个WebView覆盖页面。

要求用户输入PIN的覆盖页面

-要求用户输入PIN的覆盖页面-

该覆盖页面要求用户提供其PIN以解锁移动设备,之后便会立刻上报至C2。激活期的最后一步是下载受密码保护的ZIP文件。此文件包含生成覆盖页面所需的所有HTML,CSS和PNG文件。Talos在压缩包中发现了189个银行和加密货币交易所的logo,这些机构可能是目标。压缩包内还包含针对澳大利亚金融机构的所有关键代码。攻击者使用命令changeActivity激活覆盖页面,如激活期的步骤5所示。分析中,我们可以看到覆盖页面的HTML代码存储在C2上。但是,由于下载到设备中的压缩包包含所有关键文件,并且攻击者可以通过SMS访问设备,因此即使不通过C2,攻击者也可以对设备进行控制。

支撑该恶意软件的基础设施比较复杂,比较清楚的是在各个阶段涉及至少两层结构。

基础设施信息

-基础设施信息-

基础设施由多层构成,虽然灵活性不高,但每一层都有一定程度的保护机制。所有IP地址都归属于一家德国的IP托管公司Hetzner。

Cisco Cloud Web Security(CWS)Web Security Appliance(WSA)web扫描可识别恶意网站并检测这些攻击中使用的恶意软件。

Email Security可以阻止攻击者在恶意活动中发送的恶意电子邮件。

Next-Generation Firewall(NGFW)Next-Generation Intrusion Prevention System (NGIPS)Meraki MX等Network Security设备可以检测与此威胁相关的恶意活动。

AMP Threat Grid有助于识别恶意二进制文件并为所有Cisco安全产品构建保护。

Umbrella,我们的安全互联网网关(SIG),无论用户是在公司网络上还是在公司网络外,都会阻止用户访问恶意域名、IP和URL。

Open Source SNORT Subscriber Rule Set客户可以通过购买下载snort.org上的最新规则包来保持更新。

产品覆盖

Facebook-photos-au.su
Homevideo2-12l.ml
videohosting1-5j.gq

hxxp://88.99.227[.]26/html2/2018/GrafKey/new-inj-135-3-dark.html
hxxp://88.99.227[.]26/html2/arc92/au483x.zip
hxxp://94.130.106[.]117:8080/api/v1/report/records.php
hxxp://88.99.227[.]26/html2/new-inj-135-3-white.html
hxxp://facebook-photos-au[.]su/ChristinaMorrow
hxxp://homevideo2-12l[.]ml/mms3/download_3.php


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-6-20 11:29 被SpearMint编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回