逍遥模拟器+Burp Suite抓包避坑实录:从证书转换到ADB推送的完整操作流
2026/6/10 12:22:21 网站建设 项目流程

逍遥模拟器与Burp Suite抓包实战指南:从证书处理到系统级安装全解析

在移动应用安全测试领域,HTTPS流量抓包是基础却关键的技能。随着Android系统安全机制的不断升级,传统的用户证书安装方式在7.0及以上版本已不再适用。本文将深入剖析系统级证书安装的全流程,特别针对逍遥模拟器这一常用Android虚拟化环境,提供从证书转换到ADB推送的完整解决方案。

1. 环境准备与基础配置

1.1 工具链安装与验证

完整的抓包环境需要以下核心组件协同工作:

  • Burp Suite:行业标准的Web代理工具,社区版即可满足基础抓包需求
  • 逍遥模拟器:基于Android 7.1内核的轻量级模拟器,支持完整的root权限
  • ADB工具:Android Debug Bridge,版本需≥1.0.41
  • OpenSSL:证书处理的核心工具,推荐1.1.1及以上版本

验证环境是否就绪:

# 检查ADB版本 adb --version # 验证OpenSSL可用性 openssl version

注意:若使用Windows系统,建议将adb和openssl所在目录添加到PATH环境变量,避免每次都需要输入完整路径。

1.2 代理网络配置

逍遥模拟器的网络配置需要特殊处理:

  1. 在Burp Suite中启用监听接口,默认端口通常为8080
  2. 模拟器内进入Wi-Fi设置,长按当前网络选择"修改网络"
  3. 设置代理为"手动",主机名填写宿主机的IP(非127.0.0.1)
  4. 端口与Burp监听端口保持一致

常见连接问题排查表:

现象可能原因解决方案
无法访问互联网代理设置错误检查宿主防火墙和IP地址
部分应用无流量应用禁用代理尝试使用VPN模式或透明代理
连接时断时续模拟器网络模块异常重启模拟器或切换网络模式

2. 证书处理与格式转换

2.1 证书获取与初步处理

通过模拟器浏览器访问http://burp下载CA证书时,可能会遇到以下变体情况:

  • 证书默认保存位置可能为/Downloads//sdcard/Download/
  • 部分模拟器需要手动授予浏览器存储权限
  • 下载的文件名可能是cacert.derPortSwiggerCA.der

证书格式转换的核心命令解析:

# DER转PEM格式(关键参数说明) openssl x509 -inform der -in cacert.der -out burp.pem

-inform der指定输入格式,-out默认输出PEM格式

2.2 哈希值生成与命名规则

Android系统证书的特殊命名机制:

# 获取旧版subject hash(兼容性更好) openssl x509 -subject_hash_old -in burp.pem

输出示例:

9a5ba575 -----BEGIN CERTIFICATE----- ...

此时需要:

  1. 将PEM证书重命名为[hash值].0(如9a5ba575.0
  2. 数字后缀.0用于区分相同哈希的不同证书
  3. 必须保留原始PEM内容,仅修改文件名

证书存储路径差异对比:

类型路径生效范围系统要求
用户证书/data/misc/user/0/cacerts-added/仅当前用户无root需求
系统证书/system/etc/security/cacerts/全局生效需要root权限

3. 模拟器连接与系统部署

3.1 ADB特殊端口连接

逍遥模拟器的ADB连接需要特别注意:

  1. 查找模拟器安装目录下的MemuHyperv VMs文件夹
  2. 确认模拟器实例对应的端口号(默认为21503)
  3. 建立连接:
adb connect 127.0.0.1:21503 adb root adb remount

关键提示:adb remount可能在某些模拟器版本中需要先执行adb disable-verity

3.2 证书推送与权限设置

完整的系统证书部署流程:

# 推送证书到系统目录 adb push 9a5ba575.0 /system/etc/security/cacerts/ # 设置正确的文件权限 adb shell "chmod 644 /system/etc/security/cacerts/9a5ba575.0" # 验证证书列表 adb shell "ls -la /system/etc/security/cacerts/"

权限设置常见问题:

  • 若推送失败,检查/system分区是否可写
  • 部分模拟器需要先执行adb shell mount -o rw,remount /system
  • 证书文件权限必须为644(rw-r--r--)

4. 验证与高级调试技巧

4.1 抓包验证方法

确认证书生效的多维度检查:

  1. 系统层面验证

    • 进入设置 → 安全 → 信任的凭证 → 系统
    • 应能看到"PortSwigger CA"条目
  2. 网络请求验证

    • 访问HTTPS测试站点(如https://badssl.com)
    • 检查Burp中是否能看到明文流量
  3. ADB日志检查

    adb logcat | grep -i cert

4.2 常见故障排除

证书安装后的典型问题解决方案:

场景1:应用仍提示SSL错误

  • 可能原因:应用启用了证书固定(Certificate Pinning)
  • 解决方案:
    # 使用objection框架绕过 objection -g com.target.app explore --startup-command "android sslpinning disable"

场景2:系统证书列表不更新

  • 强制刷新证书缓存:
    adb shell "settings put global http_proxy 0.0.0.0:0" adb shell "settings delete global http_proxy"

场景3:特定应用无网络流量

  • 检查应用是否使用自定义网络栈
  • 尝试在模拟器设置中启用"透明代理"选项

对于需要深度调试的情况,可以考虑在Burp中启用Support invisible proxying选项,并配合Wireshark进行网络层分析。在实际测试项目中,遇到过某金融应用即使完成系统证书安装仍无法抓包的情况,最终发现其使用了原生代码实现的证书校验,需要通过Frida进行hook才能绕过。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询