首页 > 其他分享 >网页版微信抓包和IPAD微信抓包 Wireshark

网页版微信抓包和IPAD微信抓包 Wireshark

时间:2023-04-15 14:04:39浏览次数:41  
标签:版微信 IPAD 微信 报文 TCP DNS IP 服务器 抓包

#在51CTO的第一篇博文#

本来想抓普通网页版微信,但是换了好几个微信号说安全问题无法登陆,,,只能去QQ浏览器的微信(应该是插件)。只是熟悉了一下过程,并没有深入分析微信传输协议(其实是不会)。
网页版微信

一:实验目标

1.认识web端微信通过TCP建立连接和使用SSL/TLS协议进行数据加密的过程。 2.抓包分析IOS端微信收发的某种数据。

二:实验过程与分析 1.先查看本机的IP地址。

网页版微信抓包和IPAD微信抓包 Wireshark_微信

2.打开浏览器准备登录微信网页版。扫码的时候查看抓的包,其中有个DNS数据包询问extshaort.微信.qq.com的IP地址。

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_02

查询报文:DNS查询报文为标准查询即通过主机名查询对应的IP

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_03

这是192.168.31.1回复的DNS报文,查询本机网络信息。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_04

192.168.31.1是本地的DNS服务器,所以询问也是通过学校的DNS服务器。然后再通过校外的DNS服务器找到相关服务器的IP地址,当然回复过程也是先到本地DNS服务器再发送到本机。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_05

DNS回复报文

从DNS回复报文中可以看出网页版微信的IP地址有多个,为了应对大流量的访问包括避免宕机影响业务,大企业或者大型服务都会有多个服务器。 从接下来的报文中可以看出用户选择了223.166.152.101这个服务器进行访问连接。因为DNS查询后有一定数量的TCP数据包是本机与223.166.152.101之间的。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_06

3.分析上述提到的TCP数据包(三次握手过程)。

网页版微信抓包和IPAD微信抓包 Wireshark_微信_07

看到了源IP是本机IP,目的IP为DNS返回的其中一个IP。分析TCP报文内容,看到了目的Port为80即常见的HTTP协议的端口。 然后标志位 SYN置1,为TCP三次握手中的第一步。说明本机正常通过TCP与微信的服务器建立连接。

网页版微信抓包和IPAD微信抓包 Wireshark_微信_08

服务器回复的报文。其中确认号ACK=x+1,x为请求报文中的0,syn = 1,表示客户端的请求报文有效,服务器可以正常接收客户端发送的数据,同意创建与客户端的的新连接。

客户端收到服务器回复的报文后得知服务器允许建立连接,此时客户端还会再发送一个TCP报文,这个数据包的seq = x+1=1,ack还是为1。表明可以建立连接了。接下来的就是双方的数据传输。

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_09

4.三次握手后建立连接后客户端向服务器发送了一个 HTPP post报文,客户端开始提交数据。看HTTP的内容,request URI,而这个URI为..../getloginqrcode,应该就是微信登录的二维码。

网页版微信抓包和IPAD微信抓包 Wireshark_微信_10

网页版微信抓包和IPAD微信抓包 Wireshark_IP_11

5.扫码登录微信

登录后有大量的TCP数据包及HTTP POST和HTTP响应数据包。从这里可以看出这时候与登录前的服务器IP不同,但是都是之前DNS返回的IP之一。可能这种大型业务不同的服务器承载着不同的业务需求。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_12

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_13

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_14

客户端向微信服务器请求同步数据等数据传输的HTTP。

6.微信使用了应用层与传输层之间的SSL/TLS协议进行数据加密。 6.1 Client Hello开始客户端向服务器发送建立连接的请求:(版本号,随机数等)

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_15

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_16

支持的加密套件6.2Server Hello,根据请求中携带的内容建立连接版本,加密套件,生成服务器端随机数。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_17

6.3服务器向用户发送由CA签发的证书,验证身份。(Certificate,server Key exchange等)

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_18

6.4Change Cipher Spec(通知)

网页版微信抓包和IPAD微信抓包 Wireshark_IP_19

6.5双方可以加密通信。

7.给好友传一张照片

![在这里插入图片描述](/i/ll/?i=20210116185757641.png)

抓包发现还是原来的建立通信的过程

网页版微信抓包和IPAD微信抓包 Wireshark_微信_20

网页版微信抓包和IPAD微信抓包 Wireshark_微信_21

抓包发现了HTTP请求报文,内容是关于uploadmsgimg的。

尝试IOS端的微信抓包分析

1.用PC作为一个无线AP,让移动端接入。查看移动端的IP和MAC地址。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_22

2.将wireshark绑定在这个无线接口,进行抓包分析。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_23

还是先通过DNS查找微信的服务器IP。IP地址和之前的类似。116.128开头。

3.获得登录二维码

网页版微信抓包和IPAD微信抓包 Wireshark_IP_24

在获得二维码过程中,终端和121.51.73.100进行了大量的TCP通信。

观察其中一个报文,发现了之前不太了解的字段SACK。在网上查找相关知识,得知这个字段可以告诉发送方哪些报文段丢失,哪些报文段重传。根据这些信息,发送方可以重传这些真正丢失的字段。

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_25

4.登录。经过网上查找发现微信客户端用的是自己改进的mmtls协议。也抓到了相关的mmtls POST数据包。

在刷新微信列表的时候发现有大量的TCP包和其中的HTTP请求包。以下面这个为例:开始有个HTTP Get,应该是下载某个数据,然后服务器向用户发送多个TCP 后,最后接上一个HTTP OK(JPEG JFIF Image)。

网页版微信抓包和IPAD微信抓包 Wireshark_微信_26

一般来说TCP可以发1500个字节,减去40字节的头文件就还有1452个字节,所以一般大于1452TCP也会分段。如上图,一个TCP中包含1440字节数据。TCP segment of a reassembled PDU,TCP层收到上层大块报文后分解成段后发出去。

网页版微信抓包和IPAD微信抓包 Wireshark_微信_27

网页版微信抓包和IPAD微信抓包 Wireshark_微信_28

ACK值相同。

网页版微信抓包和IPAD微信抓包 Wireshark_IP_29

上图是最后的HTTP OK报文,其中包含了之前6个TCP的数据,让我想起了之前做的IP分片,最后也是ICMP重组所有分片。

看到JPEG就知道应该是关于图像数据的GET传输,找到最后的HTTP OK 报文。找到了JPEG File数据段。当时看到了开头的FF D8,就抱着试试看的态度去找了一下JPEG文件的文件格式,发现正是是开头FF D8,结尾是FF D9,数据段也符合。就想着将数据取出生成JPEG文件。

网页版微信抓包和IPAD微信抓包 Wireshark_微信_30

网页版微信抓包和IPAD微信抓包 Wireshark_IP_31

用python将Hex 串写入一个文件并以图片形式存储到本地。
import binascii
# payload为十六进制字符串,如:“ffd8ffe111e0457869...”;经过如下代码转换,可将pic存储为图片形式并可以正常打开
filepath = "C:\\Users\\14112\\Desktop\\yang\\a.jpg"
payload = "FF D8......FF D9" #只取了文件头和尾,数据太长
f=open(filepath,"ab") # filepath为你要存储的图片的全路径
pic = binascii.a2b_hex(payload.encode())
f.write(pic)
f.close()

发现生成的图片可以打开(如下图),

网页版微信抓包和IPAD微信抓包 Wireshark_微信_32

生成了上述图片就去微信列表找头像,发现下面这个群头像正是从抓到的报文中提取出的十六进制数据生成的。

网页版微信抓包和IPAD微信抓包 Wireshark_服务器_33

了解到微信使用的是基于TLS的mmtls,能力有限,就不再分析腾讯未公开的协议了。原有的加密是存在业务层,加密的是请求包主体,但是数据包包头是明文,其中还包括用户的id等信息,而且加密的安全性也都待加强,所以腾讯开发了保护Client到Server之前所有网络通信数据、而且加密通信保护对业务开发人员透明的安全通信协议即mmtls。

实验总结:现在我们使用的PC以及移动网络设备每时每刻都运行着各种服务,也和非常多的服务器之间进行数据包的传输,但是基本离不开TCP/IP 还有HTTP等常见的协议。感觉在真实的网络环境抓包比在GNS3上最难的就是无法排除其他服务数据包的干扰,在本机可能一打开wireshark就出现了大量的数据包,所以这时候wireshark使用技巧就尤为重要,学会过滤报文。 分析微信的通信过程中服务器的IP会发送变化,也许是不同的业务使用不同的服务器,开始的时候需要分析DNS,因为开始主机会查询相关服务器的IP地址,从DNS中也可以看出一项大型服务会使用多个服务器,多个IP来保证业务正常。Web版应用基于TLS的加密也表现了web版应用存在一定不安全性。通过协议分析课程和实验也发现了自己存在着很大的不足,自己还有很多要做要学的。

标签:版微信,IPAD,微信,报文,TCP,DNS,IP,服务器,抓包
From: https://blog.51cto.com/u_16072841/6192297

相关文章

  • C# 抓包工具
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceCatchTool{  classProgram  {    privatestaticSocketso......
  • 抓包
    可打包Apk:配置networkSecurityConfig,针对此App信任用户证书;可打包Apk:调低targetSdkVersion至24以下;不可打包Apk:采用「平行空间(v.4.0.8625以下)」版本的App运行后抓包;不可打包Apk:系统Root后,将CA证书装入系统目录;换个Android7.0以下的设备抓包(文......
  • Linux系统里的抓包工具全解
    有时也许想看一下某个网卡上都有哪些数据包,尤其是当你初步判定服务器上有流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些IP在攻击了。14.2.1tcpdump工具具体用法如下:#tcpdump-nn-iens33tcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecode......
  • 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(13)-Charles如何进行Mock和接口
    1.简介Charles最大的优势在于抓包分析,而且我们大部分使用的功能也在抓包的功能上,但是不要忘记了,Charles也可以做接口测试。至于Mock,其实在修改请求和响应数据哪里就已经介绍了,宏哥就是在这里简单的提一下介绍一下它的理论知识,今天主要介绍和分享的是使用Charles进行接口测试实操......
  • EasyCVR插件工具:如何删除EasyShark的抓包数据?
    在前期的文章中,我们分享了关于EasyCVR平台新增的插件工具,感兴趣的用户可以查看这篇文章:《EasyCVR视频融合平台开放插件功能:支持EasyNTS与EasyShark》。其中,EasyShark是用于抓包的工具,支持在客户端直接抓包查看服务器的SIP消息。但是,有用户反馈,由于经常抓包产生了大量的数据,不知道如......
  • 《渗透测试》信息打点-APP资产&知识产权&应用监控&静态提取&动态抓包&动态调试 2023 D
     案例1:名称获取APP信息(爱企查/小蓝本/七麦/点点)1、爱企查知识产权2、七麦&点点查名称https://www.xiaolanben.com/https://aiqicha.baidu.com/https://www.qimai.cn/https://app.diandian.com/ 案例2:URL网站备案查APP1、查备案信息在搜2、网站上有APP下载3、市场......
  • 《渗透测试》信息打点-小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构 2023
     #小程序获取-各大平台&关键字搜索-微信-百度-支付宝-抖音头条 #小程序体验-凡科建站&模版测试上线测试:https://qz.fkw.com/参考:https://blog.csdn.net/qq_52445443/article/details/1223518651.主体结构小程序包含一个描述整体程序的app和多个描述各自页面的pa......
  • 测试员常用抓包工具:fiddler和wireshark对比
    https://baijiahao.baidu.com/s?id=1612020651990482782抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。黑客常常会用抓包软件获取你非加密的上网数据,然后通过分析,结合社会工程学进行攻击。所以,学会......
  • Fiddler抓包修改拦截的JSON文件
    第一步,打开断电,拦截包  第二步,打开要拦截的网址。然后我们就可以获取这个  右下角就是抓到的返回值,直接修改后,点击运行到完成,放行即可。......
  • Citipad评测:地图与景点完美结合的导游应用
    旅游导览类应用我们已经介绍过很多,LBS、语音、AR等技术的加入,也让这类应用越来越完善,成为了驴友们的必备。Citipad是一款最近引起很多关注的iPad旅游应用,特色在于,同类应用虽......