移动端https抓包那些事--进阶篇
来源:互联网 发布:游戏界面编程 编辑:程序博客网 时间:2024/06/04 19:41
上一次和大家介绍了手机端https抓包的初级篇,即在手机未root或者未越狱的情况下如何抓取https流量,但是当时分析应用时会发现,好多应用的https的流量还是无法抓取到,这是为什么呢?
主要原因还是客户端在实现https请求时对于证书的校验上,如果仅仅校验是否有证书但是未严格校验证书的有效性时,就可以通过手机客户端安装抓包工具的证书来绕过签名校验,但是如果客户端做了严格的证书校验,如果不是受信任证书则无法正常进行https通信,遇到这种情况我们该如何抓取https流量来进行业务分析呢?
接下来就进入我们的第二篇章-进阶篇,深层次抓包(浅层次抓包 -> 移动端https抓包那些事--初级篇)。
这一次就会对我们的设备有所要求了,安卓设备要求设备root,iOS设备要求越狱。后续我们依然会分两个平台来依次介绍如何进行操作。
Android平台
在Android平台上的操作主要是通过hook的方式,将应用及系统中验证https证书的逻辑全部hook为验证结果正确,这样无论安装的证书是否有效,皆可进行正常的https通信。
这里就需要对手机安装hook框架,这里用到的hook框架为Xposted,官方下载地址:
http://repo.xposed.info/module/de.robv.android.xposed.installer ,这里需要注意的是,在Android4.0-4.4是可以直接通过安装apk的方式开刷入Xposted框架,而在Android 5.0以上则需要刷入Xposted的固件包,具体的操作这里就不再赘述了,网上有很多教程已经讲的很详细了。
想要进行https抓包的话需要安装Xposted的一个开源模块--JustTrustMe,github链接地址为:https://github.com/Fuzion24/JustTrustMe ,下载最新版本的安装包,安装进手机,在Xposted中激活并重启手机,这时就可以随意抓取手机中的流量了。
iOS平台
iOS上就需要将手机进行越狱了,可以使用目前市面上比较流行的盘古越狱工具,但是目前只支持iOS10之前的版本,所以做移动安全研究或者渗透测试的,准备一台老版本的测试机还是很有必要的,说不定什么时候哪款工具就在最新系统上用不了了。
言归正传,在iOS上用到的这款工具叫做SSL Kill Switch 2,该工具使用了Cydia Substrate的钩子技术,这个钩子Hook了IOS的验证证书函数,使得他们接受任何证书。
SSL Kill Switch 2同样也是一款在Github上开源的软件:https://github.com/nabla-c0d3/ssl-kill-switch2 ,这里给大家简单介绍下如何安装这个工具。
首先在越狱后的Cydia工具中查看以下几项软件是否都安装完成:
Debian PackagerCydia SubstratePreferenceLoader
如图中所示:
如果都安装完成,那么从Github上下载最新的release包:https://github.com/nabla-c0d3/ssl-kill-switch2/releases ,如现在最新版的为v0.11 安装包为 com.nablac0d3.SSLKillSwitch2_0.11.deb ,将该文件拷贝到iOS设备中,拷贝文件可用iTools、iFunBox等工具。
如图所示:
用ssh链接iOS设备,找到deb文件传输目录(/User/Media):
执行如下命令进行安装:
dpkg -i com.nablac0d3.SSLKillSwitch2_0.11.debkillall -HUP SpringBoard
回到Cydia中,查看安装的软件,已经在列表中了。
这时候就可以抓取https的流量了。
测试
证书安装完成之后,用手机访问一个https的网站,这时就发现https的数据包可以抓取到了。
- 移动端https抓包那些事--进阶篇
- 移动端https抓包那些事--初级篇
- Wireshark抓包Https
- wireshark https 抓包
- fiddler https 抓包
- 抓Https包
- iOS HTTPS 抓包
- charles https 抓包
- HTTPS抓包分析
- fiddler https 抓包
- fiddler https 抓包
- Charles:移动端设备网络抓包
- 利用Fiddler抓包移动端数据
- charles移动抓包
- fiddler抓包HTTPS请求
- 利用Charles抓https包
- fiddler 手机 https 抓包
- fiddler抓https的包
- 进程间通信
- Train Seats Reservation 区间加减 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- LSD(Line Segment Detector)直线提取算法
- 逆序打印数组-递归
- 洛谷Oj-栈-卡特兰数
- 移动端https抓包那些事--进阶篇
- 5.921.261] nouveau 0000:01:00.0: fifo: SCHED_ERROR 08 []
- 阿里巴巴面试题-----指针
- 实验一 Linux操作系统的安装
- MFC中定时器OnTimer函数的使用
- 全文搜索Lucene.Net优化
- Css3(05) 背景与边框
- DLL解释
- 关于TCP/IP,OSI协议模型及层结构关系