一杯敬朝阳 一杯敬月光
唤醒我的向往 温柔了寒窗
于是可以不回头地逆风飞翔
不怕心头有雨 眼底有霜
一杯敬故乡 一杯敬远方
守着我的善良 催着我成长
所以南北的路从此不再漫长
灵魂不再无处安放
🎵 毛不易《消愁》
准备工作
在开始之前,确保你已经准备好以下工具:
frida-server
:一个动态代码插入工具,允许你在运行时注入代码到应用中。frida-server需要在目标设备上运行。- `frida-client:通常指的是frida的命令行工具,用于与frida-server交互。
objection
:一个基于frida的工具,用于帮助安全工程师对移动应用进行安全评估,包括绕过SSL Pinning。([利用Objection实现移动应用抓取https流量])Charles
:一款广泛使用的HTTP代理/HTTP监控/反向代理工具,能够抓取包括HTTPS在内的网络流量。Postern
:一款代理工具,可以在手机上配置代理,使流量通过指定的代理服务器。
配置抓包环境:Postern + Charles
安装和配置Charles:首先在你的计算机上安装Charles,并启动。确保Charles的SSL代理功能被激活,并且已经生成并安装了Charles的根证书。这样Charles就能解密经过它的HTTPS流量了。
配置Postern:在你的手机上安装Postern,并将其配置为将所有网络流量通过Charles代理。这通常涉及到输入Charles运行所在计算机的IP地址和端口。
此时,如果你尝试通过手机访问HTTPS资源,可能会发现Charles中捕获的流量包显示为"unknown"。这往往是因为SSL Pinning的原因,即应用校验了服务器证书的特定属性,阻止了中间人攻击(MITM)。
利用objection绕过SSL Pinning
-
启动
frida-server
:在目标设备上启动frida-server
。确保设备已经root
或越狱
,以便frida-server
能够以足够的权限运行。 -
获取应用包名:使用
frida-client
连接到目标设备,并列出设备上所有运行的应用及其包名。这可以通过命令frida-ps -Ua
完成。
-
使用
objection
注入应用:确定了目标应用的包名后,使用objection
来注入该应用并禁用SSL Pinning
。命令如下:objection -g <包名> explore -s "android sslpinning disable"
。这条命令会让objection
尝试各种方法来禁用目标应用内的SSL Pinning
机制。
-
再次抓取流量包:完成上述步骤后,再次尝试通过目标应用发送
HTTPS
请求。此时,Charles
应该能够成功捕获和解密HTTPS
流量,流量包不再显示为"unknown"
。
结论
通过以上步骤,你可以绕过SSL Pinning,成功抓取和分析HTTPS流量。这对于评估应用的安全性,特别是检查敏感数据如何被传输和处理,是非常有用的。