APP中间人抓包对抗
字数 1355 2025-08-06 21:48:45
APP中间人抓包对抗技术全面指南
0x01 本地代理抓包技术
1. HTTP/HTTPS代理抓包
操作步骤:
- 查看PC机本地IP地址
- 在Burp Suite中设置监听IP和对应端口
- 导出Burp Suite证书
- 使用adb push命令将证书发送到Android系统sdcard目录
- 在Android系统中安装证书:
- 打开设置→安全功能
- 选择"从SD卡安装"
- 选择推送的证书文件
- 命名并完成安装
- 配置Android网络代理:
- 选择当前连接的网络
- 修改网络设置
- 在高级选项下手动输入代理地址(PC机IP)和端口
2. 证书导入系统区域(针对Android 7+)
操作流程:
- 检查当前证书权限状态(用户级/系统级)
- 证书格式转换:
openssl x509 -inform DER -in burp.cer -out burp.pem - 获取证书哈希值:
openssl x509 -inform PEM -subject_hash_old -in burp.pem | head -1 - 重命名证书文件(使用哈希值):
mv burp.pem <hash_value>.0
两种导入系统区域的方法:
方法一:
- 启动adb root权限:
adb root - 重置可写模式:
adb remount - 推送证书到系统目录:
adb push <cert_file> /system/etc/security/cacerts/
方法二:
- 推送证书到sdcard:
adb push <cert_file> /sdcard/ - 进入adb shell:
adb shell - 重新装载文件系统:
mount -o rw,remount /system - 移动证书到系统目录:
mv <cert_file> /system/etc/security/cacerts/
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目标应用:
objection -g com.xxxx.xxx explore - 执行SSL Pinning禁用命令:
android sslpinning disable
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的中间人防护措施。