App防抓包有四种绕过方法(详细)

admin 2024年3月11日08:40:16评论75 views字数 3754阅读12分30秒阅读模式

App防抓包有四种方法

  • 背景:
  • 1、ssl证书校验(https证书校验=http请求+ssl证书校验)
  • 演示:安卓5.0怎么安装证书
  • 演示:安卓7及以上怎么把证书安卓到系统目录方法
  • 2、代理屏蔽
  • 3、证书绑定 (SSL pinning)
  • 使用工具hook有两种方法
  • 演示:objection绕过单向认证

本文所有工具包

链接:https://pan.baidu.com/s/1ObuGu8Ew8Teqms84au26fg 提取码:julg

更多app防抓包技巧和最新方法,请加入知识星球获取

背景

新的一年的秋招又来了,公司来了一批新的韭菜有好几个一点移动端渗透测试都没接触过,而公司的测试任务,有很多都是移动端,为了帮助韭菜们更快成为一名合格的韭菜,于是就有了这篇文章。

App防抓包有四种绕过方法(详细)

1、ssl证书校验(https证书校验=http请求+ssl证书校验)

(这点是最基础的,和小白简单讲讲原理,直接装证书就可以,懂哥可以直接看下一点)

http请求是不安全的,能轻易被中间人攻击(能被抓包),https安全的关键在于ssl证书

Ssl证书本质上就是一种安全协议,会在数据传输的时候对数据进行加密,只有接收者才拥有解密的密钥(解密的密码)能解密。

App防抓包有四种绕过方法(详细)

Burp是抓应用层的包,不会抓其他层的包,由于没有安装相对应的ssl证书,burp抓到的是乱码的数据无法识别出是http的请求,burp会默认他为其他层的数据包,就不去抓这个包,导致无法抓包

而ssl证书是需要花钱找指定的颁发机构去购买的,只有花钱买的证书才能被允许在互联网之间访问。

浏览器是不会保存ssl密钥的,如果不同网站的ssl证书密钥不同,那每次访问网站之前都需要下载ssl证书安装好后才能访问,这是不现实的,所以安全给业务做了让步,无论哪家公司的资产,想要使用https协议通信,网站ssl证书密钥都必须相同,这样浏览器就只需要保存一个ssl证书就能访问所有网站

burp只需要安装了证书,就能解密https通信的数据,就可以去绕过进行抓包

而app同样,有的app由于资金有限,所以不会去申请自己的ssl证书,就直接使用和浏览器一样的ssl证书,这个我们直接在安卓模拟器安装burp的ssl证书就能绕过

方法:

安卓5.0可以直接在设置安装证书,但是安卓7.0及以上需要把证书安装到系统目录下才可以,因为安卓7.0及以上默认只信任系统目录下的证书,其他默认不信任
演示:首先打开安卓5.0

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

先下载一个burp的证书,重命名为后缀为.cer,下载好了,插在word可以直接拖出来

App防抓包有四种绕过方法(详细)

然后直接拖进模拟器

App防抓包有四种绕过方法(详细)

记住上面的目录

App防抓包有四种绕过方法(详细)

在模拟器中找到证书文件

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

后面设置个密码就可以了

证书就安装好了,最后配置一下代理

App防抓包有四种绕过方法(详细)

最后打开burp,配置一下就能正常抓包了

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

演示:安卓7及以上怎么把证书安卓到系统目录

首先需要

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

然后需要一个burp的证书,但是需要是pem格式的证书,pem格式证书制作方法繁琐,我已经做好了一个burp证书的pem格式如下,可以直接使用

App防抓包有四种绕过方法(详细)

将这个证书拖进模拟器

App防抓包有四种绕过方法(详细)

长按这个文件,点击复制

App防抓包有四种绕过方法(详细)

找到系统目录/system/etc/security/cacerts/

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

最后找到系统目录/system/etc/security/cacerts/
把鼠标往下滑动,直到出现粘贴的按钮点击粘贴App防抓包有四种绕过方法(详细)

重启模拟器,系统证书安装成功

2、代理屏蔽


有的app做完ssl证书校验后,为了防止被抓包,多做了一层处理

使用okhttp框架,里面可以设置无代理模式,不走系统代理

我们使用burp测试的时候,会在wifi的地方设置一个手动代理,比如192.168.3.13:9090的代理,把数据包发送到本机代理端口上,这样burp就能接受到包

于是app的开发就利用这个特性,做了处理,给app设置自己的代理地址,可能这个代理地址就是服务器的地址,这样就不走burp的代理了

这个我直接安装一个poster,使用vpn代理就能抓到包,一共需要设置三个

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

记住,需要关闭wifi处的代理,直接使用vpn代理,burp可以照常抓到包

3、证书绑定 (SSL pinning)


证书绑定又叫单向认证,app不使用公开的ssl证书了,他花钱,去找证书颁发机构,去买一个属于自己的证书,并且自己设置了一个通信的密钥(密码)

Burp是抓应用层的包,不会抓其他层的包,由于burp没安装专属于这个app的ssl证书,burp抓到的是乱码的数据无法识别出是http的请求,burp会默认他为其他层的数据包,就不去抓这个包,导致无法抓包

绕过方法:

1、把App里面的证书揪出来,app和抓包软件的通信用那个证书。

2、删除掉App里面,单向认证的代码,让他能使用系统证书,然后他和抓包软件就能通信了。

揪证书需要逆向,很难,第二种可以使用工具进行hook,类似于断点处理

在已经安装好证书和vpn的情况下操作

使用工具hook有两种方法

1、Xposed框架中的JustTrustMe

2、objection绕过单向认证
演示:xposed框架中的JustTrustMe

首先打开安卓模拟器

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

开机,打开游戏中心,搜索xposed框架,可以直接下载安卓7的xposed框架

App防抓包有四种绕过方法(详细)

下载好后,直接打开xposed的app

App防抓包有四种绕过方法(详细)

需要等待一会下载

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

重启设备后,框架就安装成功了

App防抓包有四种绕过方法(详细)

直接将JustTrustMe.apk拖进去

App防抓包有四种绕过方法(详细)

然后直接进去xpsed框架

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

最后再次重启设备,安装的app消失,模块依然存在

JustTrustMe就激活了,可以直接用poster vpn抓包测试app了

App防抓包有四种绕过方法(详细)

JustTrustMe在测试的时候会自动对app所有具有单向认证的地方进行hook

演示:objection绕过单向认证

该方法较为难需要用到的工具有
adb(可以通过windows的命令行去控制安卓机,可以传文件可以执行命令)
frida (Frida 是一款基于Python +JavaScript 的 Hook 与调试框架)
frida_tools (简单的说就是一款动态代码检测工具)
objection(Objection是一款移动设备运行时漏洞利用工具)

演示:

  1. 1. 安装frida 、frida_tools 、objection

前提是已安装了python3,因为这三个工具包本质都是基于python运行调试的,直接打开命令行执行这段代码,注意!需要开启TLY翻墙再进行pip安装,否则会安装失败或者很慢,可能由于这几个工具都是国外的原因

pip install frida==12.11.17 frida_tools==8.1.3 objection==1.9.4

安装好后,最后一行会出现successly的字,代表安装成功了。

2.如何使用adb连接安卓模拟器

首先打开夜神模拟器助手,删除掉其他的模拟器,只能留一个模拟器,否则无法连接adb

App防抓包有四种绕过方法(详细)

启动仅有的一台模拟器,打开设置,进入关于平板电脑,点击版本号,点击7下

App防抓包有四种绕过方法(详细)

进入开发者模式,返回上一级,进入开发者选项,找到调试,打开usb调试

App防抓包有四种绕过方法(详细)

接着打开adb工具包,输入cmd

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

adb start-server //开启adb服务

adb devices //查看adb连接状态

adb shell //打开手机终端

adb kill-server //关闭adb服务

adb connect 127.0.0.1:62001 //连接模拟器

adb root //将adb权限升级为root

adb push file file //将adb文件夹下的文件传入模拟器的文件夹下

先开启adb服务

App防抓包有四种绕过方法(详细)

查看现有连接的安卓手机,暂时没有

App防抓包有四种绕过方法(详细)

连接夜神模拟器的安卓手机,connected代表已连接

App防抓包有四种绕过方法(详细)

不同厂商的模拟器,默认连接的端口不同,部分厂商具体如下:

App防抓包有四种绕过方法(详细)

次输入adb devices查看连接状态

App防抓包有四种绕过方法(详细)

连接成功了,接着需要将frida的服务端,传到模拟器的/data/local/tmp目录下

Frida的服务端下载地址(https://github.com/frida/frida/releases)

必须要和上面的frida的版本一样否则也会报错,我找了很久,下面这个文件可以直接放进去

App防抓包有四种绕过方法(详细)

frida-serverx86放入adb的目录下

App防抓包有四种绕过方法(详细)

App防抓包有四种绕过方法(详细)

传入文件

adb push frida-serverx86 /data/local/tmp

App防抓包有四种绕过方法(详细)

查看模拟器,传入成功

App防抓包有四种绕过方法(详细)

接着进入模拟器的终端给这个文件权限,安卓的底层是linux所以直接执行linux的命令

执行adb shell

App防抓包有四种绕过方法(详细)

cd /data/local/tmp

chmod 755 frida-serverx86

./frida-serverx86

一套执行下来

App防抓包有四种绕过方法(详细)

这样就可以了,接着随便打开一个cmd

输入frida-ps -U,出现进程名,代表frida执行成功

App防抓包有四种绕过方法(详细)

接着在模拟器运行某金融app

App防抓包有四种绕过方法(详细)

然后继续在cmd执行frida-ps -Ua

App防抓包有四种绕过方法(详细)

最后使用这条命令

objection -g包名 explore -s "android sslpinning disable"

objection工具就会自动对长城期权app所有单向认证的地方进行hook

objection -g com.cgws.hdoption explore -s "android sslpinning disable"

出现关于这个命令框代表执行成功,我们就可以正常使用poster vpn代理进行burp抓包测试了

App防抓包有四种绕过方法(详细)

本文比较适合小白,如有不对,欢迎大哥们私信指正点评!

App防抓包有四种绕过方法(详细)

原文始发于微信公众号(哈拉少安全小队):App防抓包有四种绕过方法(详细)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月11日08:40:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   App防抓包有四种绕过方法(详细)https://cn-sec.com/archives/2088798.html

发表评论

匿名网友 填写信息