2006-01-03 20:09:47 by: h4x0r

破解QQ密码完全剖析

Font Size: Large | Medium | Small
来源:中国网络安全协会 网址:www.chinansa.com
一. 传统破解QQ密码的方法
总是有人以各种各样的理由找我破解别人的Q密码,其实我也没有什么肯定可以破解的办法.总结现在破解QQ密码的手段,第一种是本地盗用,一般是利用木马或者伪装程序之类的东西从QQ使用者的机器上获取用民用工业输入的密码.这种方法的缺点是首先要获取对方主机的权限,以漏洞或者欺骗的方式进行破解.第二种是远程破解,掌握了QQ的通信方式就可以用程序模拟QQ到服务器上进行登录验证.然后用字典或者暴力方式来进行破解.由于网络速度等限制原因.这种方法的效率真一般比较低.对于较为复杂的密码很难破解出来.还有一种方法是通过其他间接的方式,例如破解对方邮箱等,或者腾讯的服务器有某些漏洞可以导致密码泄漏,这我就不得而知了.
其实除了以上这几种常见的攻击手段,还有一种以前使用得比较少的方法,那就是通过sniffer来捕获QQ通信信息.由于QQ所使用的通信协议的特殊性,可以利用捕获到的信息来穷举出登录密码.由于这种破解是在本地进行的.所以速度要比远程破解快一些.这种方法比较适合在网吧等地方盗取别人的QQ.
二. QQ通信协议介绍
要通过抓取数据包来破争QQ密码.首先要对QQ的通信协议有一定的了解.只是通过抓包来分析的话,工作量是相当巨大的.幸好现在网上有一些开源的QQ项目.例如lumaqq.perl-oicq等.这要关我们就可以轻易了解QQ基本的通信协议了.QQ的通信协议是一套基于二进制数据的自己开发的应用层网络协议.其中使用一些公司的加密算法.QQ基本通信协议支持udp和tcp两种基本协议方式.两种方式的基本数据结构是一样的.只是tcp包多了一个描述长度的头部.那么我们就来看看QQ的登录过程是怎么样.
首先QQ客户端向服务器发送一个请求登录令牌的数据包.服务器返回登录令牌.这个令牌是在服务器端生成的.和客户端的IP地址,版本信息等数据相关.以后会用到这个令牌去进行其他操作.
在QQ客户端得到登录令牌之后.就会向服务器发送一个包含登录信息的登录请求.要求登录.服务顺会首先看看客户端的号码.I守址和版本是否可以在本服务器上进行登录.如果可以的话,就验证客户端的登录信息是否与服务器上保存的登录信息进行比较.匹配的就向客户端返回一个登录成功的数据包.不匹配返回登录失败.因为QQ的服务器有很多台.可能要分管不同的QQ版本.IP等.所以如果客户端的号码.IP地址和版本无法在本服务器进行登录.服务器就返蜀犬吠日一个重定向包.让客户端去另外一台服务器登录.其实整个QQ登录过程就是这么简单的两个步骤.
了解了QQ登录的过程后.我们还需要知道具人本的数据包格式.以便解析出我们需要的数据内容.QQ登录过程的数据包分为头部.内容和尾部三个部分.其中头的格式固定为:0x02客户端版本 命令 序列号 QQ号码. 其中0x02是1个字节的标志;客户端版本2个字节.用于表示QQ客户端的版本;命令2个字节.表示要发送的命令类型.例如请求登录令牌登录请求等;序列号是一个2字节的随机数,在一次QQ会话中通过它来确认回应包是否对应请求包.QQ客户端默认每次加1;QQ号码就是4字节的QQ号.对于服务器来说是每个字段是无所谓的.QQ登录过程数据包的尾部固定为0x03.
1. 请求登录令牌包
包内容就是对一次命令的具体信息,对于第一次发送的请求登录令牌包来说,包命令是0x0062,整个请求包如下所示;
Comments Feed Comments Feed: http://www.4evil.org/feed.asp?q=comment&id=455

There is no comment on this article.

Post Comment
Smilies
[smile] [confused] [cool] [cry]
[eek] [angry] [wink] [sweat]
[lol] [stun] [razz] [redface]
[rolleyes] [sad] [yes] [no]
[heart] [star] [music] [idea]
Enable UBB Codes
Auto Convert URL
Show Smilies
Hidden Comment
Username:   Password:   Register Now?
Security Code * Please Enter the Security Code