首页
社区
课程
招聘
移动安全抓包笔记
发表于: 2021-4-6 20:17 15626

移动安全抓包笔记

2021-4-6 20:17
15626

首选抓包工具是非常多的,抓包的手段也是非常多,在本文中主要是结合实际的使用场景和工作需要,选择较为常见的抓包方式和工具。同时,现在开发者的安全意识也是在逐步加强,对流量的保护上也是在下苦功夫,因此针对不同的保护选择不同的绕过方式。本文大致分为以下两个部分:
1、抓包工具的使用和环境的搭建
2、常见的绕过解决疑难杂症

参考:
1、e8aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6^5P5W2)9J5k6h3q4D9K9i4W2#2L8W2)9J5k6h3y4G2L8g2)9J5c8Y4c8Q4x3V1j5$3y4e0f1I4
就上面的参考文章中已经提到很多工具抓包,我这里就直接重复讲解,直接进入正题,我在抓包过程中经常使用的工具。

这个抓包工具相信都知道,可想而知其功能的强大,并且该工具的社区也是非常活跃,WEB必备工具之一,更新频繁。
首选我们来介绍环境的搭建
我喜欢使用Linux系统来搭建我的分析环境,当然其他环境下搭建是没有任何问题的。
下载地址:
771K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8%4N6F1i4K6u0W2y4e0u0H3L8$3A6A6k6g2)9J5k6h3y4F1i4K6u0r3g2r3!0G2L8s2y4Q4x3V1k6z5k6i4c8%4L8%4u0C8i4K6g2X3b7h3&6S2L8s2W2*7k6i4u0Q4x3V1j5`.
至于版本可以根据自己的喜好来选择,尽可能的选择比较新的版本
当然该项目是基于Java开发,那我们肯定需要使用到Java环境,首选对于我们开发人员来讲,可以直接使用JDK就可,笔者使用的JDK11版本
图片描述
注:比较新的BP是需要JDK8以上,不太支持JDK8
使用比较新的JDK版本还是有很多好处的,比如可以兼容JEB pro工具
如下图是笔者使用版本
简单的修改一下启动脚本就可以直接运行起来,非常方便
图片描述
具体的注册方式在这里就不过多的讲解。接下来启动工具开始准备抓包环境

图片描述
1、首选在Options中选择配置我们的代理
2、设置端口
3、配置代理服务的IP
其中重要的是配置我们代理服务器的IP
如果我们是本地抓包,那我们可以直接配置本地地址就可以,浏览器代理上这个IP便可以实现抓包。
如果是借助路由器抓包,也就是手机或者其他设备抓包,只要处于同一局域网中,我们配置的IP就应该是本机的IP地址,然后被抓包的设备代理上就可以实现抓包。
大致的结构图如下:
图片描述
但是目前可能我们只讨论可以使用WIFI来进行上网服务的应用和设备,如果应用的流量是通过4G、网线上网那我们使用BP就不是这样来进行抓包,BP抓包的数据流量是位于应用层,如果是使用4G上网或者网线可能就需要借助接下来会介绍的TCPdump、wireshark等工具对网卡进行抓包分析。
图片描述
随着HTTP进入到HTTPS时代,上面这样简单的配置是没有办法实现抓包的。
我们用一张图片来解释HTTP->HTTPS的差异
图片描述
HTTPS的实现就是在传输过程中添加了一个SSL/TLS环节,使得我们的传输的流量是处于加密状态。
那是如何加密的呢?当然这里不是我们深入研究的主题
实际上就是使用RSA、DES等加密方式,在网络建立之前会使用秘钥协商来商定对称加密的秘钥,通常秘钥协商是会使用RSA算法,或者其他非对称的加密算法来实现(比如蓝牙中的秘钥协商就不完全采用RSA),协商完成后我们就可以使用对称加密来进行加密我们的流量。(具体的原理这里就不展开分析,后面开文章进行单独讲解)
图片描述
既然如此就引入了CA证书的概念
证书的作用验证我们客户端和服务端,但是在很多开发者这里就不会很好的使用这样的机制,因此出现安全问题。相关的演变或者难易变化在第二节中讲解。
图片描述

我们可以在配置好代理后直接访问aa3K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0#2M7Y4m8Q4x3X3g2U0L8W2!0q4y4g2!0n7x3q4!0n7x3g2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4y4#2)9&6b7W2!0n7y4q4!0q4y4W2)9^5c8g2!0m8y4g2!0q4y4q4!0n7z5q4)9^5b7W2!0q4z5q4!0n7c8q4!0n7c8q4!0q4z5q4!0m8c8W2)9^5x3g2!0q4y4q4!0n7z5g2!0m8y4W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2!0n7z5g2!0n7y4W2!0q4z5g2)9^5x3q4)9^5z5g2!0q4y4W2)9^5b7W2!0m8z5g2!0q4y4g2!0m8c8g2)9^5z5g2!0q4z5q4!0m8x3#2)9^5y4g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4W2!0m8x3q4!0n7y4#2!0q4y4g2!0m8c8g2)9^5z5g2!0q4z5q4!0m8x3#2)9^5y4g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4z5q4!0m8c8W2)9^5x3g2!0q4y4q4!0n7z5g2!0m8y4W2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4#2)9&6y4q4!0m8z5q4!0q4y4W2)9^5z5q4!0n7y4#2!0q4z5q4!0m8c8W2)9^5x3g2!0q4y4q4!0n7z5g2!0m8y4W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2!0m8y4W2)9^5x3W2!0q4y4W2)9&6c8g2)9&6b7#2!0q4y4W2!0n7x3W2!0m8x3g2!0q4y4W2)9&6b7#2)9^5z5g2!0q4y4#2!0n7x3#2!0n7b7W2!0q4y4#2!0n7b7W2)9&6c8W2!0q4z5q4!0m8c8W2)9^5x3g2!0q4y4q4!0n7z5g2!0m8y4W2!0q4y4W2!0m8x3q4!0m8x3g2!0q4z5g2!0m8b7g2)9^5b7#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4W2)9^5x3#2)9^5y4g2!0q4y4g2)9^5y4W2!0n7y4g2!0q4y4q4!0n7z5q4)9^5b7W2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2)9^5c8W2!0m8c8W2!0q4y4q4!0n7b7W2!0m8y4g2!0q4y4g2!0m8c8g2)9&6c8g2!0q4y4#2)9^5c8g2!0n7x3q4!0q4y4g2!0m8y4q4)9&6b7h3S2@1N6s2m8K6i4@1f1$3i4@1t1#2i4K6R3I4i4@1f1&6i4K6R3%4i4K6S2r3i4@1f1$3i4K6S2m8i4K6V1K6i4@1f1#2i4K6S2o6i4K6R3#2i4@1f1%4i4K6W2m8i4K6R3@1i4@1f1K6i4K6R3H3i4K6R3J5
当然我们也可以直接导出证书文件,将证书放置在系统证书的目录下来实现抓包。
图片描述
图片描述
导出der文件,并不能直接用于Android系统安装,如果想要安装用户证书,可以导出.cer后缀安装,如果想安装系统证书,我们还需要对证书进行处理。
我们可以去看一下我们的系统证书的格式是什么
下图使用的是 nexus6p Android 8.1.0
图片描述
如果想要转换成上面的形式,需要使用到openssl工具来进行转换,具体操作如下:
如果我们导出为der文件,先将der转换成pem文件
openssl x509 -inform DER -in burpder1545.der -out burpder1545.pem
然后我们再计算我们的hash值
openssl x509 -inform PEM -subject_hash_old -in xx.pem
然后可以直接改后缀,也可以使用cat xx.pem > hash.0生成我们的证书文件
注:这里的后缀是不一定为.0,如果出现hash值是一样的我们可以修改成.1、.2之类的。
如果为其他类型的文件我们可以使用下面的命令转换
openssl x509 -inform DER -subject_hash_old -in xxx.cer
证书生成后我们需要放到系统证书目录下,
如果是Android系统上,我们放置的位置是在system/etc/security/cacerts目录下
通常我们系统没有root权限的情况下是没办法操作的。
Android手机root情况下:
1、可以尝试重新挂载系统分区
mount -o remount,rw /
然后再复制我们的证书就可以成功。但是也是有失败的情况。这个时候建议推荐使用第二种思路
2、使用magisk插件
root的手机上,我们是可以任意折腾的,站在系统的高度下看APP可谓是降维打击。
4c3K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2X3M7X3g2W2j5Y4g2X3i4K6u0W2j5$3!0E0i4K6u0r3j5i4u0@1K9h3y4D9k6i4y4Q4x3V1k6@1k6i4u0E0K9h3&6S2L8q4)9J5c8U0p5#2z5o6b7&6x3W2)9J5k6h3S2@1L8h3H3`.
6c8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6y4j5h3N6A6M7$3E0Q4x3X3c8y4L8$3c8#2L8r3g2K6i4K6u0V1f1X3g2H3L8#2)9J5c8X3#2G2N6X3g2U0k6i4u0@1
当然使用未root的手机上也是可以实现,只是复杂一点
非手机设备上(比如车机、其他搭载Android系统的设备)
在这样的情况下我们想要移动证书就显得局促。
同样的使用Android手机端的第一种办法也是可以达到目的,前提是有root权限
如果不能重新挂载Android系统的根目录,可能想要绕过校验系统证书抓包的方式就不太可能。但是想要抓取流量也是可以实现的,比如使用frida hook + tcpdump来实现https流量抓取。
回归正题,在这里我们还是假设我们系统证书也是可以实现的,继续展开研究。
既然证书已经安装完成,那我们如何抓取的https流量,充当中间人攻击的呢?
我们还是用一张图片来解释这一个原理:
图片描述
如果开发者没有足够的安全意识,我们在这里是可以抓取到https流量的。在后面的章节中会讲解详细讲解如何防护又如何破除防护。
开始抓包
抓包之前我们是需要设置设备上的代理情况的,需要将我们待抓包的设备连接上我们的代理服务器中。
通常情况下我们有两种凡是来设置我们的代理:
1、更改wifi的代理设置
图片描述
图片描述
修改网络中的高级设置,设置我们的代理。
填入我们的代理IP和port就可以实现代理抓包。
2、设置全局代理
第二个方法设置全局代理,需要使用到如下的命令
adb shell settings put global http_proxy 192.168.xx.xxx:8888
这样设置全局代理效果和上面的手动设置是一样的效果。

Finder抓包原理上和burpsuite是相识的,具体的操作也是相似,可能差异就在使用上面。我们还是简单的把环境搭建代理抓包证书安全讲一下。
在官网上我们可以看到fiddler支持多个系统,我们windows下为例进行安装。
基本上就是next下去就行
我们就直接安装证书,在点击Tools->option->https
图片描述
就会给我们提示请求安装证书。
设置连接
图片描述
这里主要是配置我们的端口
可以在我们的电脑中看到代理配置
图片描述
fiddler已经将我们本地的代理给设置好了,现在本地的流量就是可以直接抓取。
比如我们访问的流量
图片描述
那我们如何去配置抓取移动设备的https流量呢?当然是需要配置证书。
首选我们是需要让我们的设备连接上我们代理,设置代理的方法和上一个抓包工具是一样的。设置完成代理,我们可以在待抓包设备上访问http://ip:port的方式去下载我们的fiddler证书,进行安装即可。当然这里想要安装系统证书也是一样的方法。
配置代理可以参考上一个工具的配置方法。

如果在上面的方法都不好使的情况下,我们可以采用TCPdump工具来进行流量分析,但是这种分析方法可能并没有上面的工具那么直接,需要借助wireshark工具来进行查看和分析。
通常情况下,使用tcpdump抓https流量是出于加密状态的,我们也没办法像BP一样设置中间人代理,但也不是不能分析,只是相对来讲复杂一点。
想要抓取https流量并且分析,这里推荐一种方法:
90eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3f1#2x3Y4m8G2K9X3W2W2i4K6u0W2j5$3&6Q4x3V1k6@1K9s2u0W2j5h3c8Q4x3X3b7I4y4o6l9#2z5e0p5%4i4K6u0V1x3g2)9J5k6o6q4Q4x3X3g2Z5N6r3#2D9

在这一小节中主要就是从防护的难度从低到高进行讲解,攻防兼备。

这中情况通常是出现在测试版本中,为了方便开发者自己测试,发布版本中也不一定不存在这样的情况。忽略证书校验到底是什么意思呢?我们还是用图片的形式来进行说明。
图片描述
那这样的情况下,https流量和http流量是一样的效果,实际上达到的效果是信任所有的证书。我们以okhttp为例:
在okhttp中,默认是使用系统证书进行校验的。如果我们重写checkClientTrusted、checkServerTrusted、verify等方法,使其处理逻辑为空,便能够达到忽略证书校验的目的。
图片描述

证书都忽略了,那我们想要抓包不是直接代理上就可以抓包嘛。不存在什么对抗之法。


[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 11
支持
分享
最新回复 (8)
雪    币: 197
活跃值: (1418)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享!
2021-4-7 17:30
0
雪    币: 183
活跃值: (233)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢分享
2021-6-26 11:24
0
雪    币: 370
活跃值: (868)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢分享
2021-6-29 01:43
0
雪    币: 202
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
搞了很多,最后请问magisk怎么防检测?
2021-7-29 22:31
0
雪    币: 577
活跃值: (2035)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark 感谢分享
2021-7-29 22:54
0
雪    币: 631
活跃值: (3026)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
7
讲的很全面,感谢分享
2023-4-3 10:40
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
楼主,想请教下国密流量怎么用bp抓包啊
2023-4-12 14:07
0
雪    币: 156
活跃值: (1352)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
支持一下
2023-4-17 21:16
0
游客
登录 | 注册 方可回帖
返回