wnagzihxain 发表于 2016-7-10 20:40

Android设备管理器取消激活漏洞

本帖最后由 wnagzihxain 于 2016-7-13 23:26 编辑

这两天在分析一个木马的时候发现了这个样本用到了安卓一个设备管理器漏洞

过两天这个木马的分析就写得差不多了,先把这个放出来

来看代码




接下来分析一下这个漏洞的利用:

安卓有一个设备管理器,锁机病毒常用的手段就是先隐式意图弹出一个激活窗口让受害者激活

一旦激活,直接卸载是卸载不掉的,需要先取消激活,才能卸载,这个在以前的分析里有写过demo演示

问题就出在取消激活这个位置,如果受害者不能取消激活,就不能卸载

如何让受害者不能取消激活就是今天主要讨论的东西

首先进入取消激活界面,点击取消激活,这时会弹出一个Dialog,让受害者确定取消激活,查看安卓源码(怎么查看我这里就不说了),这时会执行stopAppSwitch()

这个方法的作用会使设备在APP_SWITCH_DELAY_TIME内不跳转Activity

这个时间安卓定义的是5s

接下来继续讲取消激活时的事,当我们取消激活的时候,会先调用onDisableRequested(),这个方法要返回一个不为空的值,才会弹出Dialog确定取消激活,后面取消激活removeActiveAdmin()方法才会跟着执行

这时我们可以想:如果我们在onDisableRequested()方法里面执行跳转Activity,按照安卓源码的意思,那这个Activity得在5s后才会切换








那么讲到这,大家可以自己想一想,怎么绕过它


















绕过办法很简单,在开头那张图片里面也有讲,连续锁屏7s

当我们点击取消激活的时候,onDisableRequested()方法里面执行切换Activity,这时这个任务会进入请求队列,5s后会执行,这5s内,正常点的用户直接就点击确定取消激活了

我们执行锁屏7s,7s内用户无法点击取消激活,因为一直锁屏,就算解开了也会立刻锁上,当5s过后就会执行跳转Activity,然后再过2s才会停止锁屏,这时已经跳转了Activity,确认取消激活的Dialog已经消失了

所以就可以达到无法卸载的目的了



那个样本的分析过几天会发,比较长,作为入门级的样本质量还是不错的

有疑问直接在下面提出来,我有写错的地方直接跟我说,我看到后会修改,欢迎交流

这个漏洞在4.2之后的版本已经修复

------------------------------------------------------JEB那个利用伪造服务器版本好像服务器出了点问题,崩了,旧版本的打不开新版本的保存文件,所以这个分析得延迟几天--------------------------------------------------------------------------------


分析链接在这里:对恶意APP"Google Server"的逆向分析

交流学习,不要拿去干坏事!!!!!!







1151179818 发表于 2016-7-10 22:22

第一次离大神这么近~

Hello~ 发表于 2016-7-10 22:52

然而我看不懂,感谢大神分享

我来看看看 发表于 2016-7-10 22:55

学习学习

Sp4ce 发表于 2016-7-10 23:16

小土豆最近在忙这个啊,昨天的锁机看没

wnagzihxain 发表于 2016-7-10 23:21

轩少 发表于 2016-7-10 23:16
小土豆最近在忙这个啊,昨天的锁机看没

锁机还没看,JEB崩了

Sp4ce 发表于 2016-7-10 23:22

wnagzihxain 发表于 2016-7-10 23:21
锁机还没看,JEB崩了

哈哈哈,重新搞吧

qtfreet00 发表于 2016-7-11 11:00

等分析补全了再评分

braintrust2003 发表于 2016-7-11 15:39

{:1_908:}放佛我听懂了一样

chunjiangxiyu 发表于 2016-7-15 22:27

又长见识了
页: [1] 2 3
查看完整版本: Android设备管理器取消激活漏洞