Android 通用抓包方式

前言

抓包思路有两种

  1. 中间人
  2. hook android libssl.so 获取ssl key log

中间人的优势是简单方便,实时。hook的方式优势是原汁原味(比如可以看到两端握手的过程)。具体选哪一种,根据实际需求决定

中间人

可以利用的工具有pcap remote + wireshark、postman等等。这里就用我最常用的pcap举例

不管用什么工具,最核心的步骤就是:导入证书到系统证书目录。

为什么是导入到系统证书目录呢?因为从Android 7开始,默认是不信任用户证书的,所以普通的安装用户证书的方式很多都无法抓包,但是系统证书不存在这个问题。

导入证书到系统证书目录

准备:一台已经root的手机,我这里用的是Android 11已经root的手机。

  1. 将抓包工具需要安装的证书导出为pem文件

  2. 获取pem文件的hash

    openssl x509 -inform PEM -subject_hash_old -in xxxx.pem | head -1
    87bc3517
    
  3. 将pem文件重命名

    这里重命名为87bc3517.0

  4. 修改system分区权限

    adb root;adb disable-verity;adb reboot;adb wait-for-device;adb root;adb remount
    
  5. 拷贝到系统证书目录

    cp 87bc3517.0 /system/etc/security/cacerts/
    
  6. 修改权限

    chmod 644 87bc3517.0
    

抓包

导入后就可以抓包了,这里就不具体演示了,根据自己具体使用的工具来。我这里主要介绍下面的hook方式

hook android libssl.so 获取ssl key log

在pc上我们经常使用wireshark来抓包,但是wireshark不支持中间人抓包。抓到基于tls加密的包是无法解密查看的。然而Android内部的libssl.so有个设置SSL/TLS连接上下文中的密钥日志回调函数SSL_CTX_set_keylog_callback。所以我们只要想办法设置回调并将密钥打印出来,然后将密钥设置给wireshark,它就可以解密出抓到的加密内容了。具体操作详见这篇 意外发现的Android硬核https抓包, 在多个app亲测ok, 自定义ssl也无用哦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值