一文读懂Android APP抓包和反编译&frida脱壳&APP单/双向认证&Root隐藏绕过技巧
字数 2890 2025-11-21 13:12:20

Android APP安全测试全面指南:抓包、反编译与防护绕过

0x1 前言

移动安全测试已成为渗透测试工程师必备技能,本指南详细讲解Android APP抓包、反编译、frida脱壳、单/双向认证绕过及Root隐藏等核心技术。

0x2 APP抓包技术

一、抓包基础概念

  • 常用工具:Burpsuite、mitmproxy、Fiddle、Reqable(小黄鸟)
  • 抓包方式:系统代理、AP热点抓包、透明代理
  • 核心挑战:SSL Pinning、不走系统代理等对抗技术

二、Android各版本抓包区别

  • Android<7:证书可直接导入"用户证书"
  • Android≥7:只信任"系统证书"(格式为xxxx.0)

三、Move Certificate模块安装

  1. 模块作用:将用户证书移动到系统证书
  2. 支持版本:Android 7-15
  3. 安装步骤
    • 下载地址:https://github.com/ys1231/MoveCertificate
    • 通过Magisk进行本地模块安装
    • 重启设备生效

四、Magisk面具安装

  • 推荐测试机:Google Pixel 3-4、小米8-10(安卓10-13版本)
  • 安装方法
    • GitHub下载:https://github.com/topjohnwu/Magisk
    • 通过adb安装APK文件
  • 狐狸面具:功能相同,界面差异

五、证书生成与导入

Burpsuite证书处理:

# 下载der证书转pem格式
openssl x509 -inform DER -in cacert.der -out cacert.pem

# 计算hash值
openssl x509 -inform PEM -subject_hash_old -in cacert.pem

# 重命名为hash.0格式
mv cacert.pem <hash>.0

# 推送至设备
adb push <hash>.0 /data/local/tmp/cert/

Yakit证书处理:

  • 导出证书后计算hash值
  • 重命名为xxxx.0格式
  • 通过Move Certificate模块导入系统证书

六、抓包测试配置

  1. 代理设置
    • Burpsuite监听局域网IP(如192.168.x.x:9090)
    • 设备网络配置手动代理指向监听地址
  2. 验证方法:启动APP观察流量捕获情况

0x3 真机抓包实战

一、Reqable(小黄鸟)配置

  • 官网:https://reqable.com/zh-CN/
  • 证书安装
    • 电脑端一键安装根证书
    • 手机端通过Magisk模块或手动导入系统证书
  • 连接方式:USB调试+ADB连接

二、Brook代理配置

  • 特点:小众Socks5代理,避免被检测
  • GitHub:https://github.com/txthinking/brook
  • 配置方法
    • 安装Android客户端
    • 添加Socks5代理服务
    • 设置与抓包工具相同的IP和端口

0x4 APP反编译与脱壳

一、APK查壳工具

  • 工具要求:Java环境
  • 使用方法:拖拽APK文件自动识别加壳类型

二、静态反编译

APK文件结构:

  • assets/:原生资源文件
  • res/:图片、布局等资源
  • lib/:native库文件
  • META-INF/:签名信息
  • AndroidManifest.xml:应用配置
  • classes.dex:可执行文件
  • resources.arsc:资源索引

反编译步骤:

  1. dex2jar转换
    d2j-dex2jar.sh classes.dex
    
  2. jadx-gui分析:拖入生成的JAR文件查看源码

三、BlackDex脱壳

  • GitHub:https://github.com/CodingGay/BlackDex
  • 支持版本:Android 5.0-12
  • 使用方法
    • 安装对应架构的APK
    • 选择目标应用脱壳
    • 通过adb pull导出dex文件

四、Frida动态脱壳

环境搭建:

  1. 版本选择:推荐Frida 16.1.0(高版本可能存在兼容问题)
  2. 服务端安装
    # 上传frida-server
    adb push frida-server /data/local/tmp/
    adb shell chmod 777 /data/local/tmp/frida-server
    adb shell /data/local/tmp/frida-server &
    

frida-dexdump脱壳:

# 查找目标进程
frida-ps -U

# 脱壳执行
frida-dexdump -U -p <PID>

0x5 单向证书校验绕过

一、LSPosed框架安装

  • 作用:Xposed框架的高版本实现,支持Android 8.0+
  • 安装方法
    1. 通过Magisk安装LSPosed模块
    2. 重启后安装Manager APK
    3. 激活模块并配置目标应用

二、绕过插件集合

  1. TrustMeAlready:基础绕过插件
  2. JustTrustMe:经典SSL验证绕过
  3. JustMePlush:增强版绕过工具
  4. JustTrustMePP:针对特殊校验的改进版
    • GitHub:https://github.com/JunGe-Y/JustTrustMePP

三、配置方法:

  • 安装APK插件到设备
  • 在LSPosed中激活并勾选目标应用
  • 重启应用测试抓包效果

0x6 双向证书校验绕过

一、识别特征

  • 错误信息:"400 No required SSL certificate was sent"
  • 表现:开启抓包后应用无网络连接
  • 验证:即使使用单向绕过插件仍无法抓包

二、r0capture工具使用

  • GitHub:https://github.com/r0ysue/r0capture
  • 支持版本:Android 7-14
  • 特点:无视证书校验、通杀应用层协议

环境准备:

  1. Frida版本:推荐16.1.0
  2. 应用权限:开启存储卡读写权限
  3. 脚本执行
    python r0capture.py -U -f <包名> -v
    

证书导出:

  • 导出路径:/sdcard/Download/<包名>.p12
  • 默认密码:r0ysue
  • 导出方法:adb pull或文件管理器分享

三、证书导入配置

Burpsuite导入:

  1. 用户选项→SSL证书→导入
  2. 选择P12文件,输入密码
  3. 配置通配符域名(*)

Reqable导入:

  1. 客户端证书:用于双向验证场景
  2. 注意事项:导入可能导致证书混乱,建议备份

0x7 Root检测与隐藏

一、Root检测方法

  1. 文件检查:/system/bin/su、/system/xbin/su
  2. 权限判断:/system目录可写性
  3. 命令测试:id、su命令执行
  4. 属性查看:ro.secure属性值
  5. 工具检测:RootBeer等专业工具

二、Magisk隐藏方案

  1. Zygisk激活:Magisk设置中启用
  2. 排除列表:勾选需要隐藏Root的应用
  3. 强制使用:确保排除列表生效

三、Shamiko模块

  • 作用:增强Root隐藏能力
  • 版本推荐:0.6版本(高版本可能报错)
  • 安装条件:关闭"遵守排除列表"开关
  • 配置方法
    1. 通过Magisk安装模块
    2. 重启设备
    3. 在排除列表中勾选目标应用

0x8 实战注意事项

一、环境准备要点

  1. 测试设备:推荐真机(Pixel、小米系列)
  2. 系统版本:Android 10-13为最佳测试范围
  3. 工具备份:证书和配置文件定期备份

二、常见问题解决

  1. adb连接失败:检查USB调试和网络连接
  2. 证书导入失败:确认系统证书格式和权限
  3. 抓包无数据:检查代理设置和防火墙规则
  4. 模块不生效:重启设备并检查激活状态

三、最佳实践建议

  1. 工具组合:Reqable+Burpsuite二级代理
  2. 脚本版本:保持Frida和工具版本兼容
  3. 测试流程:从简单应用到复杂应用逐步测试
  4. 问题排查:优先检查证书和Root隐藏配置

本指南涵盖了Android APP安全测试的核心技术环节,通过系统化的工具配置和实战方法,为移动安全测试提供完整解决方案。在实际测试中应根据目标应用的具体防护措施灵活调整技术方案。

Android APP安全测试全面指南:抓包、反编译与防护绕过 0x1 前言 移动安全测试已成为渗透测试工程师必备技能,本指南详细讲解Android APP抓包、反编译、frida脱壳、单/双向认证绕过及Root隐藏等核心技术。 0x2 APP抓包技术 一、抓包基础概念 常用工具 :Burpsuite、mitmproxy、Fiddle、Reqable(小黄鸟) 抓包方式 :系统代理、AP热点抓包、透明代理 核心挑战 :SSL Pinning、不走系统代理等对抗技术 二、Android各版本抓包区别 Android<7 :证书可直接导入"用户证书" Android≥7 :只信任"系统证书"(格式为xxxx.0) 三、Move Certificate模块安装 模块作用 :将用户证书移动到系统证书 支持版本 :Android 7-15 安装步骤 : 下载地址:https://github.com/ys1231/MoveCertificate 通过Magisk进行本地模块安装 重启设备生效 四、Magisk面具安装 推荐测试机 :Google Pixel 3-4、小米8-10(安卓10-13版本) 安装方法 : GitHub下载:https://github.com/topjohnwu/Magisk 通过adb安装APK文件 狐狸面具 :功能相同,界面差异 五、证书生成与导入 Burpsuite证书处理: Yakit证书处理: 导出证书后计算hash值 重命名为xxxx.0格式 通过Move Certificate模块导入系统证书 六、抓包测试配置 代理设置 : Burpsuite监听局域网IP(如192.168.x.x:9090) 设备网络配置手动代理指向监听地址 验证方法 :启动APP观察流量捕获情况 0x3 真机抓包实战 一、Reqable(小黄鸟)配置 官网 :https://reqable.com/zh-CN/ 证书安装 : 电脑端一键安装根证书 手机端通过Magisk模块或手动导入系统证书 连接方式 :USB调试+ADB连接 二、Brook代理配置 特点 :小众Socks5代理,避免被检测 GitHub :https://github.com/txthinking/brook 配置方法 : 安装Android客户端 添加Socks5代理服务 设置与抓包工具相同的IP和端口 0x4 APP反编译与脱壳 一、APK查壳工具 工具要求 :Java环境 使用方法 :拖拽APK文件自动识别加壳类型 二、静态反编译 APK文件结构: assets/ :原生资源文件 res/ :图片、布局等资源 lib/ :native库文件 META-INF/ :签名信息 AndroidManifest.xml :应用配置 classes.dex :可执行文件 resources.arsc :资源索引 反编译步骤: dex2jar转换 : jadx-gui分析 :拖入生成的JAR文件查看源码 三、BlackDex脱壳 GitHub :https://github.com/CodingGay/BlackDex 支持版本 :Android 5.0-12 使用方法 : 安装对应架构的APK 选择目标应用脱壳 通过adb pull导出dex文件 四、Frida动态脱壳 环境搭建: 版本选择 :推荐Frida 16.1.0(高版本可能存在兼容问题) 服务端安装 : frida-dexdump脱壳: 0x5 单向证书校验绕过 一、LSPosed框架安装 作用 :Xposed框架的高版本实现,支持Android 8.0+ 安装方法 : 通过Magisk安装LSPosed模块 重启后安装Manager APK 激活模块并配置目标应用 二、绕过插件集合 TrustMeAlready :基础绕过插件 JustTrustMe :经典SSL验证绕过 JustMePlush :增强版绕过工具 JustTrustMePP :针对特殊校验的改进版 GitHub:https://github.com/JunGe-Y/JustTrustMePP 三、配置方法: 安装APK插件到设备 在LSPosed中激活并勾选目标应用 重启应用测试抓包效果 0x6 双向证书校验绕过 一、识别特征 错误信息 :"400 No required SSL certificate was sent" 表现 :开启抓包后应用无网络连接 验证 :即使使用单向绕过插件仍无法抓包 二、r0capture工具使用 GitHub :https://github.com/r0ysue/r0capture 支持版本 :Android 7-14 特点 :无视证书校验、通杀应用层协议 环境准备: Frida版本 :推荐16.1.0 应用权限 :开启存储卡读写权限 脚本执行 : 证书导出: 导出路径: /sdcard/Download/<包名>.p12 默认密码: r0ysue 导出方法:adb pull或文件管理器分享 三、证书导入配置 Burpsuite导入: 用户选项→SSL证书→导入 选择P12文件,输入密码 配置通配符域名(* ) Reqable导入: 客户端证书 :用于双向验证场景 注意事项 :导入可能导致证书混乱,建议备份 0x7 Root检测与隐藏 一、Root检测方法 文件检查 :/system/bin/su、/system/xbin/su 权限判断 :/system目录可写性 命令测试 :id、su命令执行 属性查看 :ro.secure属性值 工具检测 :RootBeer等专业工具 二、Magisk隐藏方案 Zygisk激活 :Magisk设置中启用 排除列表 :勾选需要隐藏Root的应用 强制使用 :确保排除列表生效 三、Shamiko模块 作用 :增强Root隐藏能力 版本推荐 :0.6版本(高版本可能报错) 安装条件 :关闭"遵守排除列表"开关 配置方法 : 通过Magisk安装模块 重启设备 在排除列表中勾选目标应用 0x8 实战注意事项 一、环境准备要点 测试设备 :推荐真机(Pixel、小米系列) 系统版本 :Android 10-13为最佳测试范围 工具备份 :证书和配置文件定期备份 二、常见问题解决 adb连接失败 :检查USB调试和网络连接 证书导入失败 :确认系统证书格式和权限 抓包无数据 :检查代理设置和防火墙规则 模块不生效 :重启设备并检查激活状态 三、最佳实践建议 工具组合 :Reqable+Burpsuite二级代理 脚本版本 :保持Frida和工具版本兼容 测试流程 :从简单应用到复杂应用逐步测试 问题排查 :优先检查证书和Root隐藏配置 本指南涵盖了Android APP安全测试的核心技术环节,通过系统化的工具配置和实战方法,为移动安全测试提供完整解决方案。在实际测试中应根据目标应用的具体防护措施灵活调整技术方案。