Android&Ios抓https包

Android

Android 7之后,用户安装的证书在APP的默认配置下是不被信任的,只能通过重打包APP,或root手机之后导入证书,或frida脚本hook绕过

导入证书到system分区,可参考magisk的mount大法

adb shell 'umount /system/etc/security/cacerts' 

adb shell 'cp -pR /system/etc/security/cacerts /data/local/tmp/' 

adb shell 'cp /data/local/tmp/ +yourcertname /data/local/tmp/cacerts/' 

adb shell 'chmod -R 755 /data/local/tmp/cacerts' 

adb shell 'chcon -R  +con /data/local/tmp/cacerts' 

adb shell 'mount /data/local/tmp/cacerts /system/etc/security/cacerts' 

yourcertname需要对应修改为hash.0格式

openssl x509 -inform DER -in your_cacert.der -out cacert.pem  

openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1

 mv cacert.pem <hash>.0

 

frida脚本hook绕过,还可以过APP的证书绑定(SSL pinning)机制

try{

        var array_list = Java.use("java.util.ArrayList");

        var ApiClient = Java.use('com.android.org.conscrypt.TrustManagerImpl');

        ApiClient.checkTrustedRecursive.implementation = function(a1, a2, a3, a4, a5, a6) {

            var k = array_list.$new();

            return k;

        }

    }catch (e) {

        //console.log('universal '+e);

    }

 

IOS

IOS新版本,没有区分用户证书和系统证书,证书安装完成之后,还需要在设置-通用-关于-证书信任 里面启用才行

ios12.x版本可以通过上述方式+fiddler抓到小程序等的https包,但ios13.x之后存在问题,参考https://support.apple.com/en-us/HT210176

若ios app启用了证书绑定,则也需要相应的frida脚本hook来绕过

 

APP绕过WiFi代理

APP若使用Java层的Proxy.NO_PROXY选项,则即使设置了WiFi代理也无法抓到包

还有一种app,使用了Google的flutter框架和dart语言编写的跨平台应用,其默认不使用WiFi代理(client.findProxy = HttpClient.findProxyFromEnvironment;启用代理)

导入证书+proxydroid(https://github.com/zzzzfeng/proxydroid/releases)+mitmproxy可以完美解决(导入证书辅助工具https://github.com/zzzzfeng/appstarter,--cert选项)

注意:使用fiddler可能达不到效果,fiddler生成的证书是基于IP的,没有读取ssl中的sni信息,需要(左下角输入框)手动执行prefs set fiddler.network.https.SetCNFromSNI true才行

使用(11条消息) PacketCapture_v1.7.2.apk-网络攻防文档类资源-CSDN下载抓包(基于V pN),首先将其证书(/data/misc/user/0/cacerts-added/e6f5bd3f.0)导入到system,然后本地抓包

欢迎关注

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值