加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

从逆向角度看证书覆盖安设漏洞

发布时间:2022-08-26 11:12:15 所属栏目:安全 来源:互联网
导读:前言 首先我们来了解下证书覆盖安装漏洞,此漏洞是2020年Google官方公布的漏洞之一,其编号为CVE-2020-0015,这个漏洞主要形成原因是由于本地安装证书被覆盖所造成的特权提升漏洞,在文中我会从逆向的角度去分析证书的安装流程,分析漏洞存在的位置以及形成
  前言
 
  首先我们来了解下证书覆盖安装漏洞,此漏洞是2020年Google官方公布的漏洞之一,其编号为CVE-2020-0015,这个漏洞主要形成原因是由于本地安装证书被覆盖所造成的特权提升漏洞,在文中我会从逆向的角度去分析证书的安装流程,分析漏洞存在的位置以及形成的原因。在分析过程中会把代码进行截图,尽可能覆盖其中的所有关键代码,避免本文阅读者在阅读过程中再去反编译查看代码。

  漏洞介绍
 
  证书覆盖安装漏洞主要体现在统导入证书的时候,而导入证书这部分功能是由系统中的CertInstaller.apk进行完成。而在用中并未做安全性校验,导致导入证书界面可以被覆盖,由于证书安装是由系统应用完成的,所以当安装界面被覆盖后,就变向的达到了特权提升的目的。根据官方说明该漏洞是存在全系统版本中的,而官方只修复了Android-8.0、Android-8.1、Android-9、 Android-10系统版本,下面通过代码分析此漏洞形成的原因。
 
  分析流程
 
  首先我们通过ADB命令从手机中将CertInstaller.apk文件提取到本地,CertInstaller.apk在系统中的/system/app/CertInstaller/目录下。拿到APK文件后我们再使用jadx、jeb等工具反编译APK文件。那么我们就通过ADB命令将/system/app/CertInstaller/CertInstaller.apk拷贝到本地,使用jadx、jeb等反编译工具将apk反编译。

  从上面代码中可以看到,首先获取intent对象并对其中携带的数据进行判断,主要有三种情况:
 
  intent未携带任何数据,或者从sdcard上选择证书文件进行安装,也就是在系统设置中选择从存储设备安装证书,如下图:

  从代码可以看出来证书安装过程基本都是依赖于CredentialHelper 类完成的,首先掉用createCredentialHelper函数创建了一个CredentialHelper 实例,

  PKCS12文件一般由密码保护,所以需要弹出一个密码输入框,用于输入密码。而正常抓包设置代理证书或者安装CA证书的时候就会走到 else里面。继续分析代码。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读