APP抓包-资产获取+Frida反代理绕过和证书校验绕过

app抓包获取资产

1.打开模拟器,和电脑连接同一个wifi,让模拟器和电脑处于同一局域网,在模拟器配置代理。

burp开启监听

模拟器开启app,burp成功获取资产信息

有时候明明配置没问题,为什么抓不到app数据包呢?

1.目标没走http/s协议

解决方案:抓取目标使用的协议或者全局(全协议)抓包

2.目标设置了反虚拟机

解决方案:使用手机配合抓包即可

3.目标设置了反代理或证书校验的检测—防抓包机制

app抓包——反代理和证书校验绕过

尝试抓取探探app的数据包,burp开启监听,发现从进入app到发布动态都没有监听到任何数据包,甚至app还产生了【没有网络信号,请再试一次】的错误。

但是只要关闭代理,不监听app就会恢复正常

这种情况就是app有证书校验,我们需要解决证书问题才能抓包获取资产信息

解决app证书校验无法抓包问题---Frida

Firda 是一款易用的跨平 Hook 工具, Java 层到 Native 层的 Hook 无所不能,是一种 动态 的插桩工具,可以插入代码到原生 App 的内存空间中,动态的去监视和修改行为,原生平台包括 Win、Mac、Linux、Android、iOS 全平台。

测试环境:

Windows11  Python3.8  夜神模拟器(逍遥模拟器试了好像不行)  r0capture+frida-server+wireshark

夜神:https://dl.qhhnwl.cn/sinfo/2000003917_4002475.html

1.本地安装fridatools版本

执行命令:

pip install frida

pip install frida-tools

安装成功,执行命令:pip list  查看安装版本信息

2.模拟器安装fridaserver版本

注意:版本要与本地Frida一致

进入模拟器的bin目录,打开命令行,执行:nox_adb.exe devices  检测连接设备

在执行:nox_adb.exe shell  连接设备

成功连接模拟器之后安装frida——server

frida下载:https://github.com/frida/frida/releases

输入:getprop ro.product.cpu.abi  查看模拟器位数

查询出是32位的,所以我们要下载32位的。下载的frida版本一定要和本地的一样

Frida——server下载完成,解压后放到夜神bin目录

回到命令行,输入:exit 退出连接

在输入:nox_adb.exe push 你的frida名称 /data/local/frida-server   安装frida

模拟器查看/data/local/目录,成功安装

3.模拟器启动fridaserver

输入:nox_adb.exe shell  连接模拟器设备

输入:cd /data/local/

输入:chmod 777 frida-server   给执行权限

输入:./frida-server   启动frida服务

执行之后没有反应就是执行成功了,重新在夜神bin目录开一个命令行

输入:nox_adb.exe shell

输入:ps | grep frida-server  查看服务进程

可以看到服务正在运行,启动成功

4.本地连接frida

启动本地命令行,

输入:frida-ps -U

有进程信息说明连接成功,这个进程信息就是模拟器的进程信息。

在输入:frida-ps -R

运行不成功

在夜神bin目录启动命令行

输入:adb forward tcp:27042 tcp:27042  转发请求

再次回到本地命令行执行:frida-ps -R 

成功获取进程

模拟器运行一个app,本地命令行输入:frida-ps -R 

成功出现运行app的进程。保证这一点环境就已经配置成功了。

5.启动脚本抓包——解决证书问题

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

r0capture描述:

1.r0capture仅限安卓平台,测试安卓7、8、9、10、11 可用 ;

2.无视所有证书校验或绑定,不用考虑任何证书的事情;

3.通杀TCP/IP四层模型中的应用层中的全部协议;

4.通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf等、及它们的SSL版本;

5.通杀所有应用层框架,包括HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;

6.无视加固,不管是整体壳还是二代壳或VMP,不用考虑加固的事情。

 

想要运行脚本首先要知道app包名:

在模拟器安装一个【APK资源提取器】

工具:http://www.2265.com/soft/410141.html

打开之后可以看到所有应用的包名

脚本根目录打开命令行,

输入:python r0capture.py -U -f app包名 -p 要保存名字.pcap

夜神就会自动启动探探app

开始各种协议抓包……

注意:抓包之前要对探探app完成注册登录,否则抓包会卡在登录页面,等你登录之后才会继续抓包

抓包完成,在脚本根目录生成一个.pcap的文件

使用工具wireshark打开文件,可以看到抓到的各种协议的数据包

工具:https://github.com/wireshark/wireshark

成功绕过证书校验抓取数据包,就可以在这些数据包中收集资产信息。

如果想要操作数据包,可以联动Fiddler和Burpsuit。联动Burpsuit只能操作http/s的数据包。

其他绕过方式:APP抓包-代理转发绕过反代理+Xposed绕过证书校验_xiaoheizi安全的博客-优快云博客

<think>嗯,用户想知道如何绕过APK的签名校验机制。首先,我得回忆一下APK签名的作用。APK签名主要是为了验证应用在发布后没有被篡改,确保应用的完整性。如果用户想绕过这个机制,可能有几种方法,比如修改APK后重新签名,但系统会检测到签名不一致,导致安装失败或者运行时校验失败。 根据提供的引用内容,引用[1]提到verifiedEntries找不到新添加的文件,导致返回null。这可能涉及到在签名后添加文件,从而绕过签名检查。另外,引用[2][3]提到了替换public_key的方法,可能是在反编译后的代码中找到签名相关的部分,替换正确的公钥,或者通过抓包修改网络请求中的验证信息。引用[4][5]则涉及重打包修改返回值,比如hook方法返回特定的路径,欺骗签名检查。 首先,我需要整理这些方法。可能的方法包括:重打包时处理签名校验逻辑、修改验证相关的代码或资源、网络验证的中间人攻击、动态Hook技术,以及通过注入文件来绕过校验。每种方法的具体步骤需要详细说明,比如反编译APK、定位签名校验代码、修改smali代码或资源文件,然后重新打包签名。同时,需要注意这些方法的实现细节,比如如何找到关键代码位置,如何处理签名后的文件添加,或者如何Hook系统方法返回伪造的信息。 另外,用户可能需要了解这些方法的原理潜在风险,比如可能违反法律法规,或导致应用不稳定。因此,在回答中需要强调这些注意事项,并建议仅用于合法授权的研究。同时,要确保步骤清晰,比如分步骤说明如何反编译、修改、重打包,以及可能用到的工具如apktool、Frida等。 还需要考虑用户的实际操作中可能遇到的问题,比如如何定位签名校验的代码位置,如何正确替换公钥,或者如何配置抓包工具来拦截修改网络请求。引用中的例子提供了具体的代码修改点,比如修改getPackageCodePath的返回值,这需要用户具备一定的逆向工程编程能力。 总结起来,回答需要分步骤介绍不同方法,结合引用中的具体案例,说明每种方法的操作流程,并提醒用户注意法律安全问题。同时,生成的相关问题要围绕这些方法的应用、检测防御展开,帮助用户进一步理解相关技术。</think>### 绕过APK签名校验的常见方法 #### 1. **修改签名校验逻辑(代码层绕过)** - **原理**:APK签名校验通常通过对比当前APK的签名与预置的合法签名是否一致来实现。若直接修改校验逻辑(例如强制返回`true`),可绕过检测。 - **步骤**: 1. 使用反编译工具(如`apktool`)解包APK,定位签名校验代码。通常搜索关键词如`signatures`、`getPackageInfo`、`verify`等[^2]。 2. 修改`smali`代码或`Java`逻辑,使校验函数直接返回合法值。例如: ```smali # 原代码:if-eqz v0, :cond_0 (检查签名是否为空) # 修改为:if-nez v0, :cond_0 (反向条件) ``` - **风险**:部分应用会在多个位置校验签名,需全面覆盖。 #### 2. **注入合法公钥(资源替换)** - **原理**:若应用使用预埋的公钥验证签名,可通过反编译替换合法公钥。 - **步骤**: 1. 反编译APK后,搜索`public_key`或`signature`相关资源文件。 2. 将合法APK的公钥替换到目标APK中,确保验证逻辑匹配[^3]。 - **案例**:通过抓包对比正常APK与篡改APK的`public_key`差异,替换后绕过网络验证[^3]。 #### 3. **动态Hook绕过(运行时拦截)** - **原理**:使用`Frida`或`Xposed`等工具,在运行时修改关键函数返回值。 - **步骤**: 1. Hook签名校验函数(如`getPackageCodePath`),强制返回合法APK路径: ```javascript // Frida脚本示例[^5] Java.perform(function () { Java.use("android.content.ContextWrapper").getPackageCodePath.implementation = function () { return "/data/app/合法APK路径/base.apk"; }; }); ``` 2. 绕过校验后加载篡改后的APK。 #### 4. **签名后注入文件(Jar漏洞利用)** - **原理**:Android的`JarVerifier`在校验时依赖`verifiedEntries`列表。若在签名后添加新文件,该校验会失败但可能被忽略[^1]。 - **步骤**: 1. 对已签名APK追加新文件(如`assets/`目录下的资源)。 2. 修改代码逻辑,使应用加载新增文件时不触发校验。 #### 5. **网络验证中间人攻击** - **原理**:若签名校验依赖服务端验证,可通过抓包篡改响应。 - **步骤**: 1. 使用抓包工具(如`Charles`)拦截验证请求。 2. 替换响应中的签名验证结果字段(如`"valid": true`)[^3]。 --- ### 注意事项 1. **法律风险**:绕过签名校验可能违反《计算机软件保护条例》,仅限合法授权场景使用。 2. **兼容性问题**:修改后的APK可能因签名失效导致部分功能异常(如支付、地图SDK)。 3. **对抗加固**:若APK被混淆或加固(如360加固),需先脱壳再修改。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaoheizi安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值