万能解决APP抓包问题

作者 monkey-king  文章来源:Ai monkey group

    在测试的过程中,我们不免会遇到APP的测试,那么我们是怎样对APP的进行抓包的呢?使用流量代理到BP中是万能之法吗?他能解决所有的问题吗?答案是否,那么如何争对不同的环境正确的进行抓包呢?这篇文章进行详细的解释。

一、无检测代理无双向证书绑定的老款APP

    无检测代理便是不检测代理的意思,那么老款APP是啥意思?在不检测的代理的情况下,我们可以手机可以开热点,使得电脑和手机处于同一个局域网下,把流量代理过去,当然,你也可以不使用同一个局域网,只要流量能够代理过去即可,我这里使用的是同一个局域网进行抓包,不检测代理我们当然可以这样做,所谓的老款APP是不用UDP的QUIC(HTTP/3)的一个协议,所以BP能够抓到APP的流量,无双向绑定指的是证书的双向绑定,就像我们的BP一样,我们在开始抓取HTTPS的流量的时候,也是双向绑定,我们的解决方法是证书的导入,那么我们具体怎么进行操作呢?具体的操作如下:

    在手机连上同一个局域网下,我们查看电脑的IP地址,在BP代理设置中监听8080端口,电脑的具体配置如下图所示:

图片[1]-万能解决APP抓包问题-华盟网

图1-1(查看电脑IP)

    使用BP代理进行监听此地址,如下图1-2所示:

图片[2]-万能解决APP抓包问题-华盟网

                       图1-2(代理设置图)

    那么如何查看自己的代理监听已经开启,我们使用netstat -ano | findstr 8080进行查看,到底监听地址是localhost还是我们的192的地址。

图片[3]-万能解决APP抓包问题-华盟网

                                图1-3(检查监听端口是否开启)

    如上图所示,我们的代理端口的IP地址是我们想要的,状态也是在等待连接,那么这个时候,我们开始对手机进行操作,使得手机的流量找打我们的电脑,从而流量进入BP。进行抓包。

    对手机来连接的网络进行设置代理,代理的地址便是我们的电脑的监听地址和端口。如下图所示1-4:

图片[4]-万能解决APP抓包问题-华盟网
图1-4(手机代理图)

    这样设置之后,你便可以使用BP进行App的抓包,但是必须的一步是,你的BP的证书要进入手机。使得你的手机信任此证书,从而来访问。

二、检测代理无双向证书绑定的老款APP

    那么所有的老款APP对我们的代理流量不检测吗?随着时代的进步,对我们的代理流量检测也变得很严格,那么在检测代理流量之后怎么办?还能抓到包吗?当然可以,这里区分一个点,在抓APP的时候出现网络不通畅的情况不一定全是双向证书绑定的问题,可能是APP进行流量检测,检测到代理流量,从而来导致的网络不通畅,从而我们可以进行代理。注意,这里的APP还是老款,并未使用UDP的QUIC。那么我们怎么办呢?除了代理能让流量走到BP上,那么怎么还能把流量引入呢?这里便引入另一个工具—–Reqable俗称小黄鸟,这个小黄鸟是个VPN的工具,你可以这样想,把他想象成我们的微信,我们的微信在手机端的信息和电脑的端的信息可以同步,这样的一个思路,你便大概可以明白,流量是互通的,只不过是换了不同的系统。那么流量肯定是同步的。

    Reqable的具体配置如下,在进行下载之后,你要进行导证书,如下图2-1所所示:

图片[5]-万能解决APP抓包问题-华盟网

图2-1(证书导入图)

    在进行证书导入之后,这只是在Reqable导入了证书,那么你的手机也要导入证书,而且证书必须是一样的,但是这里有一个硬性条件,我们的手机必须是ROOT权限,因为我们导入的证书是要在system下的目录,假如不是root,那么你没有权限进行复制到指定的目录。那么问题又来了,我没有这个手机怎么办,个人还是建议花一百多块钱进行购买谷歌的手机,抓取APP比较方便,性价比也可以,那么假如这样不买的话能不能进行抓包,也可以抓包,看下文。这里我们只对此中环境进行解释。那么我们的收怎么进行呢?其实挺方便的。打开我们的电脑下载的Reqable这个软件,他是可以有导入到手机的证书,前提是你的下载ADB工具,Android Debug Bridge(简称ADB)是Google提供的Android设备连接工具,可以从Android开发者官网下载,下载并安装完成后,配置ANDROID_HOME和PATH环境变量,重启Reqable即可,如下图2-2所示:

图片[6]-万能解决APP抓包问题-华盟网

                       图2-2(安卓安装证书)

    安装后,进行扫码便可以导入流量,在这个工具中的流量怎么导入到BP中,我们可以进行二级代理,从而代理到BP中,如下图2-3所示:

图片[7]-万能解决APP抓包问题-华盟网

图2-3(代理BP图)

    那么我们便可以进行流量代理从而进行改包发包,如下图2-2所示:

图片[8]-万能解决APP抓包问题-华盟网

      图2-4(流量抓取图),

    如上所示,这种情况下是检测代理的情况下,但是并未检测UDP的QUIC机制,所以我们可以使用这种进行抓包。其最大的特点便是可能出现网络不通畅的情况下。

三、无双向证书绑定的新款APP

    以上两种方法对对于检测代理和不检测代理的处理办法,心细的朋友可以发现,为啥此标题不检测代理了?这是因为无论是检测代理还是不检测代理,我们新款的APP最大的一个特点是使用了UDP的QUIC机制,使用BP抓包根本就抓取不到,不论是检测还是不检测,因为BP根本不支持这中协议,所以抓取不到。但是使用Frida 去Hook层明文从而转发给BP,这样我们也可以抓到,其中最有权威的项目是r0capture ,这是一种方法,我们也可以使用Reqable这个软件,使用这个软件进行抓取流量,BP给我们的感觉是被动的等流量来找,但是小黄鸟不一样,他是主动来进行找的。这就是我们无双向验证证书绑定的方法。

四、双向证书绑定的APP

    那么就剩最难搞的的双向证书的APP了,我们面对这种情况怎么进行抓包?这里提供三种思路,本次未遇到双向绑定的APP,这仅仅是思路,给我们大概的做法思路,以便以后遇到直到做啥。

    1.当遇到双向绑定的APP抓包时,我们可以拿到APP进行反编译apk,然后进行拆包,找/res/raw、/assets/下.p12、pfx、.bks,从代码里找到硬编码的密钥证书,然后提取,将证书导入到BP中,从而来解决双向绑定的问题。

    2.第二个就是我们的HOOK劫持,使用Frdia进行HOOK层的明文,来转入到BP中,这里建议多看看r0capture这个项目,他讲透了我们如是进行HOOK,r0capture 全层HOOK,直接无视双向证书,强推这个方法。但是使用这个项目拿到的可能是wireshark的包,也可以进行BP查看。

    3.最后便是小黄鸟(VPN)+内置客户证书,支持导入.p12客户端证书,直接使用VPN接管流量,此工具直接进行mTLS握手

    针对以上三种思路,本人强推第二种,因为第一种和第三种需要拿到证书,在解密和反编译阶段,我们有很大的可能拿不到证书,所以我们使用第二种进行解决双向绑定的问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容