转载

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

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)

正文到此结束
Loading...