基于wireshark对网页版微信抓包和ios微信抓包分析
字数 1621 2025-08-22 12:22:15

基于Wireshark的微信网页版和iOS端抓包分析教学文档

一、准备工作

  1. 工具准备

    • Wireshark网络协议分析工具
    • 可正常使用的微信网页版和iOS客户端
    • Python环境(用于后续数据处理)
  2. 网络环境配置

    • 确保PC和移动设备在同一局域网
    • 对于iOS设备抓包,可将PC配置为无线AP

二、网页版微信抓包分析

1. DNS查询分析

  1. 登录微信网页版时,首先会发起DNS查询:

    • 查询域名:extshort.weixin.qq.com
    • 查询类型:标准查询(A记录)
  2. DNS响应特征:

    • 返回多个IP地址(负载均衡设计)
    • 示例IP:223.166.152.101等
  3. 本地DNS服务器:

    • 通常为路由器地址,如192.168.31.1

2. TCP连接建立

  1. 三次握手过程:

    • 第一次握手:客户端发送SYN=1,seq=x
    • 第二次握手:服务器回复SYN=1,ACK=x+1,seq=y
    • 第三次握手:客户端发送ACK=y+1,seq=x+1
  2. 连接端口:

    • 目的端口80(HTTP协议)

3. HTTP交互

  1. 获取登录二维码:

    • HTTP POST请求URI:/getloginqrcode
    • 服务器返回二维码图片数据
  2. 登录后通信:

    • 切换到其他服务器IP(业务分离)
    • 大量HTTP POST/GET请求用于数据同步

4. 加密协议分析

  1. TLS握手过程:

    • Client Hello:客户端发送支持的TLS版本、加密套件和随机数
    • Server Hello:服务器选择参数并返回服务器随机数
    • Certificate:服务器发送CA签发的证书
    • Server Key Exchange:密钥交换参数
    • Change Cipher Spec:加密方式变更通知
  2. 文件传输分析:

    • 上传图片时URI包含uploadmsgimg
    • 通过HTTP POST传输文件数据

三、iOS端微信抓包分析

1. 网络配置

  1. 抓包方法:

    • PC作为无线AP,移动设备接入
    • Wireshark绑定无线接口
  2. 设备识别:

    • 获取移动端的IP和MAC地址

2. 通信特征

  1. DNS查询:

    • 返回的服务器IP与网页版不同(如116.128.x.x)
  2. TCP高级特性:

    • 出现SACK(选择性确认)字段
    • 用于指示丢失和需要重传的报文段

3. 微信特有协议

  1. MMTLS协议:
    • 腾讯自研的安全通信协议
    • 基于TLS改进,保护所有网络通信数据
    • 对业务开发人员透明的加密方案

4. 图片传输分析

  1. HTTP图片下载:

    • HTTP Get请求获取图片
    • 服务器分多个TCP段传输数据
    • 最终以HTTP OK(JPEG JFIF Image)结束
  2. TCP分段特征:

    • 典型MTU为1500字节,减去40字节头得1452字节有效载荷
    • 观察到的TCP段包含1440字节数据
  3. 图片数据重组:

    • 多个TCP段具有相同ACK号
    • 最终HTTP报文重组所有分段数据
  4. JPEG文件特征:

    • 文件头:FF D8
    • 文件尾:FF D9
    • 可通过Python提取十六进制数据重建图片
import binascii

filepath = "image.jpg"
payload = "FFD8...FFD9"  # 实际抓取的十六进制数据

with open(filepath, "ab") as f:
    pic = binascii.a2b_hex(payload.encode())
    f.write(pic)

四、关键发现与总结

  1. 微信架构特点

    • 多服务器负载均衡(不同业务使用不同服务器)
    • 动态切换连接服务器
    • 网页版和移动端使用不同的服务器集群
  2. 安全机制

    • 网页版使用标准TLS加密
    • 移动端使用改进的MMTLS协议
    • 加密业务数据但部分包头信息仍为明文
  3. 抓包分析技巧

    • 使用显示过滤器排除无关流量
    • 重点关注DNS查询和初始TCP连接
    • 对分段传输的数据进行重组分析
  4. 学习要点

    • 掌握TCP/IP和HTTP协议基础
    • 理解TLS/SSL握手过程
    • 学习大型互联网服务的架构设计
    • 熟练使用Wireshark过滤和分析技巧

五、进阶研究方向

  1. MMTLS协议逆向分析
  2. 微信消息传输的时序分析
  3. 不同业务接口的URI规律研究
  4. 微信WebSocket长连接分析
  5. 移动端与网页版的协议差异比较

通过本教程,您已掌握使用Wireshark分析微信通信的基本方法,为进一步研究即时通讯协议和安全机制奠定了基础。

基于Wireshark的微信网页版和iOS端抓包分析教学文档 一、准备工作 工具准备 : Wireshark网络协议分析工具 可正常使用的微信网页版和iOS客户端 Python环境(用于后续数据处理) 网络环境配置 : 确保PC和移动设备在同一局域网 对于iOS设备抓包,可将PC配置为无线AP 二、网页版微信抓包分析 1. DNS查询分析 登录微信网页版时,首先会发起DNS查询: 查询域名: extshort.weixin.qq.com 查询类型:标准查询(A记录) DNS响应特征: 返回多个IP地址(负载均衡设计) 示例IP:223.166.152.101等 本地DNS服务器: 通常为路由器地址,如192.168.31.1 2. TCP连接建立 三次握手过程: 第一次握手 :客户端发送SYN=1,seq=x 第二次握手 :服务器回复SYN=1,ACK=x+1,seq=y 第三次握手 :客户端发送ACK=y+1,seq=x+1 连接端口: 目的端口80(HTTP协议) 3. HTTP交互 获取登录二维码: HTTP POST请求URI: /getloginqrcode 服务器返回二维码图片数据 登录后通信: 切换到其他服务器IP(业务分离) 大量HTTP POST/GET请求用于数据同步 4. 加密协议分析 TLS握手过程: Client Hello:客户端发送支持的TLS版本、加密套件和随机数 Server Hello:服务器选择参数并返回服务器随机数 Certificate:服务器发送CA签发的证书 Server Key Exchange:密钥交换参数 Change Cipher Spec:加密方式变更通知 文件传输分析: 上传图片时URI包含 uploadmsgimg 通过HTTP POST传输文件数据 三、iOS端微信抓包分析 1. 网络配置 抓包方法: PC作为无线AP,移动设备接入 Wireshark绑定无线接口 设备识别: 获取移动端的IP和MAC地址 2. 通信特征 DNS查询: 返回的服务器IP与网页版不同(如116.128.x.x) TCP高级特性: 出现SACK(选择性确认)字段 用于指示丢失和需要重传的报文段 3. 微信特有协议 MMTLS协议: 腾讯自研的安全通信协议 基于TLS改进,保护所有网络通信数据 对业务开发人员透明的加密方案 4. 图片传输分析 HTTP图片下载: HTTP Get请求获取图片 服务器分多个TCP段传输数据 最终以HTTP OK(JPEG JFIF Image)结束 TCP分段特征: 典型MTU为1500字节,减去40字节头得1452字节有效载荷 观察到的TCP段包含1440字节数据 图片数据重组: 多个TCP段具有相同ACK号 最终HTTP报文重组所有分段数据 JPEG文件特征: 文件头:FF D8 文件尾:FF D9 可通过Python提取十六进制数据重建图片 四、关键发现与总结 微信架构特点 : 多服务器负载均衡(不同业务使用不同服务器) 动态切换连接服务器 网页版和移动端使用不同的服务器集群 安全机制 : 网页版使用标准TLS加密 移动端使用改进的MMTLS协议 加密业务数据但部分包头信息仍为明文 抓包分析技巧 : 使用显示过滤器排除无关流量 重点关注DNS查询和初始TCP连接 对分段传输的数据进行重组分析 学习要点 : 掌握TCP/IP和HTTP协议基础 理解TLS/SSL握手过程 学习大型互联网服务的架构设计 熟练使用Wireshark过滤和分析技巧 五、进阶研究方向 MMTLS协议逆向分析 微信消息传输的时序分析 不同业务接口的URI规律研究 微信WebSocket长连接分析 移动端与网页版的协议差异比较 通过本教程,您已掌握使用Wireshark分析微信通信的基本方法,为进一步研究即时通讯协议和安全机制奠定了基础。