Ztorg木马分析: 从Android root木马演变到短信吸血鬼
本月第二次,Google 从官方应用商店 Google Play 中移除了伪装成合法程序的恶意应用。被移除的应用都属于名叫 Ztorg 的 Android 恶意程序家族。目前为止,发现的几十个新的Ztorg木马的变异程序,无一例外都是利用漏洞在受感染的设备上获得root权限。
但是卡巴斯基实验室的安全研究人员发现,在2017年5月下旬以来,在最新捕获的Ztorg木马(Magic Browser、Noise Detector)的变异程序中,却发现它们并没有使用设备的root权限。黑客利用了恶意木马,在感染的设备中发送付费短信(Premium Rate SMS)并立即删除,用户资金在不知不觉中被窃取。
什么是Premium Rate SMS?
Premium Rate SMS是一种付费短信模式,通过发送特殊的文本信息,用户自动扣费。例如通过手机短信捐款,办理付费业务等。最新ztorg木马利用该模式来牟利,这项技术让黑客的利益最大化,并降低了被发现的风险。
Ztorg为何这么难被检测到?
多模拟器检测功能,它可以检测到Android SDK模拟器,如genymotion,BlueStacks, buildroid。它还检测设备感染环境,这些检测很难被绕过。 使用基于XOR的字符串混淆。 采用DES-CBC加密远程服务器进行通信。 从远程服务器下载、安装和启动Android应用程序。 自去年 9 月以来,Ztorg 恶意木马大约 100 次绕过 Google 的自动化恶意程序检查程序进入官方应用市场。被称为 Magic Browser 的 Ztorg 恶意应用下架前被下载量超过 5 万次。
另一款叫 Noise Detector 的应用被下载了超过 1 万次,上个月被移除的 Privacy Lock 下载量超过百万。
Ztorg攻击过程分析
恶意程序启动后,木马将休眠10分钟,然后连接到命令和控制(C&C)服务器。这样如果用户发现了一些奇怪的东西,他们就不太可能把它与刚刚安装的应用程序联系起来。
Ztorg木马从C&C获取命令使用了一个有趣的技术,它向C&C提供两个GET请求,其中包括国际移动用户识别码(IMSI)。第一个请求如下所示:
GET c.phaishey.com/ft/x250_c.txt(其中250 - IMSI的前三位数字)
如果木马收到一些响应数据,将会发出第二个请求。第二个请求如下所示:
GET c.phaishey.com/ft/x25001_0.txt(其中25001 - IMSI的前五位数字)
为什么需要国际移动用户识别码(IMSI)?
IMSI的有趣之处在于前三位数字是MCC(移动用户所属国家代号),第三位和第四位是MNC(移动网号码)。使用这些识别码,攻击者可以识别受感染用户的国家和移动运营商,准确的选择应该发送哪类付费短信。
在对这些请求进行响应时,木马可能会收到一些加密的JSON文件,其中包含一些数据。此数据应包括offer列表,每个offer均包含一个名为“url”的字符串字段,可能包含也可能不包含实际的网址。木马将尝试使用自己的类打开或查看该字段。如果这个值确实是一个真实的url,那么木马会向用户显示其内容。但是如果它是假的url,就会带有一个短信字样的子串,要求用户回复一个短信,其中就包含提供的号码,如下图,
令人意想不到的是,当服务器收到网址访问或短信后,木马将关闭设备声音,并开始删除用户收到的所有短信。
虽然我们无法获得在Google Play传播的木马的任何命令,但是通过对其他具有相同功能的木马程序的分析,我们得到了以下命令:
这是一个常规的广告offer。
WAP付费订阅
我们在Google Play商店及其他正规的应用商店发现相同功能的许多恶意app。有趣的是,它们看起来不像独立木马程序,更像是一些木马程序的附加模块。进一步研究发现,这些木马是由一个常规的Ztorg木马和其他Ztorg模块一起组合而成。
在其中一些木马中,我们发现它们使用MCC从恶意网址下载了一个JS文件。
于是,为了分析,我们下载了几个JS文件,它们使用了不同的MCC,可以推断这些攻击者是来自不同国家的用户。由于无法获取美国MCC的文件,所以只能尝试从其他国家获取的MCC文件中找到一些功能相似的文件。我们发现,所有的文件都包含一个名为“getAocPage”的函数,它最有可能是AoC(收费通知)。在分析这些文件后,我发现他们的主要目的是通过WAP计费对网页进行点击攻击。在进行攻击时,木马可以从用户的移动帐户窃取资金。 WAP帐单的攻击方式与付费短信类似,区别就是它采用了订阅付款的形式,而不是一次性诈骗,下图就是,来自俄罗斯用户的CnC的JS文件(MCC = 250)
这意味着该木马从CnC收到的网址不仅可以是广告网址,还可以是带有WAP付费订阅的网址。此外,一些使用包含“/ subscribe / api /”CnC URL功能的木马程序,也可能参考付费订阅的功能。
所有这类木马,包括来自Google Play的木马,都在尝试从任意设备向用户发送短信。为此,黑客使用大量方法来发送短信,以下就是 “Magic browser”应用程序的部分代码。
总而言之,从上述代码我们可以发现,黑客为了能够从不同的Android设备和版本来发送短信,试图从11个不同的地方向受害者发送短信。此外,我们还找到另一个变异过的SMS.AndroidOS.Ztorg木马的恶意程序,试图通过“am”命令发送短信,虽然这种方法并没有行得通。
短信木马与Ztorg恶意软件家族的关系
“Magic browser”恶意应用程序的升级方式与Ztorg木马程序类似。“Magic browser”和“Noise Detector”应用程序与其他Ztorg木马共享了许多相似之处的代码。此外最新版本的“Noise Detector”在assets folder的安装包中包含加密文件“girl.png”,解密后,此文件就会变为Ztorg木马。
我们发现了几个常规Ztorg木马和其他Ztorg模块一起安装,具有相同功能的木马程序。而不是像“Magic browser”将附加的Ztorg模块作为独立木马在Google Play传播。2017年4月,我们发现一个名为“Money Converter”的恶意木马已经在Google Play上安装了上万多次。它使用Accessibility Service安装Google Play的应用程序。因此,即使在无法获得root权限的设备上,木马程序也可以静默安装、运行并升级恶意应用程序,无需与用户进行任何交互。
root权限攻击演变到短信木马攻击
虽然“Magic browser”和“Noise Detector”恶意应用程序使用了相同的功能,但是我们认为它们各有不同的用途。前者上传时间较早,我们认为黑客只是在检测能否上传此类恶意应用程序,上传成功后,它们并没有更新版本。但是后者不同,它看起来像黑客试图上传受常规Ztorg木马感染的应用程序。但是在上传过程中,他们决定增加一些恶意功能来赚钱。“Noise Detector”的更新历史证明了这一点。
5月20日,黑客上传了一个名为“Noise Detector”的清理app。几天后,他们更新一个未感染的版本。然后,他们上传了一个包含加密ztorg木马的版本,但是无法解密和执行。紧接着第二天,他们终于更新了短信木马的功能,但仍没有增加解密和执行的Ztorg模块。很可能,如果该应用尚未从Google Play中删除,则他们将在下一阶段添加此功能,还有一种可能是,即尝试添加此功能时被Google发现了木马的存在,并导致其被删除。
总结
我们发现了一个非同寻常的短信木马通过Google Play传播。它不仅使用十几种方法来发送短信,而且还以特殊的方式初始化这些方法:使用来自CNC命令来处理网页的加载错误。并且它可以打开广告网址,此外它与具有相同功能的Ztorg恶意软件相关,通常由Ztorg作为附加模块安装。
通过分析这些应用,我们发现黑客通过点击攻击来劫持WAP付费业务。这意味着该木马不仅可以打开广告链接,发送付费短信,还可以通过WAP付费业务打开网页并从账户中盗取资金。为了隐藏这类活动,木马会关闭设备声音并删除所有收到的短信。
这不是Ztorg木马第一次在Google Play上传播,例如在4月份他们就上传了一个模块,可以点击Google Play商店应用按钮安装甚至购买这些推广应用。
MD5
F1EC3B4AD740B422EC33246C51E4782F
E448EF7470D1155B19D3CAC2E013CA0F
55366B684CE62AB7954C74269868CD91
A44A9811DB4F7D39CAC0765A5E1621AC
1142C1D53E4FBCEFC5CCD7A6F5DC7177
文章来源于securelist、securityaffairs,阿里聚安全编译
更多安全类热点资讯及知识分享,请持续关注阿里聚安全博客
网址:https://jaq.alibaba.com/community/index.htm
Ztorg木马分析: 从Android root木马演变到短信吸血鬼的更多相关文章
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
- 利用Android Lost通过互联网或短信远程控制安卓设备
利用Android Lost通过互联网或短信远程控制安卓设备 作者:Jack Wallen| 杰克·瓦伦翻译:PurpleEndurer.2014-11-15第1版 使用智能手机要考虑的一个至关重要的 ...
- Android安卓电话拦截及短信过滤
package com.focus.manager; import java.lang.reflect.Method; import Android .app.Activity; import And ...
- Android应用源码安卓短信拦截木马项目源码
温馨提示:本资源由源码天堂整理提供下载转载时请留下链接说明:http://code.662p.com/view/9174.html安卓短信拦截木马源码主要功能就是开机后台启动,拦截本机收到的短信并且转 ...
- Android软件开发之发送短信与系统短信库解析
今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDM ...
- Android 解决双卡双待手机解析短信异常
开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机(比如XT800, A60, S8600 ...
- android 中调用接口发送短信
android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...
- Android Tips: 打电话和发短信
利用Android打电话非常简单,直接调用Android内在的电话功能就可以了. btnDail.setOnClickListener(new OnClickListener(){ @Override ...
- Android 利用内容观察者实现短信窃听
<Android 内容观察者的原理>中介绍了内容观察者的一些基本原理,并做了简单的实战,本文接着进一步做一个小项目实战 package com.wuyudong.smslistener; ...
随机推荐
- phtread_mutex 组合
phtread_mutex通过mutexattr设定其类型,并保存在成员__kind中.pthread_mutex的锁操作函数根据__kind进行方法的分派(dispatch).__kind由5个字段 ...
- IOS的UITableView
UITableView 概述 UITableView 一般用来展示表格数据.可以滚动(继承自UIScrollView).性能极佳 UITableView分两种样式: Plain,不分组的样式 Grou ...
- Java中File
1.什么是流? Java中的流是个抽象的概念,当程序需要从某个数据源读入数据的时候,就会开启一个数据流,数据源可以是文件.内存或网络等等.2.使用File类操作文件或目录属性 public class ...
- MM们,你们为什么要找一个程序猿男票?
前言 免责声明:这篇文章关于什么?六一儿童节马上就要到了,作为一个前端攻城师,自我感觉效率还可以,老早已把任务搞完,页面布局和前端编码高效按时交付,呵呵.趁有时间,写写文章娱乐一下.MM们,请不要拿起 ...
- MySQL开发总结(有点长..耐心看)
一.理解MySQL基本概念 1.MySQL软件:MySQL实际上就是一软件,是一工具,是关系型数据库管理系统软件 2.MySQL数据库:就是按照数据结构来组织.存储和管理数据的仓库 3.MySQL数据 ...
- Spring IOC的使用
控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转,目的是为了获得更好的扩展性和良好的可维护性.所谓依 ...
- vim - manual -个人笔记
##vim配置 ###normal > 输入命令:w 写入保存 > > 粘贴 :p(向下粘贴) P(大写向上粘贴) > > 复制 :yy 复制一行 > > 删 ...
- Android 真机无线调试
有很多人在学Android的时候最开始接触的都是模拟机的测试,如果像好的模拟机比如genimotion,次一点的蓝手指,测试都还比较可以.有的也不缺乏是用真机测试.本人开始用华为真机测试,也是一直连线 ...
- Hive load from hdfs 出错
hive 加载HDFS的数据时出现错误, FATAL:SemanticException [Error 10028] search了一下,跟他一样Hive load from hdfs 出错. 我按照 ...
- Vuejs实例-01使用vue-cli脚手架搭建Vue.js项目
[TOC] 1. 前言 vue-cli 一个简单的构建Vue.js项目的命令行界面 整体过程: $ npm install -g vue-cli $ vue init webpack vue-admi ...