记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

细节揭秘:Google Play Store上的恶意软件,如何借助广告网络完成“病毒式”传播

2017-06-05 08:50

摘要:本文由卡巴斯基实验室安全研究员经一年多的观察研究总结而成,主要阐述了Google Play Store上一类广告恶意软件的传播和感染方式与途径,项目起因在于一个“Guide for Pokémon Go”恶意软件的发现,作者好奇这类恶意软件的传播速度如此之快,每天的新增用户下载量数以万计,事情的转折点是用户评论区的一些评论内容……

1.“Guide for Pokémon Go”分析

2016年底,我们向Google报告了一个Google Play store上的新发现的恶意程序:“Guide for Pokémon Go”。(注:“Pokémon Go”,即口袋妖怪GO,是由任天堂、Pokémon公司和谷歌的Niantic Labs公司联合制作开发的现实增强(AR)宠物养成对战类RPG手游。该作于2016年7月7日登陆Android和iPhone平台,首发于App Store和Google Play。),该恶意程序上架几星期,下载数量超过500000次,卡巴斯基实验室观测到的数据表明,至少有6000个用户被感染,影响范围包括俄罗斯、印度和印度尼西亚,该应用程序是用英文编写的,因而在英语地区可能会有更多的人被击中。

分析表明,该应用程序包含一个恶意的代码,下载安装后能够获得Root用户权限,受感染的Android手机会主动安装广告软件等程序。

卡巴斯基实验室将该木马命名为:HEUR:Trojan.AndroidOS.Ztorg.ad。

木马特征:

该木马有多层防御机制帮助其绕过检测,包括通过加密原始的可执行文件、对其进行商业包装使其难以分析。加压后的可执行文件一个与“Pokémon Go guide”关联的代码和一个很小的被混淆过的模块。

感染的过程:

用户启动应用程序时,被混淆过的模块是静默的,当用户安装或卸载其它应用程序时,它才开始活动。首先它会检查应用程序的运行环境:一个真正的设备?还是一个虚拟机?如果是一个真正的设备,木马将在两个小时之后开始恶意活动。

木马开始恶意活动的第一件事是连接到它的命令和控制(command-and-control ,C&C)服务器,向其上传设备有关的数据,包括国家、语言、设备类型和操作系统版本号。

服务器接收到信息后,如果希望木马继续,会用一个ID字符串来响应。木马在接受到这个ID字符串后会进行下一步行动,如果没有受到任何信息,它会继续等待两个小时,然后再重新提交请求。C&C服务器可以通过控制木马客户端程序来筛选攻击目标,比如跳过某些不希望攻击的目标、或者可能是沙箱/虚拟机的目标。除此之外,还为恶意程序提供了一个额外的保护层。

C&C服务器收到第二个请求之后,会向木马发送一个包含URL的JSON文件。木马从这个URL地址上下载文件,将其解密后执行。卡巴斯基把这个文件命名为HEUR:Trojan.AndroidOS.Ztorg.a,该文件同样是经过混淆的。执行后,木马会继续下载更多的文件,这些文件都是加密过的,而且大部分是2012~2015年之前的本地Root漏洞利用包,其中包括一个Hacking Team之前使用过的。这些额外的附加模块的文件列表如下:

HEUR:Backdoor.AndroidOS.Ztorg.c,

HEUR:Trojan.AndroidOS.Muetan.b,

HEUR:Trojan.AndroidOS.Ztorg.ad,

HEUR:Backdoor.AndroidOS.Ztorg.h,

HEUR:Backdoor.AndroidOS.Ztorg.j,

HEUR:Trojan-Dropper.AndroidOS.Agent.cv,

HEUR:Trojan.AndroidOS.Hiddad.c.

使用上述的这些漏洞利用包,木马将获得受感染主机的Root访问权限。获得Root权限后,木马会向系统文件夹安装模块,在用户不知情的情况下安装或卸载其它应用用户,也可能会向用户显示广告信息。

包含此木马的其它应用程序在Google Play Store的下载量约有10000(数据来源于Google Play),但实际情况远不止这个数目。

文件中提到的恶意文件的MD5值:

MD5 of Malicious Files Mentioned in Article

8CB3A269E50CA1F9E958F685AE4A073C

0235CE101595DD0C594D0117BB64C8C3

 2. “Ztorg”家族 木马分析

这项研究开始于在Google Play Store上发现的恶意程序:“Guide for Pokémon Go”,它在几个星期内的下载量超过500000,木马被命名为trojan.androidos.ztorg.ad (详情见上文)。经过一番搜索,发现Google Play Store上还有另外一些类似的被感染的应用程序。其中一个名为“Privacy Lock”,它在2016年12月15日被上传到Google Play Store,目前安装量超过了100万,它是著名的Ztorg家族的木马的变种。

在跟踪这些受感染的应用程序的过程中,有两件事情触动了我:

1.它们是如何迅速流行起来的

2.用户评论部分的评论内容

这些受感染的应用程序传播速度很快,每天都有成千上万的新用户!

例如,在我向谷歌报告com.fluent.led.compass的当天,它的安装量在10,000~50,000。

第二天,它仍然没有从Google Play被删除,其安装量增加了10倍,达到了100,000~500,000。这意味着一天内至少有50,000个新感染的用户。

评论

有很多评论说到,人们下载这些应用程序可以获得积分、奖金等。

认真查看这些评论,用户提到了一些其他应用程序:AppCoins,Advertapp等。

以上,就是这次研究工作的开始。  

广告网络和激励用户的应用程序

应用程序的评论中提及最多的是Appcoins,所以我先把它下载安装了一下。之后,Appcoins提示我安装一些其他的应用,其中一个是恶意的,如果安装,可以获得0.05美元的奖励。

分析下来,结果令我很是惊讶,只有一个是恶意的,其它的应用程序都是干净的。

有件很有趣的现象,这些应用程序会检测设备上的Root权限,如果已经有了就不再支付。Ztorg感染设备后的第一件事就获得超级用户权限。

我联系了Appcoins的开发商,试图找到这个恶意软件的广告提供商,但他们回复说已经删除了广告提供商,并且回复我说,Appcoins没有恶意,也没有过错。

之后,我分析了受感染用户安装的应用程序,并列出了最受欢迎的的奖励用户安装的软件列表:

mobi.appcoins

https://play.google.com/store/apps/details?id=mobi.appcoins

com.smarter.superpocket

https://play.google.com/store/apps/details?id=com.smarter.superpocket

com.moneyreward.fun

https://play.google.com/store/apps/details?id=com.moneyreward.fun

当然了,除了奖励,它们还提供恶意软件:

上述这些,都是在Google Play上发现的包含Ztorg家族木马的应用程序,安装它们的用户可以获得0.04~0.05USD。

活动

我决定再进一步的分析一下提供和存储这些应用程序的流量。

一个广告应用程序转变为一个恶意的应用程序,有一个典型的会话过程:

广告应用程序从它的服务器(比如,moneyrewardfun[.]com)上接收到软件供应商的报价请求,其中包括恶意软件的报价请求。恶意软件的报价信息通常来自一些有名的AD服务器(比如,supersonicads.com 和 aptrk.com)。

AD服务器的域名经过一系列的重定向(有一个案例中存在27此重定向),应用程序会被指向global.ymtracking.com 或 avazutracking.net,这些网络也和ADS有关。

然后,被重定向到track.iappzone.net。

最终,在Google Play Store上显示的URL是:app.adjust.com。

我跟踪到的域名是had track.iappzone.net 和 app.adjust.com。

其中,app.adjust.com是一个著名的“商业情报平台”,恶意活动的URL地址链接示例如下:

https://app.adjust.com/4f1lza?redirect=https://play.google.com/store/apps/details?id=com.game.puzzle.green&install_callback=http://track.iappzone.net…

通过分析这些URL,可以识别在Google Play上面受感染的应用程序。

恶意服务器

来自iappzone.net的恶意URL地址示例如下:

http://track.iappzone.net/click/click?offer_id=3479&aff_id=3475&campaign=115523_201|1002009&install_callback=http://track.supersonicads.com/api/v1/processCommissionsCallback.php?advertiserId=85671&password=540bafdb&dynamicParameter=dp5601581629793224906

这个URL结构(offer_id=..&aff_id=..&campaign=..)与OffersLook(为移动广告网络、网盟提供广告追踪、监控、分析服务的营销管理云平台)跟踪系统有关。它包括一些有趣的参数,如供应商的ID、会员ID等。不过犯罪分子做了改变,使得这些参数对我们是无效的。只有一个例外install_callback,这个参数包含广告服务的名称。

在搜索iappzone.net时,找到了一些包含这个URL的apk文件,使用卡巴斯基实验室的产品进行检测,所有这些apk文件都被标识为Ztorg恶意软件。

这里还有一个有趣的现象,iappzone.ne使用的IP地址是52.74.22.232,同一IP被aedxdrcb.com使用过(这一信息在CheckPoint关于Gooligan的报告中被提及)。CheckPoint报告被公布后,iappzone.net(这不是报告中提到的)被移动到一个新的IP:139.162.57.41。

AD模块

幸运的是,我不仅从这些APK文件中找到了iappzone.net,还在哪些干净的应用程序中发现了iappzone.net的踪迹。所有这些应用程序都有一个广告(AD)模块:Batmobi 或 Mobvista 。分析这些广告模块的网络流量,其与奖励用户安装促销应用程序的APP的网络流量很相似。

下边是一个Batmobi AD模块的应用实例,该模块从服务器api2.batmobil.net接收一个JSON文件。

用户可以看到一个广告应用程序的列表:

用户点击某一项应用程序后,会被重定向到 Google Play Store。

在上边的例子中,重定向的链接示例如下:

api2.batmobil.net -> global.ymtracking.com->tracking.acekoala.com -> click.apprevolve.com ->track.iappzone.net ->app.adjust.com -> play.google.com

通过分析含有iappzone.net的广告软件的活动,找到了Google Play上大约100个受感染的应用系统。

另外还有一点需要注意的是,之前还提到过的网址中包含的一个install_callback参数,分析的结果表明,网络犯罪份子使用了以下四个广告网络:

这并不能说明恶意软件只使用这四个网络进行分发。这些广告网络正在向广告公司更加广泛的推销他们的广告。在这个项目分析过程中,我发现了一些恶意广告来自于类似DuAd 或 Batmobi这样的广告网络,不过经过了几个重定向之后,这些广告会重新指向上边提到的那四个广告网络。

此外,还跟踪到这些网络之间相互分配广告的情况,类似下边这样:

batmobi -> YeahMobi -> SupersonicAds

截止到2017年3月份,没有找到其它广告网络。

其它来源

在项目研究过程中,发现一些受感染的应用程序并不是由上边这些广告网络促放的。进一步检测它们的路径,发现存在好几种模式。检测到这些应用程序大多数的路径(除了安装路径/data/app)如下:

[sdcard]/.android/ceroa/play/

[sdcard]/.nativedroid/download/

[sdcard]/.sysAndroid/download/

[sdcard]/.googleplay_download/

[sdcard]/.walkfree/apks/583737491/

[sdcard]/Android/data/TF47HV2VFKD9/

[sdcard]/Android/Data/snowfoxcr/

[sdcard]/DownloadProvider/download/

分析上述应用程序使用的路径,现在它们都已经被卡巴斯基实验室产品标记为广告软件或恶意软件。尽管如此,下载到这些文件夹下的应用程序并不都是恶意的,其中大部分都是干净的。

受感染的应用程序

类似的应用程序

分析所有这些受感染的应用程序,发现他们大多数都不是额外添加的恶意代码。其它的研究项目中大多数情况犯罪份子都只是向干净的应用程序中添加恶意代码,但这个案例不是这样。似乎这些应用程序都是由恶意软件分发者特别创建的。

Google Play上的发行者

从Google Play搜索到这些软件的发行者的Email信息:

搜索这些Email地址,发现大部分的电子邮件都与越南有关,比如:

1. trantienfariwuay -> tran tien [fariwuay] – Vietnamese singer

2. liemproduction08 -> liem production [08] – Thuat Liem Production, company from Ho Chi Minh City, Vietnam

3. nguyenthokanuvuong -> nguyen [thokanu] vuong – Vietnamese version of Chinese name Wang Yuan

恶意模块

Google Play上几乎所有受感染的应用程序上的恶意模块都有一个相同的功能:下载并执行主模块。在这个项目中,发现了三种具有此功能的恶意模块。

Dalvik

Google Play上受感染的包含Dalvik模块的应用程序都被打包器保护者。拿一个软件中名为“com.equalizer.goods.listener”的软件包来举例,它使用Qihoo Packer工具进行包装。这个应用程序由很多不同的类,其中只有一少部分跟恶意模块相关。恶意代码由  PACKAGE_ADDED 和 PACKAGE_REMOVED系统事件触发,这意味着恶意代码只能在用户安装/更新/删除应用程序后才开始执行。

第一步,恶意模块将检查它的运行环境,判断是否运行在虚拟机、仿真器或沙箱上。要做到这一点,它会检查几十个文件,这些文件存在于不同的机器上,同时还会检查几十个不同系统的属性值。如果上述检查可以通过,即证明运行在一个真实的设备之后,木马将启动一个新的线程。

在这个新的线程中,木马将等待一个随机时间。一个小时或一个半小时。之后,木马会向C&C服务器发送一个GET HTTP请求。最后,木马会受到一个使用DES加密过的JSON文件,这个JSON文件包含一个可以下载文件的URL地址。下载到的JAR文件(“xorred”)包含恶意的classes.dex,这就是主模块。

Native

自从2016年10月开始陆续向Google报告了包含恶意模块的APPs,Google提高了他们的检索系统几乎捕捉到了所有的恶意软件,这也就意味着犯罪份子不得不想办法绕过这些检测。一开始,他们改变了代码中的一些方法,使用了商业包装器。但在2017年2月份,他们重写了全部代码,把所有功能封装成ELF(原生的.so)库。

如:com.unit.conversion.use (MD5: 92B02BB80C1BC6A3CECC321478618D43)

恶意代码由应用程序的onCreate方法触发。

在classes.dex中的恶意代码的逻辑比较简单:加载MyGame库启动一个新线程,针对沙箱检测有两种方式,均从代码库里执行。

在这个版本中,执行前等待的时间比之前的版本小很多,只有82秒。

启动后,MyGame库将会检测当前的运行环境。两种检测方法,:一种是记录BATTERY_CHANGED事件的接收器信息,检查是否正确;另外一种是试图获取软件有关信息—com.android.vending package(MATCH_UNINSTALLED_PACKAGES flag)。如果这两个方法的返回值都是“False”,恶意软件库将向C&C服务器发送一个Get请求。

收到一个返回值:

“BEgHSARIB0oESg4SEhZcSUkCCRFICAUSHwoLEhZIBQkLSQ4fSQ4fVlZVSQEWVlZVSAcWDUpeVg==”

库文件将解码这个字符串,使用某个Key值进行异或运算。

结果:

b.a.b.a,b,http://dow.nctylmtp.com/hy/hy003/gp003.apk,80

g_class_name = b.a.b.a

g_method_name = b

g_url = http://dow.nctylmtp.com/hy/hy003/gp003.apk

g_key = 80

g_url的这个gp003.apk文件将会被下载并缓存到应用程序的文件夹中(/data/data/<package_name>/cache)。使用g_key值与它进行异或运算后,通过DexClassLoader类的ClassLoad方法进行加载。

如上所述,网络犯罪疯子对恶意代码做了很多改动,包括使用C代码取代Java代码,但是功能仍然是一样的:连接到C&C服务器,下载并执行主模块。

检测绕过

当我收集到这些恶意软件的IDs后,我从Google Play上下载了这些应用程序到我的测试机上,然后,什么都没有发生。

经过一些调查,我发现,网络犯罪份子只向哪些通过广告安装这些APP的用户返回恶意的有效载荷。这与其它的一些直接从Google Play上下载就可以感染手机的恶意软件不同。

滴管

2017年4月份,网络犯罪份子又一次改变了他们的Ztorg代码,这一种类型的恶意模块,网络犯罪分子把所有的功能打包到classes.dex。与前一个版本的主要区别是,它不再是一个木马下载器,不再从恶意服务器上下载主模块,而是在安装包的资源文件夹中包含一个加密过的模块,通过解码,运算,并加载主模块。

PayLoad(主模块)

分析所有这些代码的运行,发现主模块有一个相同的功能。以最近的一个(2dac26e83b8be84b4a453664f68173dd)为例进行说明,它是通过恶意的MyGame库被下载的。

该模块被感染模块下载后,使用ClassLoad方法被加载。该模块的主要目的是获取Root权限并安装其它模块,通过下载或删除一些文件完成这些工作。

一些文件只能从这个模块中删除,它们没有URL;

一些域名指向down.118pai.com的URLs在这次项目中不能使用,而在2016年9月份观察到的一个版本的主模块中,这个域名是可用的。

所有这些恶意文件会被添加到/system/etc/install-recovery.sh文件上,这意味着即使被恢复出厂设置,这些文件依然保留在系统中。

这些文件可以分为一下几组:

Clean files, tools

Exploits, exploit packs, exploit droppers

大多数文件都能使用木马下载,其中一些来自木马本身。大多数的下载文件都是相同的。

Native (ELF) malicious modules 

这类文件只能由木马本身分解出来。

Malicious apps

.gmtgp.apk (7d7247b4a2a0e73aaf8cc1b5c6c08221)

这个程序被检测为木马:Trojan.AndroidOS.Hiddad.c,C&C服务器是 http://api.ddongfg.com/pilot/api/,它会下载一个额外的加密模块,执行解密并加载。在我测试的案例中,它下载了Trojan-Clicker.AndroidOS.Gopl.a(af9a75232c83e251dd6ef9cb32c7e2ca), 其C&C服务器是http://g.ieuik.com/pilot/api/,附加的域名是:g.uikal.com 和 api.ddongfg.com

这个木马使用可访问性服务,可以从Google Play Store安装(甚至购买)APPs。

它也可以把Apps下载到本地SD卡的googleplay_download目录里,通过点击按钮进行安装。googleplay_download是传播Ztorg木马的来源之一。点击按钮使用了13中语言:英语,西班牙语,阿拉伯语,印地语,印尼,法语,波斯语,俄语,葡萄牙语,泰国,越南,土耳其和马来语,你可以任意选择。

安装应用程序

下列应用程序在手机感染后被悄悄的下载并安装到设备上。

它们也有恶意模块,接收C&C服务器的命令后可以下载广告和应用程序。不过类似Mobvista 和 Batmobi 这样的会创建一个AD递归,因为这些广告服务被用来分发原始感染的应用。

成功感染后,SD卡上会新增几个文件夹:

    .googleplay_download

.nativedroid

.sysAndroid

DownloadProvider

所有这些文件夹被一些恶意软件用来传播原始的Ztorg,或者分发其它含恶意代码的应用程序。

 3.结论 

在这个项目的研究过程中,发现Google Play Store上有近百个应用程序感染了Trojan.AndroidOS.Ztorg病毒。其中第一个名为“Privacy Lock”,于2015年12月中旬发布,安装量超过一百万。2016年9月之后的每个月,我开始跟踪这个木马,并向Google报告了至少3个新的感染应用程序。至今为止发现的最新的应用程序发布于2017年4月,未来可能还会有更多。

所有这些应用程序都很受欢迎,而且它们的增长速度非常快,有时候每天都有数以万计的新用户被感染。分析发现这么木马是通过广告网络主动分发的,所有这些恶意活动包含了相同的URL,这也使得能够轻松的跟踪那些新感染的应用程序。

分发这些木马的APP,会奖励用户安装这些推广的应用程序。结果就是用户获得了几美分,但他们的设备却被感染了。

另外一个有趣的现象是,这些木马通过广告网络感染了用户手机之后,会向用户显示让他们安装推广应用程序的广告。它创建了一种对受感染的设备的广告递归:用户因为一个恶意的广告网络受到感染,感染他们会从相同的广告网络中看到广告,因为包含了木马及其模块都是一样的。

网络犯罪份子能够把这些受感染的应用程序发布到Google Play,是因为他们使用了多种技术来绕过Google的检测。他们的代码在持续迭代,不停的使用各种新技术。木马使用了模块化的架构,有几个不同功能的模块,每一个模块都可以通过互联网进行更新。在感染的过程中,Ztorg会使用几个本地的root漏洞利用包来获取一个设备的Root权限,一旦获得Root权限,就可以保证木马在设备上的持久性,更有利于广告推广。

 

资料来源:Securelist,转载请注明来自MottoIN


知识来源: www.mottoin.com/102446.html

阅读:139521 | 评论:0 | 标签:安全报告 恶意软件 木马 病毒式

想收藏或者和大家分享这篇好文章→复制链接地址

“细节揭秘:Google Play Store上的恶意软件,如何借助广告网络完成“病毒式”传播”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云

本页关键词