内容提要
安卓抓包神器HttpCanary在PC上分析流量更方便。安卓7以下版本安装ssl证书即可被信任,7以上版本需要root权限。安卓设备也可使用eCapture抓包软件。本文讨论安卓7以上版本中安全性较低的应用。
延伸解读
安卓版本决定抓包难度
文章指出,安卓7以下安装SSL证书即可被信任,而安卓7以上需要root权限将证书移至系统目录。对于安全性较高的应用,还需绕过SSL Pinning,通常借助justTrustMe或frida。本文仅针对安全性较低的应用,因此操作相对简单,但读者需先确认目标应用的防护级别。
系统证书安装的两种路径
若手机system分区可写,用root文件管理器直接移动证书即可;若不可写,则需通过ADB和临时挂载tmpfs,复制系统证书、移入新证书并设置权限与SELinux标签。后者步骤繁琐,适合出厂版本较高的设备,操作前建议备份,避免系统异常。
分应用代理避免流量干扰
mitmproxy默认在PC的8080端口开启HTTP代理。若直接在手机WiFi设置全局代理,非目标应用流量也会经过代理,导致抓包目标不明确。使用Nekobox等支持分应用代理的工具,可只让待抓包应用走代理,提高分析效率,同时减少无关流量。
Q&A
如何在安卓7以上版本安装ssl证书以抓取HTTPS流量?
在安卓7以上版本,安全性较低的应用需要root权限,将证书移动至/system/etc/security/cacerts以被系统信任。
HttpCanary在安卓设备上有什么局限性?
HttpCanary在小屏幕上分析流量不方便,尤其是在PC上处理流量信息更为得心应手。
如何使用mitmproxy抓取安卓手机的HTTPS流量?
需要在PC端开启mitmproxy的http代理服务器,并确保待抓包应用的流量经过该代理。
安卓7以上版本的安全性较高的应用如何处理ssl证书?
需要在满足证书移动条件的情况下,阻止第三方应用使用自带的ssl证书信任范围,通常需要额外手段进行篡改。
eCapture软件在安卓设备上有什么特点?
eCapture是基于eBPF Linux内核模块的抓包软件,适用于Linux版本>=5.5的安卓设备。
如何避免非目标应用流量经过代理服务器?
可以使用Nekobox等代理软件实现分应用代理,确保只有目标应用的流量经过代理。