如何使用Burp和Magisk在Android 7.0监测HTTPS流量

HTTPS拦截的基本方法

在Android平台上拦截HTTPS流量其实并不复杂,它只需要几步便可以实现:

1.将Burp设置为我们的代理;

2.访问http://burp;

3.将Burp证书以用户证书的形式安装;

4.开始拦截流量

完成上述步骤之后,你就可以查看到所有从目标用户浏览器发送的HTTPS流量了。关于这部分内容,感兴趣的同学可以参考Portswigger的官方文档【参考文档】。

在此之前,上述的这种方法甚至还适用于桌面端应用程序的流量拦截,因为应用程序默认会信任所有安装的用户证书。如果你想防止应用程序的流量被拦截的话,你可以尝试使用证书绑定。证书绑定意味着每一个SSL通信连接的证书(服务器端)都需要跟本地存储的证书版本进行比对。如果服务器能够提供正确的身份凭证,连接才能够成功建立。这是一种非常好的安全功能,但是在开发人员的实现过程中却会存在各种各样的安全问题。

进入Android Nougat(Android 7)

另一种方法就是将用户证书添加到系统商店之中。系统商店位于/system/etc/security/cacerts路径下,其中包含了与已安装root证书相关的文件。

最简单的解决方案就是将用户证书文件(位于目录/data/misc/user/0/cacerts-added内)直接拷贝到这个文件夹内。如果系统是以r/w加载的话,我们就需要重新加载/system分区,然后使用一些root检测算法来检测修改是否成功。

使用Magisk

该模块的实现逻辑如下:

1.寻找已安装的用户证书;

2.将它们添加到/system/etc/security/cacerts目录中;

安装完成之后,Magisk模块的内容将会被加载到/magisk/trustusercerts/。这个文件夹中包含有多种文件,但最重要的就是system目录。这个目录会自动跟真实的/system目录合并,但不会对/system分区进行修改和操作。这样一来,所有位于/magisk/trusteusercerts/etc/security/目录下的证书最终都会出现在/system/etc/security目录中。

模块的使用方法也非常简单,使用步骤如下所示:

1.安装模块;

2.通过常规方法安装证书;

3.重启设备;

安装完成之后,证书将会出现在设备的系统信任商店之中,并且所有的应用程序默认都会信任该证书。

总结

当然了,如果应用程序实现了SSL绑定的话,那你还是没办法拦截到HTTPS流量,但是这个Magisk模块可以让Android Nougat应用按照之前Android平台的应用程序一样去运行。在提升该模块功能方面(在Magisk层禁用SSL绑定),如果你有任何意见或者建议的话,可以直接在本项目的GitHub主页上留言。

* 参考来源:nviso,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171230B0I2H000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券