QQ传输协议分析

1、 实验目的:html

  在虚拟机下NAT模式下经过Wireshark抓包,分析QQ的传输模式。了解QQ在传输信息过程当中用到的协议。分析在Nat模式下,信息传输的穿透性。安全

2、 实验环境:服务器

  Win7 专业版32位(在虚拟机里面)。网络

  Win7 旗舰版64位(物理机)字体

  QQ版本:TM2013加密

  Wiresharkspa

3、 实验内容:3d

一、 QQ登陆指针

  1)、UDP登陆htm

  在虚拟机的win7打开QQ面板,设置登陆服务器的类型为UDP

  启动wireshark,而后开始登陆QQ,登陆成功等待一下子中止wireshark的抓包。

  抓包如图:

  咱们能够看到本地向远程登陆服务器183.60.48.174发送了一个UDP的数据包,这个就是IP就是在刚才设置UDP登陆时的系统默认IP,还能够看到这个IP返回了一个UDP的数据包。看来这两个包就应该是登陆验证的包,接下来的几个包的服务器IP变成了183.60.48.165,因为这个IP和登陆服务器的IP位于统一网段,所以咱们能够猜想这个IP是腾讯用来存储咱们发送的信息的服务器。须要注意的是,在屡次实验下,能够发现服务器不止183.60.48.165这一个,这是由于想QQ这样的大吞吐量的信息交互,必须用多台服务器分流,因此这个IP并不必定是某一个。下面的一些包应该就是心跳包。那个OIQC协议就是QQ用的协议,其实实际上也是一个UDP包。下面的DNS协议就是由于个人QQ是在虚拟机里面登陆的,在向外网交互信息的时候会经过网关192.168.214.2解析。

  咱们来分析一下登陆时候的UDP包

  从这个图咱们能够得知源和目的的IP,mac地址,还有双方的端口号等等一些信息。

   数据链路层:

  目的MAC地址:00 50 56 e3 56 95

  本机MAC地址: 00 0c 29 ba 59 3c

  网络层:

  经过查询资料和分析咱们知道:

  45:版本IPv4,首部长度20字节

  00:区分服务

  00-73:总长度175字节

  36-1e:标识

  00-00:标志和偏移

  80:生存时间128

  11:传输协议UDP(17)

  传输层:

  0f-a0:源端口4000

  1f-40:目的端口8000

  009b:长度155字节

  7f-c4:检验和

  QQ的数据

  经过查询资料和分析咱们知道:

  02:QQ报文的开头 

  34-20:QQ客户端的版本号,实验所用版本为QQTM2013

  08-25:用户请求登录的命令的序号 

  67-dc:发送数据的序号  

  56-a6-d2-5c:用户QQ号码,实验中为1453773404

  以后的内容为加密的数据内容 

  最后一个字节03:QQ报文的结尾

  2)、TCP登陆

  设置如图:

  启动wireshark,而后开始登陆QQ,登陆成功等待一下子中止wireshark的抓包。

  抓包如图:

  能够看到几个TCP的包还有一个SSL的包

  对TCP包分析如图:

  经过对UDP协议的分析,咱们能够看到数据层和网络层的十六进制代码和以前的如出一辙,这里咱们就值分析传输层的TCP协议了,如图:

  经过查询资料和分析咱们知道:

  C4-5e:源端口号50270

  01- bb:目的端口443

  45-34-fc-63:序号 

  00-00-00-00:确认号 

  80-02:数据偏移,标志 

  20-00:窗口大小8192字节 

  7f-3b:检验和 

  00-00:紧急指针  

  其他部分为可选字段和填充字节

  在TCP协议里面咱们没有看到QQ的登陆验证消息。为何呢?一看这里还有一个SSL协议,QQ会不会是经过SSL验证的呢?

  SSL((Secure Sockets Layer 安全套接层),及其继任者传输层安全Transport Layer SecurityTLS)是为网络通讯提供安全及数据完整性的一种安全协议。TLSSSL传输层对网络链接进行加密。)

  那么咱们来看看这个包:

  02:QQ报文的开头 

  34-20:QQ客户端的版本号,实验所用版本为QQTM2013

  08-25:用户请求登录的命令的序号 

  67-dc:发送数据的序号  

  56-a6-d2-5c:用户QQ号码,实验中为1453773404

  以后的内容为加密的数据内容 

  最后一个字节03:QQ报文的结尾

  可见,这个包的信息和UDP登陆时候的同样,那么TCP登陆是确实使用了SSL。

二、 心跳消息数据包

  如图,经过IP地址查询,能够知道119.147.45.40是广东深圳的IP,而深圳是腾讯的老巢。在屡次的抓包中也能够看到这个IP段,因此咱们有理由相信,这个IP段是腾讯的。

  那么咱们打开来看看。

  看到这里,确实有很熟悉哦。经过查阅资料和分析咱们知道:

  经过查询资料和分析咱们知道:

  02:QQ报文的开头 

  34-20:QQ客户端的版本号,实验所用版本为QQTM2013

  00-58:用户在线的命令序号 

  3b-09:发送数据的序号  

  56-a6-d2-5c:用户QQ号码,实验中为1453773404

  以后的内容为加密的数据内容 

  最后一个字节03:QQ报文的结尾

三、 收发信息数据包

  对方在线的时候

咱们看看第一个包:

  能够看到蓝色字体那里的02是QQ报文的开头,这里须要注意的就是00-cd是客户端向服务器发送消息的命令序号,1b-db是发送数据序号,其余的都同样。经过几回实验发现,00-cd客户端向服务器发送消息的命令序号是固定的,而1b-db发送数据序号是会改变的。

并且没每送一个包,服务器是会回复一个包给客户端的。

4、实验总结:

  经过实验我还发现QQ貌似是会和每个在线好友创建一个链接,由于当我登陆只有一个好友的QQ时,wireshark抓到的包就几个,而登陆有上百好友的QQ时,发现链接数也有数百个。

 

 

 

PS:这是去年10月份咱们老师给咱们讲网络协议时,本身作的一次对QQ协议的分析,当时本身对于协议也不是很明白,可是经过查阅资料,仍是独立完成了这么一次分析,因为时间过得过久,当时查阅的资料早已忘记出处。真的很感谢网络上前辈们、朋友们的无私分享,咱们今天才得以有那么多资料查阅,衷心感谢!还要感谢姚老师的指导。文中有错之处,还望批评指出,在此先谢过!

 如需转载请注明出处:http://www.cnblogs.com/Heart-J/p/4580849.html 谢谢

相关文章
相关标签/搜索