安卓预装插件“证书门”漏洞分析还原


发布人:admin分类:网络安全浏览量:21发布时间:2017-12-12

0×00 前言

2015 Blackhat大会上除了爆出一条彩信黑掉安卓手机的Stagefright漏洞,还爆了其他不少安卓漏洞,其中有一个叫“CERTIFI GATE”(证书门)的漏洞,看着议题上的说明,这又是一个可以控制全球绝大部分android手机的漏洞。

整个漏洞翻译成中文大概是这样的:一些OEM厂商在定制自己的rom的时候,将一些Remote Support Tool (mRST)插件,比如TeamViewer的QS Add-On: Samsung打包进了/system/priv-app/,这样这些插件拥有了系统级的权限,而这些插件导出了服务供外部使用,但是在连接的时候没有正确的校验调用者的身份(或是说被绕过了),导致用户可以悄悄的使用这些远程控制功能。其实整个过程是第三方软件漏洞+OEM厂商的错误使用,所以google也将这个责任推给了第三方,毕竟不是自己的源代码出现了问题。

0×01 检测工具如何检测的

漏洞发现者公司check point提供了一个检测手机是否存在这种漏洞的app,下载地址https://play.google.com/store/apps/details?id=com.checkpoint.capsulescanner,自行翻墙。

JEB载入apk,直奔扫描代码,看到首先定义了一个OEM厂商指纹列表:

我们可以看到包括但不限于国内的一些厂商,比如华为,联想,明基,OPPO,TCL等,还有一些国外厂商比如三星,LG等。

其中校验指纹用的是apk签名字节的sha1计算结果,检测插件用的是apk内容的前8192字节的sha256值,检测是否被exploit用的是apk签名的hashcode等,代码就不一一贴了。工具里给出了一系列有漏洞plugin的sha256值,如下图


我在网上下了一个TeamViewer Quick Support Addon Samsung 8.0版,终于找到个有漏洞的版本,google play上的已经10.0修复了验证漏洞。

0×02 TeamViewer Plugin漏洞成因和修复分析

老外的议题已经说明过了,这里我再狗尾续貂一下。

首先我们能看到整个apk只导出了一个service,当我们bind上这个service时返回一个binder实例

接着我们要想办法bind这个远程服务然后调用其提供的方法,这里遇到个坑,就是在没有aidl文件的情况下得自己创建aidl文件。只有根据JEB反编译出来的源码修修补补得到了一个完整的aidl文件:

后面的序号是为了对应原接口的顺序自己做的记号,可无视,这里也是蛋疼的地方。看代码

这个服务端服务提供的a方法返回结果就能知道当前连接插件的app是否通过验证,然后赋值给b,然后再每次调用其他方法时(比如截屏,发送按键等)会判断这个this.b的值,我们跟进去看下验证部分的代码:

TVAddonService.a是什么,看代码:

漏洞的形成就是校验调用者时只判断了签名的一部分,即seialNumber,而且是硬编码到app里的,也是逗,为毛不校验整个签名?这个漏洞已经在最新版中修复,修复方法就是比对整个签名了。

0×03 关于exploit

这里我分别用一个未修改签名的apk和一个exploit后的app测试,看结果:

关于如何生成exploit的apk,首先生成签名需要的pem和pk8文件,老外给的文档里出现的命令生成了key和cer,其实就是对应的pk8和pem文件了。

生成pem和pk8命令如下:

生成pem和key文件:openssl req -x509 -nodes -newkey rsa:1024 -keyout evil.key -out evil.pem -set_serial 1287658381
将key转换为pk8格式:openssl pkcs8 -in evil.key -topk8 -outform DER -out evil.pk8 -nocrypt
给未签名的apk签名:D:\Apkdb\sign>java -jar signapk.jar evil.pem evil.pk8 testtvaddon.apk exp.apk

再来测试:

* 作者:sniperhg@360 vulpecker team,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)


被黑站点统计 - 文章版权1、本主题所有言论和图片纯属会员个人意见,与本文章立场无关
2、本站所有主题由该文章作者发表,该文章作者与被黑站点统计享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和被黑站点统计的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、被黑站点统计管理员有权不事先通知发贴者而删除本文

免责声明

本站主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据.本站所有工作人员均不参与黑站,挂马或赢利性行为,所有数据均为网民提供,提交者不一定是黑站人,所有提交采取不记名,先提交先审核的方式,如有任何疑问请及时与我们联系.

admin  的文章


微信公众号

微信公众号


Copyright © 2012-2022被黑网站统计系统All Rights Reserved
页面总访问量:21264414(PV) 页面执行时间:71.33(MS)
  • xml
  • 网站地图