Android Burpsuite无障碍抓包

0x00 前言

不是新知识,有时候会有人遇到Android抓包的问题,在这里做个记录备用。如果条件允许还是直接用IOS设备,导入证书并信任就啥都抓到的了。Android遇到微信授权登录步骤可能就抓包失败。这时候要把中间人证书放到系统信任证书目录下。

2022.9.13

请优先使用Magisk+Always Trust User Certificates模块

或者尝试Move Certificates模块,区别在于这个模块会把在用户侧的证书直接移动到系统侧(用户侧没了)

隐藏root有两种方案:

环境条件

  • 已root的Android设备
  • 抓包软件 Burpsuite 或其他
  • 命令行工具 OpenSSL

0X01 步骤

浏览器访问Burpsuite代理端口,下载证书,下载下来名称应该是cacert.der

执行转换格式然后计算hash命令:

1
2
openssl x509 -inform der -in cacert.der -out burp.pem
openssl x509 -inform PEM -subject_hash_old -in burp.pem

然后用第二个命令输出的第一行重命名文件, 末尾在加上.0(如果手机里面已经有个一样名称的.0了那就.1)

重命名成类似9a5ba575.0(好像Burpsuite生成的证书Hash是一样的?)

USB线连接adb或者手动复制反正不管啥手段,把证书放入手机这个目录(如果都不行的话请使用Always Trust User Certificates模块)

/system/etc/security/cacerts/

并设置成644权限

此时在设置里信任和凭据,系统项页面应该能看到导入证书的名称:

开始抓包吧!

0X02 额外

在放入证书的步骤,如果重新挂载system分区失败或者还是写不进去的话也许是手机用了动态分区,用MagiskAlways Trust User Certificates模块试试,就正常导入到用户证书然后重启下就可以了;

如果APP有代理检测的话可以用VPN软件,例如Postern,将代理转换成VPN形式;有些APP可能还会检测root状态,则要想办法用模块对它隐藏root;

如果抓包对象APP自定义了信任证书或双向认证,先试试SSLUnpinning等模块,或者fridaHook校验函数,再不行就只能从APP本身下手了。