你的应用是如何被替换的,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劫持病毒剖析相关推荐

  1. 太激动!Android修改全局字体样式,替换整个APP字体

    最近一直在如何全局修改app字体上困惑着,今天终于有了突破.我将搜集的资料进行了整理,现在提供给大家. 前面为分析,建议直接翻到最后看[个人中心设置]. 参考链接: Android应用使用自定义字体 ...

  2. 揭秘315黑客wifi,如何保障APP数据安全

    315晚会上曝光WIFI安全,演示微信.邮箱当场被黑,隐私密码都被披露,风险无处不在.对用户来说,阿里移动安全已经支招:1,不接入无密码或无手机验证码的WiFi:2,手机不ROOT.不越狱:3,正规应 ...

  3. Android高级之十三讲之安全方案

    本文来自刘兆贤的博客_CSDN博客-Java高级,Android旅行,Android基础领域博主 ,引用必须注明出处! Android是开源的,内部API相对比较透明,因此App的威胁会多一些,了解一 ...

  4. 【Android 插件化】Hook 插件化框架 ( 使用 Hook 方式替换插件 Activity 的 mResources 成员变量 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  5. 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | 主线程创建 Activity 实例之前使用插件 Activity 类替换占位的组件 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  6. 【Android 插件化】Hook 插件化框架 ( Hook Activity 启动流程 | AMS 启动前使用动态代理替换掉插件 Activity 类 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  7. python画苹果标志图片_替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标...

    原标题:替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标 前言 Hello 各位不大不小的伙伴们,大家好~ 我是@旅客君.北京时间 2020 年 06 月 23 日 ...

  8. EasyPermissions替换默认Dialog

    EasyPermissions替换默认Dialog 前言 一.需求 二.实现 前言 EasyPermissions是检查和申请Android动态权限的库,简化了原生权限逻辑. 使用方法参照官方文档. ...

  9. office——word内容替换、插入

    开发环境: 1.vs2015 2.office2016 一.winform的word内容替换.插入 (1)新建winform项目 (2)在右边解决方案资源管理器中右键引用,选择添加引用 在引用管理器里 ...

最新文章

  1. Confluence 6 那些文件需要备份
  2. Java设计模式圣经连载(05)-代理模式
  3. 【Let‘s Encrypt】 too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limit
  4. mysql查询语句在哪里编写_mysql编写语句:更新查询
  5. 基线_电离层、对流层改正模型对基线解算的影响
  6. docker etcd
  7. flex 左右布局_面试必考点:前端布局知识
  8. Requst Servervariables
  9. 光纤到桌面FTTD解决方案
  10. 《Python语言程序设计》——1.3 程序设计语言
  11. linux shell脚本 可以全局使用
  12. MRR(Mean Reciprocal Rank)笔记
  13. log4j从入门到了解
  14. Windows7 换XP 字体 (QQ字体,桌面字体) 为宋体
  15. Adaptive AUTOSAR和Classic AUTOSAR
  16. 国产手机销量大跌,终于被迫降价抛售清理库存
  17. 纯正体验,极致商务 | 丽亭酒店聚焦未来赛道,实现共赢发展
  18. 鼠标悬浮触发事件(onmouseover)实现
  19. 越狱Season 1-Episode 12:Odd Man Out
  20. matplotlib三维画图之观察博弈论混合策略下纳什均衡点

热门文章

  1. [开源] C语言项目实战 - 虚拟鼠标 - VirtualMouse
  2. Siege 3.0 Beta2 发布,压力测试工具
  3. httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过htt......
  4. WF流程设计器升级说明
  5. mkdir函数linux,linux--access函数与mkdir函数
  6. 方舟服务器显示队友位置,方舟如何看队友在哪 | 手游网游页游攻略大全
  7. 如何彻底解决安装Windows漏洞补丁出现蓝屏或无法启动问题?
  8. plt.xlabel 'str' object is not callable
  9. pip 安装指定版本
  10. latex教程详细笔记