技术分享!安卓APP抓包解决方案经验总结,黑客技术零基础入门到精通教程建议收藏!
前言
这里简单记录一下相关抓包工具证书的安装
burp证书安装
安装证书到移动设备
导出证书
openssl x509 -inform DER -in cacert.der -out cacert.pem 转换格式
openssl x509 -inform PEM -subject_hash_old -in cacert.pem 计算证书hash值
把bp.pem改成727ceb75.0
adb上传至设备
这里以雷电模拟器为例
使用mt管理器把证书从sdcard文件夹下转移到/system/etc/security/cacerts下
添加读写权限
重启后即可
charles证书安装
charles-proxy-4.6.4-win64.msi
链接: https://pan.baidu.com/s/1ZNm71DIZNbjXN5eXwv6TSA?pwd=m79v 提取码: m79v
charles激活码计算器:https://www.zzzmode.com/mytools/charles/
安装证书到移动设备
保存根证书
可以保存为pem格式或者cer格式
接着后续可以参考前面的burp证书安装步骤
filder证书安装
导出证书
之后参考burp证书的操作即可,包括:使用openssl计算格式,转换hash,重命名,上传到模拟器,移动到系统证书目录
补充说明
1.实际上,像是bp,花瓶以及fd这些抓包工具,证书的安装除了导出证书再上传的方式外,还有访问代理服务器下载的方式,网上有很多教程,本文重点在总结抓包思路,就不一一赘述了
2.安装证书的目的是拦截和分析HTTPS流量。而从Android7(API24)开始,系统不再信任用户级别的CA证书,只信任系统级别的证书。所以如果抓包安卓7以上系统的设备,安装证书的时候还要将证书移动到系统级别的证书目录
例如前面burp证书导入雷电9(android9)模拟器时,我们把证书从sdcard文件夹下移动到/system/etc/security/cacerts目录中。而/system/etc/security/cacerts目录正是用来存放系统级别的CA(证书颁发机构)证书的
3.对于装了高版本安卓系统的真机,可能无法通过命令行或者mt管理器将证书移动到/system/etc/security/cacerts目录(我这里试过,发现安卓10不行)。此时可以通过Magisk中的Move Certificates模块将用户证书转化为系统证书。
Move_Certificates-v1.9.zip
链接: https://pan.baidu.com/s/1nqZxuptJIftppEQdPOSl_Q?pwd=5qd5 提取码: 5qd5
然后在magisk的模块栏中选择从本地安装
成功后就会出现Move_Certificates模块
进入设置,找到安全,然后进入凭据相关的一栏,选择从存储中安装
然后在用户中就可以看到该证书
重启后它就移动到系统证书下了
抓包
burpsuite直接抓包
条件:
- pc和移动端设备能相互ping通
- bp证书导入移动端设备
- 无检测
下面以雷电模拟器为例:
burp设置代理
雷电模拟器配置wifi代理
随便选一个app抓登录的包
burpsuite+postern抓包
条件:
- pc和移动端设备互通
- bp证书导入移动端设备
- 无vpn流量检测
如果app做了系统代理检测(wifi),而没做vpn代理检测的话,我们可以在Android等设备上启动一个VPN服务,让APP 的所有流量都先经过VPN服务,再抓取APP的网络数据包
而postern就是安卓的vpn全局代理工具
https://pan.baidu.com/s/1ChA4svJIshOlAMcY0efZFA?pwd=zkea
postern设置代理服务器(服务器地址和端口号与bp的监听地址一致)
点击保存
设置代理规则
选择刚添加的burp代理组
点击保存
点击打开vpn(若显示关闭vpn,则表明已经开启了vpn)
再次打开app,发现抓包成功
burpsuite结合proxifer(限于模拟器)
条件:
- 模拟器
- 模拟器导入burpsuite证书
Proxifier是一款强大的网络工具,允许用户将不支持代理的应用程序通过代理服务器进行连接。我们可以使用proxifer代理模拟器进程的流量
链接: https://pan.baidu.com/s/1caU29yXbAMKYn5HRQ52Qvw?pwd=81u1 提取码: 81u1
proxifer设置代理服务器(服务器地址和端口号与BurpSuite的监听地址一致)
选择HTTP/HTTPS即可
设置代理规则
目标程序设置为Ld9BoxHeadless.exe(LdBoxHeadless.exe负责模拟器的运行,雷电9的则是Ld9BoxHeadless.exe)
将代理规则优先级提前
burp配置代理设置,跟proxifer的符合
即可抓包
adb联合burpsuite
条件:设备安装了burpsuite证书
有时候,移动设备和测试主机不处于同一网段,且没有设置路由规则,或者所在的无线局域网设置了ap隔离,导致两设备无法互通。对于这种场景,可以采用adb端口转发的方式联合burp抓包
settings put global http_proxy 127.0.0.1:6789
adb reverse tcp:6789 tcp:7777
然后配置burp代理
成功抓包
adb reverse --remove tcp:6789
settings put global http_proxy :0
补充:安卓高版本进行上述操作后连接wifi会出现一个x,这是由于原生安卓系统验证wifi是否有效,是去访问谷歌的服务器
运行以下命令:adb shell settings put global captive_portal_https_url https://connect.rom.miui.com/generate_204,(改为访问小米服务器)
开启飞行模式,再关闭飞行模式即可解决!
postern+charles+burpsuite
postern设置
添加代理服务器
配置好信息后下拉点击保存
添加代理规则
配置好信息后点击保存
然后打开vpn即可
charles设置
设置SSL代理
代理设置
然后启动SSL代理,就可以抓包了
联动burpsuite
charles在之前的基础上设置外部代理
网络安全工程师(白帽子)企业级学习路线
第一阶段:安全基础(入门)
第二阶段:Web渗透(初级网安工程师)
第三阶段:进阶部分(中级网络安全工程师)
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资源分享
