你的应用是怎样被替换的,App劫持病毒剖析
一.App劫持病毒介绍
App劫持是指运行流程被重定向,又可分为Activity劫持、安装劫持、流量劫持、函数运行劫持等。
本文将对最近利用Acticity劫持和安装劫持的病毒进行分析。
二.Activity劫持病毒分析
2.1 Activity劫持病毒介绍
Activity劫持是指当启动某个窗体组件时,被恶意应用探知。若该窗体界面是恶意程序预设的攻击对象。恶意应用将启动自己仿冒的界面覆盖原界面,用户在毫无察觉的情况下输入登录信息,恶意程序在把获取的数据返回给服务端。
以MazarBOT间谍木马为例。该类木马有一下几个特点:
- 伪装成系统短信应用,启动后请求激活设备管理权限。随后隐藏图标;
- 利用Tor与C&C控制中心进行匿名通信,抵御流量分析;
- C&C控制中心下发指令进行手机控制、update html、以及信息收集;
- 通过server动态获取htmlData,然后实施界面劫持。获取用户账号信息。
下面是C&C控制中心指令列表:

我们发现该木马能接受并处理一套完整的C&C控制指令。而且使用Tor进行匿名网络通信,使得流量数据的来源和目的地不是一条路径直接相连。添加对攻击者身份反溯的难度。
结下来我们将具体分析该木马界面劫持过程。
2.2 界面劫持过程分析:
入口梳理首先看到axml文件。
WorkerService服务处理C&C控制中心下发的”update html”指令,同一时候后台监控顶层执行的Activity。若是待劫持的应用将会启动InjDialog Acticity进行页面劫持。

图axml信息
下图是后台服务对顶层Acticity监控过程,若是待劫持应用则启动InjDialog进行劫持。
getTop函数做了代码兼容性处理,5.0以上的设备木马也能够获取顶层Acticity的包名。

图后台监控
InjDialog Activity通过webView载入伪造的html应用界面,调用webView.setWebChromeClient(new HookChromeClient())设置html页面与Java交互,在伪造的Html页面里调用prompt把JS中的用户输入信息传递到Java,HookChromeClient类重写onJsPrompt方法,处理用户输入信息。最后将劫持的用户信息通过Tor匿名上传到指定域名。

图劫持用户信息

图上传劫持信息
三.应用安装劫持病毒分析
3.1安装劫持病毒介绍
安装劫持病毒通过监听android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent实施攻击。包含两种手段,一种是卸载删除掉真正安装的apk,替换为攻击者伪造的应用;第二种是借用用户正在安装的这个消息,悄悄的安装自己推广的其它应用。这个过程就像你平时喝的“六个核桃”,某天你竟然喝到“七个核桃”。
3.2应用相关信息
该应用是一款名为”FlashLight”的应用,程序包名:com.gouq.light,应用图标例如以下:

3.3主要组件分析
.App 应用Application类,载入Assest文件夹下加密jar包。获取接口ExchangeImpl对象,在jar里实现接口函数onApplicationCreate、triggerReceiver、triggerTimerService;启动核心服务LightService;
.LightService 应用核心服务,可外部调用启动LightTiService。达到替换进程名。以及am启动服务以自身保活;
.LightTiService 由LightService启动。该服务会调用动态载入包里的triggerTimerService接口方法。完毕对以安装应用的删除、当前设备信息上传、从server下载待安装应用;
.AppReceiver 广播接收器,通过载入的jar包里triggerReceiver接口方法实现,处理android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent查看安装跟新应用是否是劫持应用。若是通过execCmd进行安装劫持。
下图安装劫持过程,通过监听应用的安装和更新,实施关联的其它应用的静默安装。

图安装劫持
上图能够知道此恶意应用借用安装或更新intent,安装预设的关联应用,这样在安装完成后用户并不清楚哪个是刚真正安装的应用,这样添加了推广应用点击执行的几率。
四.怎么有效防治App劫持或安全防护建议
针对企业用户:
作为一名移动应用开发人员。要防御APP被界面劫持,最简单的方法是在登录窗体等关键Activity的onPause方法中检測最前端Activity应用是不是自身或者是系统应用。
当然,术业有专攻。专业的事情交给专业的人来做。阿里聚安全旗下产品安全组件SDK具有安全签名、安全加密、安全存储、模拟器检測、反调试、反注入、反Activity劫持等功能。 开发人员仅仅须要简单集成安全组件SDK就能够有效解决上述登录窗体被木马病毒劫持的问题,从而帮助用户和企业降低损失。
针对个人用户:
安装阿里钱盾保护应用免受App劫持木马威胁。
作者:逆巴@阿里移动安全,很多其它技术文章,请点击阿里聚安全博客
你的应用是怎样被替换的,App劫持病毒剖析的更多相关文章
- App劫持病毒剖析:你的应用是如何被替换的(病毒防范方法)
App劫持病毒剖析:你的应用是如何被替换的(病毒防范方法) 一.App劫持病毒介绍 App劫持是指执行流程被重定向,又可分为Activity劫持.安装劫持.流量劫持.函数执行劫持等.本文将对近期利用A ...
- 你的应用是如何被替换的,App劫持病毒剖析
一.App劫持病毒介绍 App劫持是指执行流程被重定向,又可分为Activity劫持.安装劫持.流量劫持.函数执行劫持等.本文将对近期利用Acticity劫持和安装劫持的病毒进行分析. 二.Activ ...
- Express4.x动态的销毁或者替换中间件(app.unuse)
需求描述 expres4.x托管静态资源时以中间件的方式将server-static挂载到app上,正常的使用没有问题,但是有时候我们需要动态的托管一些静态资源,也就是静态资源的目录不确定的时候该怎么 ...
- vim替换命令
转载:http://blog.csdn.net/glorin/article/details/6317098 替換(substitute) :[range]s/pattern/string/[c,e, ...
- 【转】vim替换命令
vim替换命令 free:此文后面涉及了正则表达式,随便看了一下,觉得正则表达式有时间学一学对于在Linux下操作也是方便许多 替換(substitute) :[range]s/pattern/str ...
- 微信应用号(小程序)开发IDE配置(第一篇)
2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...
- ASP.NET Core 中文文档 第四章 MVC(4.2)控制器操作的路由
原文:Routing to Controller Actions 作者:Ryan Nowak.Rick Anderson 翻译:娄宇(Lyrics) 校对:何镇汐.姚阿勇(Dr.Yao) ASP.NE ...
- 【腾讯Bugly干货分享】Android性能优化典范——第6季
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/580d91208d80e49771f0a07c 导语 这里是Android性能优 ...
- bodyparser
今天在用bodyparser时,遇到了如下问题: 首先科普下bodyparser的作用:它用于解析客户端请求的body中的内容,内部使用JSON编码处理,url编码处理以及对于文件的上传处理. 现在继 ...
随机推荐
- Format Conditions按条件显示表格记录
标记特定记录 DevExpress强大得确实让人觉得它别具一格!现在,我有这样一个需求,把一个表中某字段为False的记录标记出来.下面是效果(某字段的可见性为否): 实现方式 如果是以前,我写个代码 ...
- 【转】Java四种线程池的使用
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...
- JAVA设计模式——第 2 章 代理模式【Proxy Pattern】(转)
什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理的人能干活呀. ...
- Audition CC2019 MME设备内部错误怎么解决!
安装完了AA2019,没有想到像昨天安装系统那么不顺利... 当然出现问题的原因是因为我安装了win10 并且我禁用了麦克风的所有应用权限. 设置里面搜索 麦克风 权限 Ok工作啦, 好开森~ ...
- llvm code call graph
https://www.ics.usi.ch/images/stories/ICS/slides/llvm-graphs.pdf
- 【Zookeeper】源码分析之Watcher机制(二)之WatchManager
一.前言 前面已经分析了Watcher机制中的第一部分,即在org.apache.zookeeper下的相关类,接着来分析org.apache.zookeeper.server下的WatchManag ...
- jump-game i&&ii 能否跳出区间 贪心
I: Given an array of non-negative integers, you are initially positioned at the first index of the a ...
- 【FinancialKnowledge】商业银行业务知识
商业银行业务思维导图 一.资产业务 资产业务是商业银行的主要收入来源 1.放款业务 1.1 信用放款 信用放款,是单凭借款人的信誉, 不需要提供任何抵押品的放款,是一种资本放款. 1.1.1 普通借款 ...
- 各个版本VS编译好的GDAL库下载
简单说明 自己编译GDAL比较繁琐且时间较长,而且很多 Driver 需要自己去编译.如果不是要学习怎么编译GDAL,可以直接使用已经编译好的库. OSGeo官方没有提供编译好的GDAL,但是它有给出 ...
- Qt5.9静态库编译VS2015-x64
不多说. 编译配置参数如下 configure.bat -static -no-openssl -release 不支持OpenSSL,也没有安装各个数据库的Driver,所以数据库方面也只支持了SQ ...