实现Android导入系统证书并用Burp抓包

14 篇文章 3 订阅
5 篇文章 0 订阅


需求
一般来说在Android7以上的系统版本,系统会严格的区分系统证书和用户证书,而一些安全性较好的apk会禁止在Android7以下的系统版本运行,这就对安全测试的同学们产生了一定障碍。本文会图文介绍在Android7以上导入系统证书实现抓包
以下是本篇文章正文内容

环境准备
1)已root的Android设备
2)adb
3)burpsuite

4) openssl下载安装及环境变量设置

OpenSSL官网没有提供windows版本的安装包,可以选择其他开源平台提供的工具。例如 Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

 导入系统证书
将Burp证书设置为Android手机的系统证书一般来说中有两种方法,但是这里需要注意,第一种方法适合Android模拟器用户,而第二种adb方法比较通用,推荐用第二种方法

方法一:Android访问代理
1)Android挂Burp代理,访问http://burp下载证书,此时,Burp的证书会下载到sdcard/Download/目录中,这个目录是手机浏览器的默认下载目录。


2)使用adb将下载下来的证书push到存有系统证书的目录,详细命令如下:

adb shell
su
mv /sdcard/Download/<cert>.0 /system/etc/security/cacerts/
cd /system/etc/security/cacerts/
chmod 644 <cert>.0
chgrp root <cert>.0



 方法二:adb推入证书
1)打开Proxy下的Options标签行,按照如下所示导出证书

2)更改证书格式:
使用openssl的x509指令进行cer证书转pem证书 和 用md5方式显示pem证书的hash值

证书转换

openssl x509 -inform DER -in cert.cer -out cacert.pem

 

进行MD5的hash显示

openssl x509 -inform PEM -subject_hash_old -in cacert.pem

    

将pem证书重命名
使用上面复制的值(类似于9a5ba575)对pem证书进行重命名,为9a5ba575.0 (其中0为序号,用于区分hash重复的证书)
3)把证书push到用户目录中去

(1)User(root后)版本需要先把证书导入到用户目录中,再进入超级管理用户,把这个证书导入到系统证书目录。


输入如下命令

adb shell
su
#挂载system分区,可写一般情况/system分区是只读的,需要挂载为读写。
mount -o rw,remount /system

mv /sdcard/Download/<cert>.0 /system/etc/security/cacerts/
cd /system/etc/security/cacerts/
chmod 644 <cert>.0
chgrp root <cert>.0



(2)Userdebug版本(完全root的开发版本)用户不用有User版本的中转操作,直接adb超级权限就可以导入证书,一般来说各大windows平台的Android模拟器都是Userdebug版本的,具体命令如下:

# 每次开机需要输入一次

adb root


# 每个设备只需输入一次

adb disable-verity


# 每次开机需要输入一次

adb remount

adb push <cert>.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/<cert>.0
adb shell chgrp root /system/etc/security/cacerts/<cert>.0



3x0 抓包测试
在Android设备上已经可以抓取成功抓取加密数据包。


总结
中间是遇到一些坑的,以前在Android模拟器上是不需要用Openssl转换证书格式的,但是在真机测试时出现了问题,发现.der证书不太能用,踩了些坑。




2022.6.13


由于安卓10采用了某些安全策略,将系统分区/system挂载为只读,就算你root了也没用,无法写入系统分区也就无法导入系统证书,下面提供两种可用的方法。

前提:手机已经root并且安装了面具(Magisk)

方法一:

1、将需要安装的证书安装到用户证书下
2、在面具中找到Move Certificates模块下载,直接在面具下载需要手机配置全局科学上网,可以在github上下载(https://github.com/Magisk-Modules-Repo/movecert/releases --没有编译好的版本,需要自己编译)或者在这里下载:Move Certificates模块

3、模块下载(或者本地)安装完成后,重启手机,证书即从用户目录移动到系统目录。

方法二:

1、找到手机中magisk的安装目录 /data/adb/modules/

在该目录下创建 movecert/system/etc/security/cacerts/

/*系统目录如下*/
/data/adb/modules/movecert/system/etc/security/cacerts/

 2、将最上面的方法中生成的证书(9a5ba575.0),推送到该目录下。

3、重启手机,证书会自动添加到系统目录。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值