移动安卓App+BurpSuite的渗透测试
从Android 7.0及以上版本开始,安卓系统更改了信任用户安装证书的默认行为,用户安装的证书都是用户证书,因此不管是filddle还是burp,都是把他们的根证书安装到了用户证书,而有部分移动app默认只信任系统预装的CA证书(或者说是APP开发框架默认只信任系统CA证书,多数开发一般不关心这些配置,也不会去更改他),不会信任用户安装的CA证书,因此导致我们手动生成的burpsuite证书导入手机后,已经不能拦截App的请求,同时,通过Burp代理访问https网站,系统会提示"该证书并非来自可信的授权中心"。
所以一般推荐安卓7.0及以下为移动App渗透测试环境,如果是安卓7.0以上版本,可尝试如下解决办法
解决方法:
将burp的证书到处或下载,后缀改为.cer
安卓系统CA证书目录:/system/etc/security/cacerts/
其中的每个证书的命名规则如下:
文件名是一个Hash值,而后缀是一个数字。后缀名的数字是为了防止文件名冲突的,比如如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1
操作步骤:
将Burp导出的证书用下面的命令计算出 Hash 值,我这里使用Linux下的命令
ubuntu@VM-16-11-ubuntu:~$ openssl x509 -inform der -subject_hash_old -in ./burpca.cer -noout
得到值:9a5ba575
将其按上面的规则改名9a5ba575.0,并复制到手机的系统证书目录。
此时在手机的 设置->安全->加密与凭据->信任的凭据 应该能看到你新加入的证书,查看已经安装证书,发现burp的证书已经被安装到系统证书,将其启用即可顺利抓包
参考:http://www.nxadmin.com/tools/1733.html