Android Burpsuite无障碍抓包
0x00 前言
不是新知识,有时候会有人遇到Android抓包的问题,在这里做个记录备用。如果条件允许还是直接用IOS设备,导入证书并信任就啥都抓到的了。Android遇到微信授权登录步骤可能就抓包失败。这时候要把中间人证书放到系统信任证书目录下。
2022.9.13
请优先使用Magisk+Always Trust User Certificates模块
或者尝试Move Certificates模块,区别在于这个模块会把在用户侧的证书直接移动到系统侧(用户侧没了)
隐藏root有两种方案:
- Zygisk + Shamiko
- Riru + Riru-MomoHider
环境条件
- 已root的Android设备
- 抓包软件
Burpsuite
或其他 - 命令行工具
OpenSSL
0X01 步骤
浏览器访问Burpsuite代理端口,下载证书,下载下来名称应该是cacert.der
执行转换格式然后计算hash命令:
1 | openssl x509 -inform der -in cacert.der -out burp.pem |
然后用第二个命令输出的第一行重命名文件, 末尾在加上.0(如果手机里面已经有个一样名称的.0了那就.1)
重命名成类似9a5ba575.0(好像Burpsuite生成的证书Hash是一样的?)
USB线连接adb或者手动复制反正不管啥手段,把证书放入手机这个目录(如果都不行的话请使用Always Trust User Certificates模块)
/system/etc/security/cacerts/
并设置成644权限
此时在设置里信任和凭据,系统项页面应该能看到导入证书的名称:
开始抓包吧!
0X02 额外
在放入证书的步骤,如果重新挂载system分区失败或者还是写不进去的话也许是手机用了动态分区,用Magisk
的Always Trust User Certificates模块试试,就正常导入到用户证书然后重启下就可以了;
如果APP有代理检测的话可以用VPN软件,例如Postern
,将代理转换成VPN形式;有些APP可能还会检测root状态,则要想办法用模块对它隐藏root;
如果抓包对象APP自定义了信任证书或双向认证,先试试SSLUnpinning
等模块,或者frida
Hook校验函数,再不行就只能从APP本身下手了。