APP中间人抓包对抗
字数 1355 2025-08-06 21:48:45

APP中间人抓包对抗技术全面指南

0x01 本地代理抓包技术

1. HTTP/HTTPS代理抓包

操作步骤:

  1. 查看PC机本地IP地址
  2. 在Burp Suite中设置监听IP和对应端口
  3. 导出Burp Suite证书
  4. 使用adb push命令将证书发送到Android系统sdcard目录
  5. 在Android系统中安装证书:
    • 打开设置→安全功能
    • 选择"从SD卡安装"
    • 选择推送的证书文件
    • 命名并完成安装
  6. 配置Android网络代理:
    • 选择当前连接的网络
    • 修改网络设置
    • 在高级选项下手动输入代理地址(PC机IP)和端口

2. 证书导入系统区域(针对Android 7+)

操作流程:

  1. 检查当前证书权限状态(用户级/系统级)
  2. 证书格式转换:
    openssl x509 -inform DER -in burp.cer -out burp.pem
    
  3. 获取证书哈希值:
    openssl x509 -inform PEM -subject_hash_old -in burp.pem | head -1
    
  4. 重命名证书文件(使用哈希值):
    mv burp.pem <hash_value>.0
    

两种导入系统区域的方法:

方法一:

  1. 启动adb root权限:
    adb root
    
  2. 重置可写模式:
    adb remount
    
  3. 推送证书到系统目录:
    adb push <cert_file> /system/etc/security/cacerts/
    

方法二:

  1. 推送证书到sdcard:
    adb push <cert_file> /sdcard/
    
  2. 进入adb shell:
    adb shell
    
  3. 重新装载文件系统:
    mount -o rw,remount /system
    
  4. 移动证书到系统目录:
    mv <cert_file> /system/etc/security/cacerts/
    

0x02 VPN实现SOCKS5代理

配置步骤:

  1. Charles配置:

    • 打开Proxy Settings
    • 配置SOCKS Proxy
    • 设置抓取目标(host和port都为*)
    • 导出Charles证书并在Android系统安装
  2. Android端配置:

    • 安装Postern工具
    • 配置代理(与Charles相同的IP和端口,选择SOCKS5类型)
    • 配置规则:匹配所有地址通过代理连接
    • 打开代理,在Charles中允许连接

0x03 SSL Pinning绕过技术

操作流程:

  1. 识别SSL Pinning:

    • 使用Burp Suite抓包时出现大量SSL连接错误提示
  2. 使用Frida框架绕过:

    • 在Android端启动frida-server
    • 使用objection工具hook目标应用:
      objection -g com.xxxx.xxx explore
      
    • 执行SSL Pinning禁用命令:
      android sslpinning disable
      

0x04 服务端双向认证绕过

操作步骤:

  1. 识别双向认证:

    • 使用Burp Suite抓包时出现特定错误提示
  2. 提取客户端证书:

    • 解压APK文件
    • 在assets目录下查找.p12或.pfx证书文件
    • 使用JEB反编译APK,搜索.p12或PKCS12关键字
  3. 获取证书密码:

    • 分析反编译代码中的证书密码获取逻辑
    • 定位到native方法(通常在so库中)
    • 使用IDA分析so库,查找密码明文
  4. 配置抓包工具:

    • 在Burp Suite中导入找到的客户端证书(.p12/.pfx)和密码
    • 完成配置后即可正常抓包

关键注意事项

  1. Android版本适配:

    • Android 7+需要系统级证书
    • 部分厂商ROM可能有特殊限制
  2. 工具选择:

    • Burp Suite适合常规抓包
    • Charles更适合SOCKS5代理场景
    • Frida/Objection用于高级绕过
  3. 证书处理:

    • 注意证书格式转换
    • 确保系统证书权限正确
    • 双向认证需要客户端和服务端证书
  4. Root权限:

    • 系统证书安装通常需要root
    • 部分操作需要remount系统分区
  5. 应用防护检测:

    • 部分应用会检测代理/VPN使用
    • 可能需要结合其他技术如hook或模拟器隐藏

本指南涵盖了从基础到高级的APP抓包技术,根据实际场景选择合适的方法组合使用,可应对大多数APP的中间人防护措施。

APP中间人抓包对抗技术全面指南 0x01 本地代理抓包技术 1. HTTP/HTTPS代理抓包 操作步骤: 查看PC机本地IP地址 在Burp Suite中设置监听IP和对应端口 导出Burp Suite证书 使用adb push命令将证书发送到Android系统sdcard目录 在Android系统中安装证书: 打开设置→安全功能 选择"从SD卡安装" 选择推送的证书文件 命名并完成安装 配置Android网络代理: 选择当前连接的网络 修改网络设置 在高级选项下手动输入代理地址(PC机IP)和端口 2. 证书导入系统区域(针对Android 7+) 操作流程: 检查当前证书权限状态(用户级/系统级) 证书格式转换: 获取证书哈希值: 重命名证书文件(使用哈希值): 两种导入系统区域的方法: 方法一: 启动adb root权限: 重置可写模式: 推送证书到系统目录: 方法二: 推送证书到sdcard: 进入adb shell: 重新装载文件系统: 移动证书到系统目录: 0x02 VPN实现SOCKS5代理 配置步骤: Charles配置: 打开Proxy Settings 配置SOCKS Proxy 设置抓取目标(host和port都为* ) 导出Charles证书并在Android系统安装 Android端配置: 安装Postern工具 配置代理(与Charles相同的IP和端口,选择SOCKS5类型) 配置规则:匹配所有地址通过代理连接 打开代理,在Charles中允许连接 0x03 SSL Pinning绕过技术 操作流程: 识别SSL Pinning: 使用Burp Suite抓包时出现大量SSL连接错误提示 使用Frida框架绕过: 在Android端启动frida-server 使用objection工具hook目标应用: 执行SSL Pinning禁用命令: 0x04 服务端双向认证绕过 操作步骤: 识别双向认证: 使用Burp Suite抓包时出现特定错误提示 提取客户端证书: 解压APK文件 在assets目录下查找.p12或.pfx证书文件 使用JEB反编译APK,搜索.p12或PKCS12关键字 获取证书密码: 分析反编译代码中的证书密码获取逻辑 定位到native方法(通常在so库中) 使用IDA分析so库,查找密码明文 配置抓包工具: 在Burp Suite中导入找到的客户端证书(.p12/.pfx)和密码 完成配置后即可正常抓包 关键注意事项 Android版本适配: Android 7+需要系统级证书 部分厂商ROM可能有特殊限制 工具选择: Burp Suite适合常规抓包 Charles更适合SOCKS5代理场景 Frida/Objection用于高级绕过 证书处理: 注意证书格式转换 确保系统证书权限正确 双向认证需要客户端和服务端证书 Root权限: 系统证书安装通常需要root 部分操作需要remount系统分区 应用防护检测: 部分应用会检测代理/VPN使用 可能需要结合其他技术如hook或模拟器隐藏 本指南涵盖了从基础到高级的APP抓包技术,根据实际场景选择合适的方法组合使用,可应对大多数APP的中间人防护措施。