r0tracer使用和源码解读
r0tracer介绍项目地址https://github.com/r0ysue/r0tracer
安卓Java层多功能追踪脚本==>相当于 精简版的Objection+Wallbreaker
功能1、根据黑白名单批量追踪类的所有方法
hook("javax.crypto.Cipher", "$");
2、在命中方法后打印出该类或对象的所有域值(包括参数、返回值、调用栈)
3、极简的文本保存日志机制、易于搜索关键参数
4、针对加壳应用找不到类时可以切换Classloader
使用方法1、修改r0tracer.js文件最底部处的代码,开启某一个Hook模式。
2、推荐使用Frida14版本,并且将日志使用-o参数进行输出保存
$ frida -U -f com.r0ysue.example -l r0tracer.js --no-pause -o saveLog5.txt
“-f”为Spawn模式,去掉”-f”为Attach模式
3、Frida版本=<12时,要加上--runti ...
R0capture关键代码学习
前言参考前面R0capture的代码,具体通过案例来分析抓包的原理和关键源码的追踪。主要包含下面内容:
Http Request
Http Response
Https Request
Https Response
Hook抓包原理&关键点源码追踪(HTTP request)demo-实现http请求创建一个httpsock函数,本质就是简单的java代码,通过socket实现客户端与服务端通信
//http://www.dtasecurity.cn:18080/demo01/getNoticeprivate void httpsock() { try { final String host = "www.dtasecurity.cn"; final int port = 18080; final String path = "/demo01/getNotice"; Socket socket = new Socket(host,port); //创建 ...
R0capture源码解读
R0capture介绍r0capture是一个基于firda实现的优秀的开源的抓包工具。它能完成对TCP协议层及上层所有协议的报文捕获,且不用考虑证书校验等问题。
它的实现基于frida_ssl_logger,两项目侧重不同。
项目地址:(github) https://github.com/r0ysue/r0capture
安卓应用层抓包通杀脚本
仅限安卓平台,测试安卓7、8、9、10、11、12、13、14 可用 ;
无视所有证书校验或绑定,不用考虑任何证书的事情;
通杀TCP/IP四层模型中的应用层中的全部协议;
通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等等、以及它们的SSL版本;
通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;
无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情;
原理介绍用一句话概括r0capture的核心原理即为:通过frida hook libssl.so中的 SSL_ ...
某保险APP加解密算法逆向
前言本节分析的是之前渗透时的一个APP,抓包后发现请求包和返回包都做了加密。
此处分析某保险的APP,具体分析情况如下:
开整开整开整~
抓包目标接口:https://xxx.xxx.xxx/login.do
发现请求包和响应包的内容都是直接加密的,也没有什么提示信息,什么玩意???
分析1、首先,查壳,未发现壳
2、将apk拖入到jadx中,搜索一些关键字符。如”encrypt”
发现在com.xxxx.core_library.util.encrypt这个package下,有AES和RSA的加密算法
查看相关代码后发现,疑似的关键代码是在AESUtil和 RSAUtils这两个类中的。
但具体加密逻辑是什么暂时不清楚。
3、这时候,可以用hook的神器objection来对这两个类下的所有方法hook,查看其加解密逻辑
android hooking watch class com.xxx.core_library.util.encrypt.AESUtilandroid hooking watch class com.xxx.core_library ...
frida_rpc算法转发实战
前言为什么要使用rpc进行转发???
现在开发app主流的方案是Java,一些中大厂app是Java+C++,C++最后生成的是so,是arm汇编。
一般分析arm汇编才是最难的,所以中大厂会更倾向把重要加密放在so中,来增强爬虫或者破解的难度!!!
但是如果使用rpc的话,你就不太需要分析繁琐的Java层和so层的加密了!
只需要找到特定的加解密函数和算法,然后frida主动调用java层或so层的方法,拿到加密前后的内容即可!
rpc转发案例本次使用的app是嘟嘟牛,下载地址如下:
嘟嘟牛在线app下载-嘟嘟牛在线充值下载v4.50 安卓版-绿色资源网 (downcc.com)
抓包通过抓包登录接口发现,走的是http://api.dodovip.com/api/user/login
提交的请求头是一个{Encrypt:xxxx},这???
这块作为平常的渗透或者进一步分析肯定是不行的,所以需要找一下参数 Encrypt 的生成逻辑。
分析1、直接将app拖入jadx中,查看,发现在AndroidManifest.xml文件中声明的Activity在源代 ...
主动调用-Native层主动调用并暴漏至公网
Native层主动调用demodemo主要基于如下这篇文章实现:
Android NDK AES 加解密 - 简书
两个方法:method01 和 method02 实现AES加解密,但是为了防止 AES的key和iv直接硬编码存储在代码中,可以做混淆&花指令和加固等操作。
Hook1、使用Objection查看Native中有哪些函数:
objection -g com.example.demoso1 -d explorememory list exports libnative-lib.so 查看导出函数,静态函数直接搜索
2、找到了函数名:”_Z8method01P7_JNIEnvP7_jclassP8_jstring “
可以利用如下网站转换,得到原函数名:
GCC and MSVC C++ Demangler
或者这块使用 https://github.com/lasting-yang/frida_hook_libart.git 这个工具也可以。
frida -U -f com.example.demoso1 -l hook_Register ...
主动调用-Java层主动调用并暴漏至公网
0x00 pyenv更新当有Python新版本更新后,如果旧版本pyenv没有集成进去的话,需要手动更新一下pyenv版本,方便安装。
Windowswin比较简单,直接 pyenv update 就行
Linux参考:GitHub - pyenv/pyenv-update: update pyenv and plugins
1、安装pyenv的更新扩展
git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
2、更新
pyenv update
0x01 Demo介绍代码介绍1、定义两个方法 method01和method02,分别用来进行AES加密和解密。
其中method01为静态方法;method02为实例方法。
2、进到so层中查看具体函数实现,会发现这两个函数是做了动态绑定的(java层和so层的函数名不要求一样,会在代码中进行动态绑定的)
3、在java代码中,会调用method01和method02对StringFromJ ...
配置RPC和开发姿势
Frida是一款基于Python和JavaScript的进程级Hook框架,其中JavaScript语言承担了Hook的主要工作,而Python语言则相当于提供给外界的绑定接口,使用者可以通过Python语言将JavaScript脚本注入进程中,官方也在下方仓库中提供了Python远程调用JavaScript中函数的方式:
https://github.com/frida/frida-python
下面简单介绍下通过Python实现Frida注入的基本方式。
0x00 开发环境准备工欲善其事,必先利其器。编写 frida js 时让 IDE 智能提示【使用 IDE 编写 frida js 时智能提示】
方法一
git clone https://github.com/oleavr/frida-agent-example.git
**cd frida-agent-example/**,执行命令 npm install
然后使用 VSCode、pycharm、idea 等 IDE 打开此工程,在 agent 目录下编写 JavaScript 代码时就会有智能提示。
JS单步 ...
六个常见的脱壳方式
文章来自:https://mp.weixin.qq.com/s/pcX_zaqrNsbv89VQm5NLsQ
一、BlackDex:软件方案BlackDex:https://github.com/CodingGay/BlackDex
限制条件:版本貌似<=7.xBlackDex32和BlackDex64两个都直接打开选中要脱壳的软件,等待即可:
Dex存储目录:/storage/emulated/0/Android/data/top.niunaijun.blackdexa64/dump/软件包名中(如果是32就后面64改32即可)
、
这种脱出来这么点的,基本就不是了,选中看一眼就知道了,可以尝试其他方案。
二、DITOR:模块方案1限制条件:安卓版本还是<=7.x
先在Xposed里面勾选启用模块。
然后点击/直接点击app图标进入:
这里我安卓7.1.2的模拟器装的用第一个getDex云脱壳方案,安卓7以上的用dumpMemery方案 ...
app三种常见抓包场景及案例分析
以下文章来源于:https://mp.weixin.qq.com/s/vUSNcshhuVWd7tWlw2qdbQ 【看雪学苑】
一、未校验:配置证书就能抓1、这种情况是最简单的情况,Android 7.0之前的设备,直接配置用户证书,就能进行抓包,Android 7.0之后的设备,需要获取root权限1后,把用户证书移到系统证书目录下,或者配置系统强制信任用户证书。
对于移动用户证书到系统证书目录下的情况,推荐使用这个插件:
https://github.com/ys1231/MoveCertificate
对于强制信任用户证书的这种情况,推荐使用这个插件:
https://github.com/NVISOsecurity/MagiskTrustUserCerts
2、对于这种情况,我们安装完证书后,直接使用代理/vpn的方式进行抓包就可以了,这里我们以某浏览器为例,进行抓包演示,因为我用的设备是Android 7.0以上的,所以我们首先是配置系统强制信任用户证书的插件。
3、配置完成后,我们在抓包软件上导出证书,然后在设备上进行安装。
4、接下来 ...