★我要吧★

 找回密码
 注册[Register]
搜索
qq空间相册密码查看为什么登陆后需要激活无法注册?

[技术] 从底层协议讨论破解QQ密码

[复制链接]
发表于 2016-2-14 09:09:08 | 显示全部楼层 |阅读模式
很多人问我会不会破解QQ密码,我的回答很明确:不会。因为腾讯的服务器已经相当完善,并没有留下多少漏洞让我们发现。而且,能发现这种漏洞的的人一般都在美国国家安全局,不会有兴趣去破解QQ密码。可是最近发生的事情让我迟疑了,于是我查资料,抓包分析了QQ的登录过程,整个认证过程滴水不漏。下面是我做的一张登陆过程图,以及几个比较重要的数据包。希望有志之士能在我基础上继续完成我的工作。5 f# H& b3 ~  O' [6 q
' D4 R8 W4 p/ Z2 ?* Q- V  q
整个登录过程大部分数据包均使用UDP协议,端口分别用到了8000、80和443。3 ]# {' \  V2 B5 P! V* R4 s; P

& Q' m; j0 A4 o: v! _. v" p20110105214604217 q" P4 r6 Z" w2 D2 ~) I- ]

5 e; a2 {- S; B) o9 _1 B1. 0×0091 Touch包
5 Z# x9 X  ]( U1 n6 D2 _
4 w# ]1 Y$ g' z( q! Q/ b0 gTouch包是QQ客户端登录时向服务器发送的第一个数据包,作用是测试远程服务器的链路状态,通过多次抓包发现,对于不同的QQ,认证的服务器是不一样的。会员与非会员之间有差别,不同地区之间也有差别。在对QQ客户端的回应数据包中,如果所连接的服务器不对该QQ号码提供服务,则会返回另外一个服务器地址,让客户端重新连接认证。3 o, t* d7 L6 T4 y

% G/ G5 t- }, ^1 h0×0091发送包:* `3 T/ k, J7 U0 w# l; l
" J) }7 |0 T, z# _6 t8 A
02 1E 07 00 91 5B B8 04 EE D4 E9 02 00 0000 01
" c. h5 ~( f7 v, j; l0 P01 01 00 00 64 2F 6A 84 FA 78 CC 16 51 86 A7 B88 ~3 o4 q& x3 g* a7 M
1C 55 E8 29 6B C8 50 95 FB 5A CE E8 6C 89 0A C9. H0 v6 k2 [6 W
83 D0 68 51 DB 6E D1 93 C1 32 11 9B 84 13 EF 7D& K$ @5 Y: P' B0 }0 G. u
4B 55 8C 08 6C F3 F0 5F 11 16 26 E4 00 68 0D 98
& T. w' c- W7 h/ X' t02 BC 06 B9 4E E2 034 w, Y( f* [& h& ]
, [" H; ^2 j5 y4 [: D! }0 I5 [: A
02 //包头
$ a3 f: E) L. F- P' A: P1E 07 //版本号/ I& V$ A% M/ ^3 d, C  }7 V
00 91 //命令0 O/ U- L% }% a2 P/ V' N
5B B8 //包序号6 ~* `1 v* t$ n, T$ l: E: H
04 EE D4 E9 //QQ号码***  o; P7 I$ f  L
02 00 00 00 01 01 01 00 00 64 2F //固定,QQ版本号不同则不同- s' P5 q9 i1 S, F, h
6A 84 FA 78 CC 16 51 86 A7 B8 1C 55 E8 29 6B C8 //0x91密钥) w- P& A: T! s4 [* J
00 01 //固定两字节
5 }' Y5 P5 _9 F7 v' n& ?% f9 D# ?8 m00 00 08 04 01 E0 //0091Data01(在后面的命令里面要用到的); L- ^! Y! b% v' |. I  v
00 00 03 20 00 00 00 01 00 00 0B BF //0091Data02(在后面的命令里面要用到的)
' P, H! X8 V) V8 ]# [+ M( m00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //首次发送为15字节0
/ _  L6 I- @9 j$ p* c0 ]03 //包尾8 ~. F7 }# }& @: F- N+ E* x

/ y7 L' s* L, M3 q$ V& Q: i0×0091接收包:
" x' q# j6 H. \' Z
5 c! s1 @( S5 X8 h( q; y8 T; P02 1E 07 00 91 5B B8 04 EE D4 E9 00 00 00C0 EB
2 {( y5 V9 E! |! X1 \; }- ID0 BF C5 F9 E1 F2 C9 51 9D 3B 26 07 B5 AD 46 493 m- \8 T& }3 t/ v# @; W& M
49 C4 49 D7 69 36 9E 11 8E 24 2E A1 B3 AB 90 CE+ ]: G6 t: n3 B# ?' @$ P8 E
CA 38 C9 99 94 8E 0A 41 03 EB AC E7 C6 BA 34 FD. Q$ A7 w' R1 U( v5 I. o
64 9E E7 4B 3D 24 6F 44 0A 77 80 69 96 91 0C 00
4 s/ r& c: E* c* y0 [9 e87 6B 51 25 E5 15 9F E3 54 6E B8 C6 1D 5F DE 402 B. t6 q# l" Q3 b: J6 [
54 BB D8 0C 36 8D 03$ u3 J' W" b# f1 v0 N$ A9 E! s. R
* N4 \  j8 ?) d6 j7 X# z! y# k
02 //包头* p7 J# ~7 A4 H2 X
1E 07 //版本号  U  V/ S) C3 A& Q
00 91 //命令4 [" _8 l, M# l* y2 R2 U
5B B8 //包序号# x& ?+ ]5 b, A5 I8 D3 ~. B+ z/ h9 w, i
04 EE D4 E9 //QQ号码***) N" T3 P7 Y1 v5 y
00 00 00 //固定全为0- a3 e3 V7 E9 Q. N
00 //接触成功
- c" n: h( g1 k! L% V2 |: Y1 [4D 16 07 CC //登录时间:2010-12-25 23:03:40- e# r& D4 I; E
7D 47 C8 04 //登录IP地址:125.71.200.4& D7 Y7 v: O6 z) ^
00 00 00 00 00 00 00 00 //固定8字节0
0 m& t& ?9 R; O# K00 38 //0091_Token长度:56字节
0 v6 p1 x) o3 G6E F0 FB 35 5F 8E 65 0F 77 E7 A7 D0 AE 69 8C 4D2 m' h! r- [% {* d
EF 43 41 89 BB 79 9C B9 B5 0C 4C 86 5E 8D A0 CB0 q: y! `+ d4 Z0 H( B
84 D7 66 69 CF 63 E9 0D 80 48 F4 E6 C1 30 A7 88. b5 k  O" x% V$ l5 b
7E B0 68 0A E6 8C FC D4. j8 `) z% T; p) j  V# \% M( B
00 //接触成功
' r7 b8 z$ c% m) ~03 //包尾
% x, g6 z6 H6 @
# G8 @% D0 n) x, j" c0x00BA获取验证码
) R$ O) M' ]4 t* k1 @: O) b) Q$ X- n1 Y1 A& Z
如果客户端向服务器发送的数据中,被服务器检测到异常,比如异地登陆,正在别的IP上保持登录,被多次举报等等,服务器会要求客户端输入验证码。
$ C- Y$ P) Q+ R; X8 w1 r$ ^$ M& E# P+ s* G; a
0x00BA发送包+ A' ]. g* w) L4 n$ r+ X: M0 N

  @* A& Y% P/ U! ?7 x0x00BA接收包
* U, }  n# u7 h
2 M  N5 L4 w/ a1 e3 0x00DD密码验证* T% W- _( b+ P

, E* L. X  E, }9 }: P该数据包的作用是将本地QQ的密码发送给服务器端进行验证。
, W* z4 k* o' n+ Q9 ^
( ^6 B  b" L& G) g4 0x00E5数据校验
0 x2 N& H1 E8 D7 Z) R2 v- X8 P  @; Y) p
该数据包主要用于校验前几个数据包的Token数据,如果通过验证,服务器端会返回本次登录的时间和IP地址等信息。: K- R; Z- r+ l+ b4 _
7 g7 G* M. ^. }' a( t! Z* {
0x00E5发送包( h4 g, g) `% y0 Y) T+ N3 U% i5 K
8 G% }. Y. x5 L) u* w3 C
6 0×0030获取会话密钥6 P% C! Y0 d6 k- i4 W

  D$ m. U( s+ ]9 @* r  k9 n# z! |该数据包是QQ登录流程的最后一个数据包,主要用于向QQ客户端返回会话密钥(Session  Key),该会话密钥由服务器端生成,目前不知道其生成算法。但是估计和QQ号码,登录IP,登录时间以及QQ密码有关。/ p% U5 ?6 w8 A: u1 ^0 w

* m" R$ B' \. O  w" H0×0030发送包& w1 W, A. V  h; ^) `! n3 A
, ], J7 ?) a5 n& Z+ z5 v9 |& R
如上面所说,整个过程滴水不漏,看起来每一步都没有参与修改的可能。从开始发送第一个数据包测试认证服务器链路状态,到服务器返回会话密钥,都完美无缺。当然,这是基于我对UDP协议协议了解的基础上发表的看法,但是我对UDP协议的底层实现的了解还远远不够。
- k0 ?; L3 P1 L1 ]7 b, ?$ E6 u! ~7 _1 j( r
没有完美的代码,没有完美的加密算法。其实只要我们深入研究这个登录过程,就一定能找到破解方式。破解方法也许能找到,但不是在我这里,遗憾的是,也不是今天。
3 e4 C9 g, d0 K) L4 T4 c% H7 y: @; ?  G
发表于 2016-4-24 21:25:30 | 显示全部楼层
用心肯定是可以的,时间问题。
回复 支持 反对

使用道具 举报

发表于 2016-6-1 13:46:39 | 显示全部楼层
谢谢分享!!!
回复 支持 反对

使用道具 举报

发表于 2016-7-23 04:08:52 来自手机 | 显示全部楼层
看看吧,说不定用的上。
回复 支持 反对

使用道具 举报

发表于 2016-7-23 05:48:10 来自手机 | 显示全部楼层
用渗透,钓鱼之类好多了。不用去黑腾讯,直接黑别人就行了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

QQ|手机版|小黑屋|☆我要吧☆ ( 豫ICP备13016831号-1 )

GMT+8, 2024-5-14 11:27 , Processed in 0.063242 second(s), 18 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

快速回复 返回顶部 返回列表