安卓渗透测试设备完整配置指南:从Root到证书绕过

本文详细介绍了如何从零开始配置安卓手机进行渗透测试,包括解锁Bootloader、使用Magisk获取Root权限、安装Burp证书、配置Frida服务器以及通过Runtime Mobile Security绕过证书绑定等完整技术流程。

从开始到完成:配置安卓手机进行渗透测试

背景

除非持续进行移动应用渗透测试,否则方法论很容易过时。每个新版本的安卓都会带来需要绕过的额外安全功能,使三年前使用的测试设备配置流程变得过时。

本文记录了在Android 12(2022年10月)上经过验证的有效流程,使用工厂未Root的Pixel 4A设备,逐步配置渗透测试环境,包括应对越来越普遍的证书绑定绕过。

操作步骤概述

  1. 启用开发者模式、解锁Bootloader和USB调试
  2. 解锁Bootloader
  3. 使用Magisk修改工厂启动镜像
  4. 刷入新镜像到Bootloader,获取Root权限
  5. 转换Burp证书为Android所需格式
  6. 使用Magisk模块模板安装Burp证书为受信任CA
  7. 在手机上安装和运行Frida服务器
  8. 通过Runtime Mobile Security前端连接Frida服务器代理
  9. 在RMS挂钩进程中运行目标应用
  10. 使用自定义RMS插件绕过证书绑定

Root手机

所需工具

  • Android Debug Bridge (adb)
    1
    
    # apt install adb
    
  • fastboot
    1
    
    # apt install fastboot
    

解锁Bootloader

  1. 启用开发者模式:设置 → 关于手机 → 点击"版本号"7次
  2. 启用USB调试和OEM解锁:设置 → 系统 → 高级 → 开发者选项
  3. 测试adb连接
    1
    
    $ adb devices -l
    
  4. 重启到fastboot模式
    1
    
    $ adb reboot bootloader
    
  5. 解锁Bootloader
    1
    
    $ fastboot flashing unlock
    

安装Magisk应用

从GitHub下载最新Magisk APK并使用adb安装:

1
$ adb install Magisk-v25.2.apk

使用Magisk修改启动镜像

  1. 下载匹配的设备镜像
  2. 提取boot.img文件
  3. 推送到手机:
    1
    
    $ adb push boot.img /storage/self/primary/Download
    
  4. 使用Magisk应用修补镜像文件
  5. 拉取修补后的镜像:
    1
    
    $ adb pull /storage/self/primary/Download/magisk_patched-*.img
    
  6. 刷入修补后的镜像:
    1
    
    $ fastboot flash boot magisk_patched-*.img
    

安装Burp证书

导出和转换证书

  1. 从Burp导出证书:
    1
    
    $ curl http://burp/cert -x localhost:8080 > /tmp/cacert.der
    
  2. 转换为PEM格式:
    1
    
    $ openssl x509 -inform DER -in /tmp/cacert.der -out /tmp/cacert.pem
    
  3. 重命名为哈希格式:
    1
    2
    
    $ HASH=$(openssl x509 -inform PEM -subject_hash_old -in /tmp/cacert.pem | head -1)
    $ mv /tmp/cacert.pem /tmp/$HASH.0
    

使用MMT创建模块

  1. 克隆MMT-Extended仓库:
    1
    
    $ git clone https://github.com/Zackptg5/MMT-Extended
    
  2. 创建目录结构并复制证书
  3. 修改customize.sh脚本
  4. 打包并推送到手机:
    1
    2
    
    $ zip -9 -r MMT.zip .
    $ adb push MMT.zip /storage/self/primary/Download/
    

在Magisk中安装模块

  1. 启用Zygisk
  2. 从存储安装模块
  3. 重启手机验证证书安装

通过USB代理流量

建立反向代理:

1
$ adb reverse tcp:8080 tcp:8080

在手机网络设置中配置代理服务器为localhost:8080

绕过证书绑定

所需工具

  • Frida工具pip install frida-tools
  • nodeJS & npm
  • Runtime Mobile Security (RMS)npm install -g rms-runtime-mobile-security

安装Frida服务器

  1. 下载匹配版本的Frida服务器
  2. 推送到手机:
    1
    
    $ adb push frida-server-*.android-arm64 /data/local/tmp
    
  3. 设置权限并运行:
    1
    2
    
    $ chmod 777 ./frida-server-*
    $ ./frida-server-* &
    

使用RMS

  1. 启动RMS web界面:
    1
    
    $ rms
    
  2. 访问http://localhost:5000
  3. 选择Android操作系统
  4. 设置包名(如com.facebook.katana)
  5. 选择spawn方式和绕过脚本(ssl_pinning_multi_bypass.js)
  6. 启动RMS开始拦截流量

结语

本文收集了配置安卓设备进行渗透测试的完整流程,随着Android系统的持续更新,这些步骤最终会过时,但在2022年10月时已验证有效。感谢Lance Pendergrass的技术分享和Carrie Roberts的指导启发。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计