你的应用是如何被替换的,App劫持病毒剖析
Author:逆巴@阿里移动安全
0x00 App劫持病毒介绍
App劫持是指执行流程被重定向,又可分为Activity劫持、安装劫持、流量劫持、函数执行劫持等。本文将对近期利用Acticity劫持和安装劫持的病毒进行分析。
0x01 Activity劫持病毒分析
1.1 Activity劫持病毒介绍
Activity劫持是指当启动某个窗口组件时,被恶意应用探知,若该窗口界面是恶意程序预设的攻击对象,恶意应用将启动自己仿冒的界面覆盖原界面,用户在毫无察觉的情况下输入登录信息,恶意程序在把获取的数据返回给服务端。
以MazarBOT间谍木马为例,该类木马有一下几个特点:
- 伪装成系统短信应用,启动后请求激活设备管理权限,随后隐藏图标;
- 利用Tor与C&C控制中心进行匿名通信,抵御流量分析;
- C&C控制中心下发指令进行手机控制、update html、以及信息收集;
- 通过服务器动态获取htmlData,然后实施界面劫持,获取用户账号信息;
以下是C&C控制中心指令列表:
我们发现该木马能接受并处理一套完整的C&C控制指令,并且使用Tor进行匿名网络通信,使得流量数据的来源和目的地不是一条路径直接相连,增加对攻击者身份反溯的难度。结下来我们将详细分析该木马界面劫持过程。
1.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匿名上传到指定域名。
图 劫持用户信息
图 上传劫持信息
0x02 应用安装劫持病毒分析
2.1安装劫持病毒介绍
安装劫持病毒通过监听android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent实施攻击,包括两种手段,一种是卸载删除掉真正安装的apk,替换为攻击者伪造的应用;另外一种是借用用户正在安装的这个消息,悄悄的安装自己推广的其他应用。这个过程就像你平时喝的“六个核桃”,某天你居然喝到“七个核桃”。
2.2应用相关信息
该应用是一款名为”FlashLight”的应用,程序包名:com.gouq.light,应用图标如下:
2.3主要组件分析
.App
:应用Application类,加载Assest目录下加密jar包,获取接口ExchangeImpl对象,在jar里实现接口函数onApplicationCreate、triggerReceiver、triggerTimerService;启动核心服务LightService;.LightService
:应用核心服务,可外部调用启动LightTiService,达到替换进程名,以及am启动服务以自身保活;.LightTiService
:由LightService启动,该服务会调用动态加载包里的triggerTimerService接口方法,完成对以安装应用的删除、当前设备信息上传、从服务器下载待安装应用;.AppReceiver
:广播接收器,通过加载的jar包里triggerReceiver接口方法实现,处理android.intent.action.PACKAGE_ADDED和android.intent.action.PACKAGE_REPLACED intent查看安装跟新应用是否是劫持应用,若是通过execCmd进行安装劫持。
下图安装劫持过程,通过监听应用的安装和更新,实施关联的其他应用的静默安装。
图 安装劫持
上图可以知道此恶意应用借用安装或更新intent,安装预设的关联应用,这样在安装完毕后用户并不清楚哪个是刚真正安装的应用,这样增加了推广应用点击运行的几率。
0x03 怎么有效防治App劫持或安全防护建议
针对企业用户:
作为一名移动应用开发者,要防御APP被界面劫持,最简单的方法是在登录窗口等关键Activity的onPause方法中检测最前端Activity应用是不是自身或者是系统应用。
当然,术业有专攻,专业的事情交给专业的人来做。阿里聚安全旗下产品安全组件SDK具有安全签名、安全加密、安全存储、模拟器检测、反调试、反注入、反Activity劫持等功能。 开发者只需要简单集成安全组件SDK就可以有效解决上述登录窗口被木马病毒劫持的问题,从而帮助用户和企业减少损失。
针对个人用户:
安装阿里钱盾保护应用免受App劫持木马威胁。
转载于:https://www.cnblogs.com/xdans/p/5412858.html
你的应用是如何被替换的,App劫持病毒剖析相关推荐
- 太激动!Android修改全局字体样式,替换整个APP字体
最近一直在如何全局修改app字体上困惑着,今天终于有了突破.我将搜集的资料进行了整理,现在提供给大家. 前面为分析,建议直接翻到最后看[个人中心设置]. 参考链接: Android应用使用自定义字体 ...
- 揭秘315黑客wifi,如何保障APP数据安全
315晚会上曝光WIFI安全,演示微信.邮箱当场被黑,隐私密码都被披露,风险无处不在.对用户来说,阿里移动安全已经支招:1,不接入无密码或无手机验证码的WiFi:2,手机不ROOT.不越狱:3,正规应 ...
- Android高级之十三讲之安全方案
本文来自刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主 ,引用必须注明出处! Android是开源的,内部API相对比较透明,因此App的威胁会多一些,了解一 ...
- 【Android 插件化】Hook 插件化框架 ( 使用 Hook 方式替换插件 Activity 的 mResources 成员变量 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | AMS 启动前使用动态代理替换掉插件 Activity 类 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- python画苹果标志图片_替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标...
原标题:替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标 前言 Hello 各位不大不小的伙伴们,大家好~ 我是@旅客君.北京时间 2020 年 06 月 23 日 ...
- EasyPermissions替换默认Dialog
EasyPermissions替换默认Dialog 前言 一.需求 二.实现 前言 EasyPermissions是检查和申请Android动态权限的库,简化了原生权限逻辑. 使用方法参照官方文档. ...
- office——word内容替换、插入
开发环境: 1.vs2015 2.office2016 一.winform的word内容替换.插入 (1)新建winform项目 (2)在右边解决方案资源管理器中右键引用,选择添加引用 在引用管理器里 ...
最新文章
- Confluence 6 那些文件需要备份
- Java设计模式圣经连载(05)-代理模式
- 【Let‘s Encrypt】 too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limit
- mysql查询语句在哪里编写_mysql编写语句:更新查询
- 基线_电离层、对流层改正模型对基线解算的影响
- docker etcd
- flex 左右布局_面试必考点:前端布局知识
- Requst Servervariables
- 光纤到桌面FTTD解决方案
- 《Python语言程序设计》——1.3 程序设计语言
- linux shell脚本 可以全局使用
- MRR(Mean Reciprocal Rank)笔记
- log4j从入门到了解
- Windows7 换XP 字体 (QQ字体,桌面字体) 为宋体
- Adaptive AUTOSAR和Classic AUTOSAR
- 国产手机销量大跌,终于被迫降价抛售清理库存
- 纯正体验,极致商务 | 丽亭酒店聚焦未来赛道,实现共赢发展
- 鼠标悬浮触发事件(onmouseover)实现
- 越狱Season 1-Episode 12:Odd Man Out
- matplotlib三维画图之观察博弈论混合策略下纳什均衡点
热门文章
- [开源] C语言项目实战 - 虚拟鼠标 - VirtualMouse
- Siege 3.0 Beta2 发布,压力测试工具
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过htt......
- WF流程设计器升级说明
- mkdir函数linux,linux--access函数与mkdir函数
- 方舟服务器显示队友位置,方舟如何看队友在哪 | 手游网游页游攻略大全
- 如何彻底解决安装Windows漏洞补丁出现蓝屏或无法启动问题?
- plt.xlabel 'str' object is not callable
- pip 安装指定版本
- latex教程详细笔记