安卓应用层抓包通杀脚本r0capture

安卓应用层抓包通杀脚本r0capture

r0ysue: https://github.com/r0ysue/r0capture

Spawn 模式:

python r0capture.py -U -f 包名

简介

仅限安卓平台,测试安卓7、8、9、10、11 可用 ; 无视所有证书校验或绑定,不用考虑任何证书的事情;
通杀TCP/IP四层模型中的应用层中的全部协议;
通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它们的SSL版本;
通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情; 如果有抓不到的情况欢迎提issue,或者直接加vx:r0ysue,进行反馈~

January.14th 2021 update:增加几个辅助功能

增加App收发包函数定位功能 增加App客户端证书导出功能
新增host连接方式“-H”,用于Frida-server监听在非标准端口时的连接

还支持证书hook功能呢

客户端证书导出功能:默认开启;必须以Spawm模式运行; 运行脚本之前必须手动给App加上存储卡读写权限;

并不是所有App都部署了服务器验证客户端的机制,只有配置了的才会在Apk中包含客户端证书

导出后的证书位于/sdcard/Download/包名xxx.p12路径,导出多次,每一份均可用,密码默认为:r0ysue,推荐使用keystore-explorer打开查看证书。

导出后的证书位于/sdcard/Download/包名xxx.p12路径,导出多次,每一份均可用,密码默认为:r0ysue,推荐使用keystore-explorer打开查看证书。

    //在服务器校验客户端的情形下,帮助dump客户端证书,并保存为p12的格式,证书密码为r0ysue
    Java.use("java.security.KeyStore$PrivateKeyEntry").getPrivateKey.implementation = function () {
    
    
      var result = this.getPrivateKey()
      var packageName = Java.use("android.app.ActivityThread").currentApplication().getApplicationContext().getPackageName();
      storeP12(this.getPrivateKey(), this.getCertificate(), '/sdcard/Download/' + packageName + uuid(10, 16) + '.p12', 'r0ysue');
      var message = {
    
    };
      message["function"] = "dumpClinetCertificate=>" + '/sdcard/Download/' + packageName + uuid(10, 16) + '.p12' + '   pwd: r0ysue';
      message["stack"] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new());
      var data = Memory.alloc(1);
      send(message, Memory.readByteArray(data, 1))
      return result;
    }
    Java.use("java.security.KeyStore$PrivateKeyEntry").getCertificateChain.implementation = function () {
    
    
      var result = this.getCertificateChain()
      var packageName = Java.use("android.app.ActivityThread").currentApplication().getApplicationContext().getPackageName();
      storeP12(this.getPrivateKey(), this.getCertificate(), '/sdcard/Download/' + packageName + uuid(10, 16) + '.p12', 'r0ysue');
      var message = {
    
    };
      message["function"] = "dumpClinetCertificate=>" + '/sdcard/Download/' + packageName + uuid(10, 16) + '.p12' + '   pwd: r0ysue';
      message["stack"] = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new());
      var data = Memory.alloc(1);
      send(message, Memory.readByteArray(data, 1))
      return result;
    }

强 !!!

我们现场使用下,看下效果:

先把你的frida 启动起来:

python r0capture.py -U -f 包名

在这里插入图片描述

不错,非常强!!!

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
另外就是如何你觉得堆栈打印比较乱的话,也可以自行修改js脚本,将 message[“stack”] 注释掉即可。
在这里插入图片描述

另:

https://github.com/r0ysue/r0capture/tags

在这里插入图片描述
有三个版本,v1.0版本比较简洁,但没有证书hook功能,大家可以自己选择!

猜你喜欢

转载自blog.csdn.net/weixin_38927522/article/details/127123371
今日推荐