objection 过证书绑定抓APP数据包【转发】

原文链接:https://mp.weixin.qq.com/s/za1TmNNP42CHOn3JNUI1ow

objection 过证书绑定抓APP数据包

[雷石安全实验室](javascript:void(0)😉 2022-09-16 17:00 发表于浙江

图片

前言

在做APP安全测试时,往往会遇到抓不到数据包的情况,导致这种情况的原因有很多种,其中证书绑定是经常遇到的问题之一。如果我们在抓包时,使用了流量转发+透明代理还无法获取APP的数据包,那么大概率他就使用了证书绑定,除了使用插件和frida脚本hook外,这里还有一种更为简单的办法,使用objection一个命令搞定证书绑定。

当然,由于证书绑定的功能是由开发者自定义的,因此并不存在一个通用的解决方案,Objection也只是对常见的App所使用的网络框架中对证书进行校验的代码逻辑进行了Hook修改。一旦App中的代码被混淆或者使用了未知的框架,这些App的客户端校验服务器的逻辑就需要自行分析了。

前置知识

证书绑定

ssl Pinning 这种方式不仅校验服务器证书是否是系统中的可信凭证,在通信过程中甚至连系统内置的证书都不信任,而只信任App指定的证书。一旦发现服务器证书为非指定证书即停止通信,最终导致即使将抓包工具的证书安装到系统信任凭据中也无法生效。

frida

frida是一款轻量级的hook框架,专业点的说法就是动态插桩工具,可以插入一些代码到原生App的内存空间去动态地监视和修改其行为。通俗点讲通过该框架可以对android、ios、windows、linux等平台应用进行进程注入,从而达到劫持应用的目的,通过劫持我们可以实现各种功能。

该框架从Java层Hook到Native层Hook无所不能,但是持久化还是要依靠Xposed框架,另外由于其过于火爆,一些厂商也研究了反调试的方法。

Objection

Objection是基于frida的集成工具,其主要功能支持Android和iOS两大移动平台。在对Android的支持中,Objection可以快速完成诸如内存搜索、类和模块搜索、方法Hook以及打印参数、返回值、调用栈等常用功能,是一个非常方便的逆向必备工具和内存漫游神器。

流程

这里相关环境安装不在赘述,直接手机下载代理软件

一般来讲代理软件分两种,一种通过走VPN隧道的方式进行代理,有些APP会直接检测VPN代理,然后不加载。另外一种通过修改手机底层的iptables进行流量转发,从而绕过部分APP的检测,其区别在于一个软件开启后,手机上方会有一个VPN图标的提示,另一个没有。

这里我使用的是postern进行代理配置

添加代理服务器

图片

添加规则

图片

这时候可以测试一下浏览器,抓取一下百度的流量。是可以正常抓取的,但是打开app会发现,没有任何数据包发出。

手机使用数据线连接到电脑,开启USB调试功能,电脑端使用adb工具连接手机

图片

使用adb shell进入root模式,启动frida

图片

电脑端使用命令获取APP的包名

图片

使用objection工具直接对app进行绕过,因为有些APP的证书检测是从启动时就开了,所以这里我们使用启动时附加命令

objection -g包名 explore -s “android sslpinning disable”

可以看到其会自动对相关函数进行hook

图片

最后就能成功抓到数据包

图片

总结

无论使用哪种方法,能获取数据包进行测试才是最终目的,不论是Xposed框架的JustTrustMe插件、frida的hook脚本还是objection的内置命令,其核心都是去查找app所调用的类,并对相关函数进行hook,最终解除证书绑定。如果上述相关办法都不管用,那么说明APP可能混淆了,需要我们自己手动查找相关函数进行hook,所以掌握其相关的基本知识对我们安全测试人员还是很有必要的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Objection, wallbreaker"这个词组的意思可能是指在辩论或讨论中,对破除对方观点或阻碍的反对意见或观点。如果我要用300字回答这个问题,我会这样表达: 在辩论或讨论中, "objection, wallbreaker"是指提出反对意见或观点,意图破除或击破对方观点或阻碍。这个词组的出现通常是为了追求真实和公正的辩论,希望通过不同观点的碰撞促进智慧和认识的增长。 每个人都有自己的观点和立场,而辩论是一个相互交流、较量、甚至对抗观点的过程。当有人提出"objection, wallbreaker"时,他们可能持有不同的观点,希望通过辩论来找到真相或者找到更好的解决办法。 然而,在提出"objection, wallbreaker"时,我们也需要注意呈现我们的观点要公正和明晰。我们应该以理性的态度和充分的证据来支持我们的反对意见,而不是简单地提出不成熟的批评或个人攻击。 辩论中的"objection, wallbreaker"是一种促进思考和发展的机会。通过挑战和争论,我们可以更清晰地理解对方观点的有趣之处和缺点。这种挑战有助于增强我们的辩论能力、提升思维的灵活性,并可能在辩论过程中改变我们自己的立场。 总之,"objection, wallbreaker"是辩论中常见的现象之一,它代表了追求真相和理解的努力。在辩论中提出反对观点时,我们必须以开放和尊重的态度对待对方,并用理性的方式来支持我们的观点。通过这样的辩论,我们可以共同进步,获得深入的认识和智慧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值