某app难忘的抓包之旅---实践版
本帖最后由 329337656 于 2024-1-5 23:18 编辑起因是看到 Light紫星 大神简述了对某app抓包经过进行实践 (原帖:记录某app难忘的抓包之旅)也碰巧自己需要用这个app去批量修改名称,以及电脑管理WiFi需要。
当WiFi设备高达300多的时候:rggrg,你就知道一个一个改名称有多痛苦了{:1_923:}。光加载一次设备列表就已经30秒过去了。苦不堪言,后面也发现了app的一个小瓜,快来围观~~
说干就干-->
app信息
[*]app名称:5rC05pifV2lGaQ==
[*]app版本号:2.1.8
调试工具
[*]frida 12.2.8
[*]小黄鸟 大鹰版(是这样叫的吗?就是小黄鸟它张开了翅膀:eee)
整理一下Light紫星大神的内容:
[*]无壳
[*]无签名校验
[*]打开justtrustme,小黄鸟抓包--->app会提示网络错误
[*]全局搜索https字样,全部替换成了http---->失败--->黄鸟提示app不信任系统证书(这里我还发现有趣的事情)
[*]替换内部的证书---->失败
[*]发现libRouterAppContextJNI.so--->16进制编辑器替换掉了他原来的pem证书--->正常抓包
好的,这里应该要给Light紫星大神掌声,坑都替我踩了。
但是,我技术有限,根本不懂如何将libRouterAppContextJNI.so里面的证书替换(希望后续有大神讲解一下~~)
此刻我想起之前看过一篇frida hook so文件进行抓包的文章,大概的我理解到的思路是用frida进行hook修改X509_verify_cert函数的返回值(验证证书的有效性的一个函数),让app不信任app自己的证书,从而达到抓包的目的。
ida分析libRouterAppContextJNI.so,查找函数:
https://attach.52pojie.cn//forum/202401/05/211810v0sd1j726cols5ec.png?l
正中我所想,函数是存在的,尝试hook看看是否有验证函数的过程
hook代码:
Java.perform(function(){
var nativePointer = Module.findExportByName("libRouterAppContextJNI.so", "X509_verify_cert");
console.log("-------------Start-------------"+nativePointer);
Interceptor.attach(nativePointer, {
onEnter: function(args){
// 此处是修改入参要做的逻辑,在这里不需要修改,留空即可
},
onLeave: function(retval){
console.log("进入证书验证返回--->"+retval)
}
});
});
hook命令:
https://attach.52pojie.cn//forum/202401/05/214458th4eaa37ne3ua4ug.png?l
hook结果:
https://attach.52pojie.cn//forum/202401/05/214511h3eoa5zg17xm1elr.png?l
果然是和我想的一样,继续修改hook代码:
Java.perform(function () {
var nativePointer = Module.findExportByName("libRouterAppContextJNI.so", "X509_verify_cert");
console.log("\r\n-------------Start-------------" + nativePointer);
Interceptor.attach(nativePointer, {
onEnter: function (args) {
// 此处是修改入参要做的逻辑,在这里不需要修改,留空即可
},
onLeave: function (retval) {
console.log("---------->Hook Start<----------\r\n")
console.log("进入证书验证返回--->" + retval)
// 用replace修改返回值
retval.replace(0x1)
// 确认是否修改成功
console.log("修改了证书的返回值--->" + retval+"\r\n")
console.log("---------->Hook End<----------")
}
});
});
hook结果:
https://attach.52pojie.cn//forum/202401/05/214535itww423bo7op1wzj.png?l
这样就修改成功了。先打开小黄鸟,将提示的证书安装上!
https://attach.52pojie.cn//forum/202401/05/215042gbrqpu93ckukrlbq.png?l
抓包顺序就要更加注意了。按步骤来:
[*]打开小黄鸟
[*]开启抓包
[*]执行hook命令
[*]hook到,并且替换校验证书的返回值
[*]app校验证书,失败,不信任证书
[*]此时小黄鸟就能够抓到响应的包
https://attach.52pojie.cn//forum/202401/05/221152ytykhlyt1moymzut.png?l
完整数据包:
https://attach.52pojie.cn//forum/202401/05/215309euxyyyuz7vyux777.png?l
整个流程不需要三小时,只需要10分钟,也说起前面的小瓜,在写批量修改名称程序的时候发现,原来http也能访问,这样可以省去证书的环节~
还有就是如果不安装抓包顺序来,就会抓不到包,我试过,如果打开了小黄鸟不启用抓包,让hook启动了app之后再开启抓包功能,就死活不能抓包。希望有大神讲讲其中的原理。
最后赠送大瓜环节,app反编译后发现app友商的内容,(T*_Link)难道是一个公司开发?
以上内容大神轻轻喷{:1_937:}
实践是检验真理的唯一标准,真正上手操作后会发现难度会比想象中的低一点 好家伙,你的号潜水了这么多年 正己 发表于 2024-1-5 22:24
好家伙,你的号潜水了这么多年
低调低调 活动一下,防止被嘎,楼主见谅 潜水这么长时间,说明封号的几率很小 FruitBaby 发表于 2024-1-5 22:54
潜水这么长时间,说明封号的几率很小
号是用钱买的邀请码,下载没有币就充值就好了{:1_918:}
为什么潜水是因为没有那样的技术{:1_923:} 会逆向app的都是高手 这app不检测frida吗