使用wireshark抓包软件分析微信协议--zucc
因为csdn自动压缩了上传的图片,导致高清图非常的小,稍后将发布可以下载的文档说明 下载地址,可以看到超清的图片,请自行下载
- (现在经过朋友反应实在太小,重新截了一次图,这次是正常比例,但是改变了高清分辨率,如若需要高清,还是请下载)
- https://download.csdn.net/download/sos768/11230576
- 有朋友配置AP的时候遇到了一些麻烦,如果相处于同一个wifi时候,又不想用手机的热点,用宿舍的网线的话,可以使用这个: http://wifi.ggsafe.com/
- 如若软件出错,请自行搜索: http://wifi.ggsafe.com/faq.shtml
- 或者可以私聊博主,借用无线wifi 网卡usb进行配置
二、实验内容原理实验结果与分析
1.选择微信使用模式(微信App或者网页微信),合理配置网络环境。
【实验步骤】
- 使用mac进行wireshark抓包,并选择使用客户端微信,同时将机器置于手机热点wifi之下
- 可以看到当前实验机器获得的ip为 172.20.10.2
所以当前连接的AP站点ip为172.20.10.1
【实验结果与分析】
配置当前的ip以及微信所在的实验环境,如上图所示
2.分析微信登录认证方式。
【实验步骤】
- 因为不必要的ipv6的信息传输干扰,所以先屏蔽了一些ipv6的信息
- 以下是我之前使用的笨方法,一个一个去屏蔽
- 经过朋友提醒,还可以这么做,直接ip筛选,效果是一样的:
从上图可以看出,我的电脑获得的ip是172.20.10.2,并且网关是172.20.10.1
此时,我的电脑正在发出dns,域名查询的包,之所以是8.8.8.8,是因为我对电脑做了一些配置,如下图所示,我的电脑会默认向一下两个dns服务器发出请求,(10.61.10.10是学校的dns服务器之一emm)。
当我们拆开去解读消息的时候会发现他的query是去查询这个域名 szshort.weixin.qq.com。并且在之后dns返回了查询到的IP
当我打开完客户端,扫了二维码之后但还没在手机按下确认键的时候,我的wireshark抓到了这些包,看样子是在获取二维码和一些相关的信息。
点击确认之后,从抓取的包里面也可以看出,双方在不停的发包并进行ssl加密传输,和一些相关的认证信息。
建立连接,并且获取一些好友队列的信息
发送post请求进行data验证并且获取消息。
【实验结果与分析】
成功与服务器进行了连接,并且认证成功
3.分析微信好友聊天过程。
【实验步骤】
作为测试,发送了四条消息:
- 做完实验后,又去查了以下相关资料,原来抓包软件可以进行设置成ip显示成域名,下图是对之后实验的ip更直观的一种显示
握手协议,也是一次认证
- 一共抓到了以下这些包,经过分析,可以确定此次信息传输是与之前dns查询中查到一个服务器121.51.140.144进行了交互
进行以下筛选,172.20.10.2是我电脑的ip地址
可以看到信息数据干净了许多,继续进行分析
前三个包是在进行tcp三步握手认证,由我的电脑向服务器发送syn请求,服务器收到后发送syn和ack进行确定,最后从客户端向服务器发送ack完成认证。
之后从第20个包开始,便一直在进行交互,不断的进行连接,传送完消息之后客户端的Fin断开连接请求,和之后恢复连接的ack,
(在发送fin之后,一定时间内,如果客户端和服务端还有数据交互,两者可以恢复连接而不需要再进行三步握手认证)
期间有一次重置,断开连接并且重新进行了三步握手认证进行连接
测试中途发现了一些不是微信服务器的ip频繁出现,如下图中的121.51.8.102,在我使用小号进行测试的时候出现了多次,而且其flags是psh和ack居多(数据传输),然后去ip138.com进行了ip查询,结果与预料相差不大。
查询网站时 ip138.com (仅供参考)
4.分析微信群聊过程。
【实验步骤】
选择了群聊进行分析,一共发送了以下这些信息:
使用121.51.24.106进行ssl加密传输,在中间传输的时候出现了数据重传的情况,说明当不可达时,数据包会自动选择进行重传,直到传输成功。
这一步里面syn同步请求包也在不断的重新发送,直到之后的syn+ack包的确认连接使得连接开始建立,非常经典的tcp三步握手认证。
与和之前的单独私聊的过程几乎一致,只是请求的服务器发生了改变,从121.51.24.144 转换成了121.51.24.101
这是客户端向服务端提交数据和服务端向客户端发送的回应包
可以看到传送的信息是进行加密之后的,只有提交的data数组 是可以明文可见的,还有服务端的回应中的code等信息是可见的
这些http请求和回应组成了信息交互的大部分过程
5. 总结微信聊天协议
可以发现微信的聊天信息都进行了ssl加密进行传输,并且在选择服务器的时候会选择最近的服务器。更容易发现的是,微信的聊天基于http协议,通过get,post与服务器进行交互,穿插在包里的http响应和请求包足以证明这一点,而当我把传送数据替换成图片时,交互的服务器并没有发生大的改变,依旧是在121.51.24.144和121.51.24.101进行切换交互。
对于微信好友头像的获取,从wx.qlogo.cn和cwx.qlogo.cn里进行get获取
在做完了全部客户端的测试之后,我又去进行了web端的测试,发现传输消息使用的服务器域名为szshort.weixin.qq.com,文字数据和图片的传输,get和post请求,而在调用地图的时候,会转换成另一个服务器去调取数据进行同步。以下是一部分web测试数据。
对web端来说,原来还有一些密文随机数的认证方式,且随时间会发生改变
三、本课程心得及建议
- 在动手实验的时候,遇到了很多的困难,但在自己的动手实践,和在不断的尝试中获取的知识来看,这是值得的。
- 在失败中,我收获了许多,巩固了一些基础知识,在复杂的包堆里面找到了正确的包,也学会了如何去过滤一些不需要的包,希望这门课之后会更加的广阔,也希望更多的同学可以收获宝贵的知识。
参考blogs
- https://www.2cto.com/kf/201611/566019.html 这位博主的blog对https中的SSL/TLS讲解真的让我豁然开朗
- https://wenku.baidu.com/view/ae65006a192e45361066f58e.html 这个帮助也挺大的,是这篇报告让我找到了bug,没有去找vx获取头像的独立服务器
- https://blog.csdn.net/dxt1107/article/details/77467751 这篇建议指阅读前半部分,他让我发现了公众号是不加密的
- https://blog.csdn.net/hezhipin610039/article/details/50099685 这篇是讲http抓包的,对爬虫挺有帮助的
- https://download.csdn.net/download/zhangmiaoping23/8722179 这是第2个参考的blog里的pdf版本,但是太贵了- -,而且不值得
使用wireshark抓包软件分析微信协议--zucc相关推荐
- 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议
[计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...
- wireshark抓包日志分析--洗号空闲超时案例
wireshark抓包日志分析 数千线高并发压测时,asr_ring洗号服务报错Session idle too long,意思是洗号这边一直没有收到音频数据直到超时报错.由于缺失日志线索,只能通过w ...
- Wireshark抓包——qq分析
Wireshark抓包qq分析 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用Wi ...
- 实验:Wireshark 抓包软件的使用及MAC协议分析
实验目的 1.理解抓包软件的工作原理: 2.掌握Wireshark软件的安装和使用方法. 3.掌握MAC协议分析的技术与方法 实验任务 1.安装和运行Wireshark软件: 2.使用Wireshar ...
- 计网 | Wireshark抓包和分析腾讯视频点播详细过程
介绍 这次抓包实践的目的是搞清楚腾讯视频Windows客户端在点播视频的时候,视频数据是如何传输来到客户端的. 最终分析得出结论,腾讯视频Windows客户端(具体版本见正文)点播视频时,使用了资源重 ...
- 使用wireshark抓包并进行网络协议分析
前言 今天想通过抓包实验,巩固一下所学习的网络协议.同时,在知识点上会加上以前遇到的一些问题.这次实验并不是对所有的网络协议都进行分析,而是从下面这个问题出发(面试常被问).从这一过程中复习学过的网络 ...
- wireshark抓包实验 分析 详解
Wireshark(Formerly Ethereal) is an award-winning network protocol analyzer developed by an internati ...
- tcpdump 抓二层包_可能是我见过的最简单易懂且实用的 TCPDump 和 Wireshark 抓包及分析教程!( 强烈建议收藏 )...
公众号关注 「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux ! 本文将展示如何使用 tcpdump 抓包,以及如何用 tcpdump 和 wireshark 分析网络流量.文中的例 ...
- 使用Wireshark抓包软件提示The NPF driver isn’t running解决办法
Wireshark一个强大的数据抓包分析工具,在Win7 64位系统上第一次使用时,可能会出现意外的情况. The NPF driver isn't running. 这个情况可能是因为没有安装Win ...
- (转)使用Wireshark抓包软件提示The NPF driver isn’t running解决办法
Wireshark一个强大的数据抓包分析工具,在Win7/10 64位系统上第一次使用时,可能会出现意外的情况. The NPF driver isn't running. 这个情况可能是因为没有安装 ...
最新文章
- Django博客系统(用户中心修改)
- 2019年计算机一级考试pdf,2019年计算机一级考试试题与答案.pdf
- ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)
- linux apache目录权限配置,Linux系统架构-----Apache的用户访问权限的设置
- HDU1542--Atlantis(扫描线)
- python代替嵌套列表_python含嵌套的列表去重问题
- 关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案
- Iconfont的引用与在伪元素中的图标引用
- java线程池饱和策略_干货:Java几种线程池的分析和使用。
- [转载] python hasattr函数_Python的hasattr() getattr() setattr() 函数使用方法详解
- ET代理_切换ip软件网络功能。
- phpnow怎么改php版本,phpnow升级php版本的方法
- Python-贪心算法 田忌赛马
- 制定to-do list的艺术
- 3 移动机器人路径规划(1- 栅格地图绘制)
- 安装Adobe Flash CS5出错的解决办法(Exit Code: 7 ERROR: Unable to get root from inChildPath)
- Windows下Python无法正常卸载:There is a problem with this Windows Installer package.
- 由二项分布推导泊松分布中的两个使用公式的证明
- 正则表达式中的特殊字符一览
- CSDN-MarkDown编辑器的姿势大全