APP渗透 | 解决安卓7+无法抓取数据包问题

公众号:白帽子左一
领取配套练手靶场、安全全套课程及工具...
前言在日常渗透项目中,App渗透可以说是家常便饭了 。
但由于Android/ target=_blank class=infotextkey>安卓7以后不信任用户安装的证书,很多时候无法正常抓取数据包,很是烦人 。网上大多数的解决方法都是去买一个低版本的安卓手机来测试,我最开始也是这样做的,可自从遇到一些安卓7以下无法运行的app的时候,就发现这种方法还是不靠谱 。
既然用户安装的证书不信任,那能不能直接从系统装呢?
 
经过一番问询和搜索后,确实是可以的 。所以又是几天的实验和整理,就有了这篇文章 。整理出来方法稍微复杂,但可以一劳永逸,不管是针对实体机还是模拟器,不管是安卓7还是安卓10,都可以完美解决因证书不信任问题导致的无法抓取数据包 。
 
环境说明 
本次实验使用的实体机是一加5,系统是安卓10,已root,抓包软件使用的是burpsuite 。
 
正文 
一、openssl转换burp证书格式 

  • 首先运行burpsuite,导出证书至桌面

APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 

APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 安装openssl环境
openssl用于证书格式转换,windows下安装很简单,参考以下链接从第2步安装即可:
https://blog.csdn.net/sunhuansheng/article/details/82218678
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 安装成功后,进行证书格式转换 。cmd命令行模式下输入:
openssl x509 -inform DER -in cacert.der -out cacert.pem
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 再计算证书MD5值:
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 最后,将证书重命名为:9a5ba575.0

APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
二、adb连接手机shell安装证书 
  • 安装adb工具
很简单,参考以下链接,如果系统装有夜神模拟器的话,使用夜神自带的adb工具也是可以的:
 
https://blog.csdn.net/x2584179909/article/details/108319973
  • usb连接手机
这里需要手机开启usb调试,usb调试是在开发者选项里开启,怎么打开开发者选项不同手机不一样,但安卓机都会有,可根据手机型号自行百度 。
 
  • adb验证手机是否已经连接
【APP渗透 | 解决安卓7+无法抓取数据包问题】adb devices
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 上传证书到手机的/sdcard目录下:
adb push C:UsersAdministratorDesktop9a5ba575.0 /sdcard/
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 连接手机shell
adb shell
su
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 以读写方式(rw)重新挂载/分区:
system目录默认是只读权限,通过该方式才能有写入权限 。
 
mount -o rw,remount -t auto /
mount -o remount,rw /system (上条命令如果报错使用这条)
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • 将证书复制到系统安全目录并给权限
cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba575.0
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
  • ****重启手机
reboot
三、抓包验证 
以上就是全部步骤,在将证书成功导入后,在burp端设置监听ip和端口,在手机端设置代理后(网上教程很多,可自行百度),就可以顺利抓包了 。
 
如下为新浪微博抓包截图:
APP渗透 | 解决安卓7+无法抓取数据包问题

文章插图
 
总结 
以上就是安卓7+因证书问题导致APP无法抓取数据包的解决方法,上面是实体机,但模拟器类似,夜神模拟器从安卓7到安卓9使用同样方法,全部都可以正常抓包 。


推荐阅读