APP-Android抓包技巧

抓包出错排查思路

图片名称
  • 上面是大概的排查思路, 具体的细节可能有些差异。如果proxy带有证书校验, 且JustTrustMe绕不过去, 可能要自己重新根据该应用定制hook模块, 去绕过其本地证书校验, 但是大部分应用都能通过将证书安装为系统证书绕过。

0x01 抓取HTTPS的数据包

使用Frida绕过SSL固定

  • 项目背景:适用Burp抓app的包,当未开代理,APP联网正常抓包;
    开了代理,APP无法联网,抓包失败。

  • 配置环境

    • PC端:MAC
    • Android端:基于arm64
    • python:3.6
  • Frida安装
    Frida安装分为两部分,PC端安装客户端和Android端安装服务器。

    • 客户端安装:pip3.6 install frida
      执行frida-ps,验证是否安装成功。如下图所示,则表明frida客户端安装成功。

      图片名称
    • 服务端安装:frida服务端版本应与客户端一致,因此需要先在PC中输入frida –version查看frida版本。如下图:

      图片名称

      然后在https://github.com/frida/frida/releases
      中下载对应的服务端版本。注意我们还得查看模拟器或测试机架构,下载对应的版本。命令#: adb shell getprop ro.product.cpu.abi

      图片名称

      本文环境应下载frida-server-12.8.11-android-arm64.xz,下载之后解压,并将frida-server-12.8.11-android-arm64传到Android端,命令为:adb push frida-server-12.8.11-android-arm64 /data/local/tmp/frida-server,如下图:

      图片名称

      下一步就是执行frida-server,普通用户没有权限,需要su切换到root用户,然后到/data/local/tmp/路径下,对frida-server添加执行权限,执行chmod 777 frida-server,再执行./frida-server运行服务端frida。确认是否安装成功,在PC端执行frida-ps -U,如果列出设备上所有正在运行的进程,则代表安装成功。

      图片名称

      或者查看frida对应的端口是否启动,端口 27042 命令:adb shell netstat -tulnp

      图片名称
  • 设置代理

    • 设置模拟器代理或测试机代理

      • 设置-无线网络-wifi-修改网络-代理

      • 代理一般设置为出网ip,

      • 然后burp设置同样的IP和端口

        图片名称
  • 安装burp证书

    • 1.启动burp,保持默认代理不变,打开浏览器,设置浏览器代理,访问

      图片名称
    • 2.点击右上角下载证书,改名为burpca-cert-der.crt

      图片名称
    • 3.把证书导入模拟器或测试机:

      命令:adb push burpca-cert-der.crt /data/local/tmp/cert-der.crt

      图片名称

      到模拟器或测试机文件管理的对应路径双击导入证书,安装证书时,随意命名。

  • 开启绕过

    • 将 fridascript.js hook 到目标应用程序中
      命令:frida -U 包名 -l frida-android-repinning.js –no-pause

使用XPOST绕过SSL双向校验

  • 项目背景:在做安卓APP抓包测试的时候,发现有些APP会对https流量做SSL证书的强校验。

  • 绕过证书强校验,可以利用hook的方式,将应用及系统中验证https证书的逻辑全部hook为验证结果正确,这样无论安装的证书是否有效,皆可进行正常的https通信。这里就需要对手机安装hook框架,这里用到的hook框架为Xposed。

官方下载地址:
http://repo.xposed.info/module/de.robv.android.xposed.installer
这里需要注意的是,安装Xposed,需要root权限,在Android4.0-4.4是可以直接通过安装apk的方式开刷入Xposed框架,而在Android 5.0以上则需要刷入Xposted的固件包。
下载地址如下:
https://dl-xda.xposed.info/framework/
-w794
点击SDK23,发现有两种文件,其中.asc文件是 .zip文件的GPG签名,直接下载.zip文件安装即可。
-w976

SDK —- Android固件—-
SDK21 Android 5.0
SDK22 Android 5.1
SDK23 Android 6.0
SDK24 Android 7.0
SDK25 Android 7.1
SDK26 Android 8.0
SDK27 Android 8.1

同时我放在了百度网盘方便下载: