Chinaunix首页 | 论坛 | 博客
  • 博客访问: 452448
  • 博文数量: 403
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -70
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-05 12:45
文章分类

全部博文(403)

文章存档

2014年(3)

2013年(1)

2012年(3)

2011年(21)

2010年(13)

2009年(64)

2008年(9)

2007年(36)

2006年(253)

分类: 系统运维

2006-08-31 11:08:38

好不容易找到的一篇带有图片的介绍:
新版QQ不仅仅通过UDP方式登录服务器,还能够以TCP方式登录。本文利用SNIFFER PRO工具监视QQ登录全过程,为了让大家更好的理解QQ登录过程,抓包过程结合防火墙技术,每出现一种登录方式先抓取报文,然后用防火墙关闭该通道,这样QQ就会自动选择其它方式试图登录服务器,反复如此就可以弄清楚QQ所有登录方式和QQ服务器的地址及端口。
1 登录速度最快的UDP方式

  看看抓到的报文图QQ1


图QQ1

  报文中61.53.187.229是本地IP地址,219.157.70.130是ISP的DNS服务器IP地址。从报文中可以看到QQ 首先发出7个DNS解析请求,并且顺利获得了相应IP:

  sz.tencent.com 61.144.238.145
  sz2.tencent.com 61.144.238.146
  sz3.tencent.com 202.104.129.251
  sz4.tencent.com 202.104.129.254
  sz5.tencent.com 61.141.194.203
  sz6.tencent.com 202.104.129.252
  sz7.tencent.com 202.104.129.253

  以上IP也可以通过PING 域名的方法得到。接着,QQ向这7个服务器中的3个发送UDP数据包,它们是发送到

  202.104.129.254 的 UDP 数据包
  202.104.129.252 的 UDP 数据包
  61.144.238.146 的 UDP 数据包

  如果服务器在5秒中没有回应,就发如下UDP数据包

  202.104.129.251 的 UDP 数据包,
  61.141.194.203 的 UDP 数据包,
  61.144.238.145 的 UDP 数据包,

  再过5秒后发送到 202.104.129.253 的 UDP 数据包

  在此过程中如果服务器有回复,QQ选择回复速度最快的一个作为连接服务器,图QQ1中显示分别得到了SZ4/SZ7/SZ6.tencent.com的回应,QQ选择SZ4.tencent.com作为登录服务器。。通过分析可以知道,如果防火墙不允许QQ走UDP方式,那么QQ至少需要10秒才能登录服务器。图QQ1报文清晰的显示本地端口是4000,目的端口是8000。为了以后的实验,这里设置防火墙拦截发往以上7个IP地址的8000端口的UDP数据包。拦截后再也没有发现新的UDP服务器地址。

2 通过80端口的TCP方式

  图QQ2显示的是防火墙拦截UDP数据包后,QQ登录服务器的报文。从图中可以看出几点变化:


图QQ2

  域名   从类似sz?.tencent.com 改为tcpconn?.tencent.com
  协议   不再是UDP而是TCP
  端口   目标端口80,本地端口1042(不固定1024-65534)

  80端口是HTTP协议默认的端口,浏览网页一般都是走80端口,许多防火墙允许用户浏览网页,所以80端口获准允许通过。tcpconn.tencent.com域名对应的IP是218.17.209.23,继续做实验,发现如下域名与IP对应关系:

  tcpconn.tencent.com 218.17.209.23
  tcpconn3.tencent.com 218.17.209.23
  tcpconn2.tencent.com 218.18.95.153
  tcpconn4.tencent.com 218.18.95.153

  虽然有4个域名,但是只有2个服务器IP。

  3 通过443端口的TCP方式

  继续实验,用防火墙拦截上面提到的服务器80端口通道,继续探索QQ的登录方式。


图QQ3

  图QQ3清楚的表明QQ是通过TCP协议连接到服务器的443端口,443是HHTPS协议的默认端口,HTTPS也是提供用户网页浏览服务的,不过是加密了。

  图QQ3中看到的QQ服务器IP是218.18.95.153,实验中还发现218.17.209.23也可以提供服务。反复实验只发现这两个IP地址。

  以上的实验都是在有公网IP的计算机上做的,理论上在局域网内部通过一个服务器共享上网的方式下,QQ的登录方式应该是一样的。继续实验,把实验环境换到WINDOWS 2000做NAT方式下的网络中,防火墙安装在服务器上,封堵上面提到的IP和相应端口。局域网内部所有QQ用户都无法登录服务器了。也可以把这些地址加入安全策略中的“IP安全策略”,并选择BLOCK通讯即能有效作到禁止LAN内用户登陆使用QQ。

还有一类软件需要提一下,就是以MYIM为代表的兼容多种即时通信软件的聊天软件。MYIM可以在QQ卸载后独立运行,而且可以使用多个QQ帐号登录,是不是它的登录过程不同于QQ呢?实验中安装最新版的MYIM (版本:MyIM 1.0 Beta build 0225),防火墙成功的封堵了MYIM的登录,这也好理解,毕竟QQ服务器是相同的。

  图QQ4显示无法通过NAT代理服务器登录QQ


图QQ4

  4 用防火墙封QQ广告

  流行的木子版QQ客户端具备去广告功能,本文提供另外的方法,使用防火墙也可以达到禁止QQ广告的目的。用防火墙拦截所有来自下面网址的数据报文,QQ就无法访问服务器的广告网页了。这些地址是QQ成功登录后在QQ通讯过程中通过SNIFFER PRO抓到的。

  61.172.249.133
  61.172.249.134
  61.172.249.135
  218.17.217.105
  218.17.217.106
  219.133.40.154
  219.133.40.152
  219.133.40.153
  219.133.40.155
  219.133.40.15 qqshow-ufs.tencent.com
  219.133.40.157 qqring.clent.tencent.com

  不过,QQ仍然弹出系统消息等窗口也非常讨厌,找到QQ的安装目录(默认在C:\Program Files\Tencent\qq),把其中的可执行文件QQexternal.exe文件改名为QQexternalb.exe。再登录QQ就没有窗口弹出来了。以上实验在腾讯QQ2003III Build0117简体中文版下通过。

  5 关于QQ安装目录下的Config.db文件

  用记事本打开Config.db文件,发现跟上面提到的域名极为相似的域名:

  61.144.238.146:8000
  sz.tencent.com:8000
  sz2.tencent.com:8000
  sz3.tencent.com:8000
  sz4.tencent.com:8000
  sz5.tencent.com:8000
  sz6.tencent.com:8000
  sz7.tencent.com:8000
  tcpconn.tencent.com:80
  tcpconn2.tencent.com:80
  tcpconn3.tencent.com:80
  tcpconn4.tencent.com:80
  tcpconn2.tencent.com:80
  tcpconn3.tencent.com:80
  tcpconn4.tencent.com:80
  http2.tencent.com:80
  http.tencent.com:443

  也许这就是QQ记录服务器地址的文件,不过,最后两项用普通QQ帐号没有涉及到,根本就没有发起连接包。也许是收费用户的服务器吧,这里也提供出他们的IP地址:

  http.tencent.com 218.17.209.42
  http2.tencent.com 61.144.238.149

  结束语

  如果腾讯增加新的QQ服务器,QQ也还是可以登录的。另外,用第三方的代理软件如NEC E-BORDER等,支持Anonymous的Socks5代理还是可能绕过去,登陆使用QQ。

阅读(1570) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~