Android调用binder实现权限提升-android学习之旅(81)

来源:互联网 发布:淘宝评价网站 编辑:程序博客网 时间:2024/06/08 06:59

## 标题 ##
这里写图片描述

当进程A权限较低,而B权限较高时,容易产生提权漏洞

这里写图片描述

fuzz测试的测试路径

这里写图片描述
这里写图片描述

First level Interface是服务

Second level Interface是服务中对应的接口

1.首先获取第一层和第二层接口,及服务以及对应服务提供的接口

2.根据以上信息结合参数类型信息构造meta-data元数据

3.得到构造好的元数据,选择一个Interface,根据Interface以及元数据选择业务代码

4. 调用binder服务线程,参数为随机数

5.输出日志

执行以上5步直到所有接口完成测试

这里写图片描述

假设A进程权限较低,B进程权限较高

如果A进程可以获得B进程的带IGraphicProducer接口的binder代理对象,那么A进程可以通过跨进程的binder调用利用此漏洞可获得B进程的权限。

这里写图片描述

第一步:获得mediaserver进程导出的IGraphicProducer,从而普通应用程序可以注入代码到mediaserver

第二步:注入到mediaserver中的代码获得surfaceflinger导出的IGraphicProducer接口,然后通过setSidebandStream可以拿下surfaceflinger。

surfaceflinger 通过调用IWindowsManager的screenShotApplication这个binder调用获取IGraphicProducer接口,拿下system_server

1 0
原创粉丝点击