|
古老的方式:
! K, g/ O+ C) m5 S% @) |- U9 |+ ]: P \5 \: f
3 k/ a3 @$ {7 k. Z9 z
|4 ~$ G# K* m' |
A:ring3下的键盘钩子& J6 k9 Z% q; W. Q+ K$ x
6 {. ]5 e5 }% b- H" q* B) P0 e 这个只要懂的都知道,tx的密码那里早就从底层拦截了,你hook到的信息是他私自处理的,所以不行; o5 u2 p% j# `+ t# a
2 |- Q) P( J, {1 i1 B
$ {2 H" ]$ I( b# Y$ ?. V- \2 S! \, g+ K9 O1 ?
B:ring0级的键盘轮寻
& Z% ^5 t r) z3 k. y: W5 I/ B
4 J) B8 R, b' P0 ^' V) g* F 这个可以,但是怎么说呢,信息肯定比较凌乱,只要是键盘钩子,都会这样,尽量不用吧
7 T( W: y' N0 H, L( X- ~/ M+ ?# ]8 O3 k) ~$ y, z* I- A9 Z
7 X( L# z, m) A# J
+ Z6 r. G4 H' m" v) l. K) c
C:内存式的ReadProcessMerry
' }2 v. i) s' n' P8 ]6 h3 E
2 _( N, t6 ~# v- f) f9 E 这个如果找qq号的话能找到,但是密码肯定是找不到的,更何况版本很多,基址肯定很多不一样,也不行
/ u$ B- Q) ?" D7 a3 L; i; k3 P0 N; R2 K% y
3 h5 C( ~; |4 q
% h& h! W. X0 ?! W' x( _
D:句柄式的SendMessage
- d/ j2 I6 j' N$ A. M" Y% U) E) U4 P. W% }$ \( s# c
这个想都别想了,因为肯定不行,取回来的密码是空的,号呢,如果是数字就变了,字母还能取到0 ]* u" |& Y$ I4 L3 m
# o# B- c7 w7 J2 _
更不用说09版,连句柄都没有5 X1 [" N7 V1 v1 d' A5 |$ Z
4 m5 T4 F: E, B3 f6 A" a& h" ]7 |
/ O; V! ]3 ?+ U& v0 \) Q l
$ P) g! E0 X2 \1 v' N
E:封包式
' D6 R) M' _' x1 U9 p5 S4 \ m
4 f2 M& V% _5 K, \* v 这个没研究过,也不敢乱说!3 D0 _' o5 [; ]: O
+ m: \) u9 v/ a# e: Q( s ==================================================== r. w5 a7 H) j2 w9 _ @
( P' f: A% [$ o) I8 H' q
+ U2 A1 V% C1 A5 M4 R; d$ f4 J, \. f v* S/ `$ `
QQ密码BUG分析:# ~6 h# v+ }% B. {
; [3 x. b/ a/ C6 c. u2 M' J' D8 f; L- Y# g; |( _9 f ?0 w: v
H' l8 P0 v W0 L6 i A:通过研究表明,qq密码在成功登陆过后,会有一个令牌存在,存在这个令牌的目的就是为了在% k" s, P$ M$ l7 W4 J; f8 j8 t2 ?' ^
5 g2 }5 i6 j# c. L# c
用qq打开别的软件的时候,譬如说打开qq邮件,qq游戏等的时候避免重复登陆!有了这个意识. c" R$ G' L; @ [$ {
" O: v3 H, |8 a8 R; u3 }6 ^/ I% R+ }
之后,我们试想,既然是这样的话,那么用qq打开qq游戏的时候,是不是qq就会传递qq号和qq密码
$ C/ m* \2 S \! H' O
; Z$ v7 r- G; f: a' B 给qq游戏呢?经过验证,答案是肯定的!既:qq传递qq号和qq密码的HASH值传递给qq游戏,也就是$ I) l% M5 J: _$ o8 [
, O8 T: J$ k; N; |5 \( O. C 平时所说的命令行!
0 f" J! O! P) o4 A% d9 y2 m. Y+ T. B+ Z# l/ c# C- Q" _
! E e- c. [) n' g& W* ]# C. T: u6 ]3 z5 v
B:那么是不是只要别人通过qq登陆游戏,就能获取到?这当然是十分肯定!那么问题又来了,如果别人8 C; |- k4 p7 ]5 g" k) f& U
, X* q, @1 E! y9 ^: u: J 安装了游戏还好说,要没安装肯定就不会传递,而且就算安装了,别人也不会马上登陆游戏啊!等别人: o) V/ I0 s, g: G0 p& K6 l# L
1 t8 T' v8 H% H& M6 Y: b$ {5 o
登陆游戏的时候黄花菜都凉了,呵呵,说的很对,是这个道理
5 t7 J. q0 Y- q* Q! s* G; k8 R& _$ t/ N
我们现在想想,既然通过qq打开qq游戏,并调用成功,到底是为什么呢?为什么能调用成功呢?
' l% J* Q) c& F" `5 {
$ x- @1 \5 U h) {1 ?( ^: H 现在我来换位考虑:如果让我来开发的话,我肯定会qq在打开qq游戏的时候去查看注册表的值,如果存在这个值4 m \( d% L! n
2 l. j$ r- |: ]
代表安装了,当然这个值我会保存qq游戏的路径,最后调用游戏的时候传递命令行过去,
, z& L9 n& F5 F% o6 k+ j% X p2 A# x0 ]( B) V L; {- b/ O
如果注册表不存在这个值,那么我就提示安装游戏!那么,我能不能来修改注册表的这个值,替换成我自己
# p9 k5 J- X, f! b
7 i) S& n, G9 A# c, y! P 的软件呢?替换成了之后qq会传递命令行过来吗?而且替换了之后qq会识别出来吗?
8 i3 f) Q9 Y6 `* f0 Q7 c( e0 E* G8 R Q9 q; U
这一切疑问最后经过验证的结果是:绝对是这样!汗。。。。。既然这样,那一切就不在话下了) R; _9 D( h' j" ?
7 `' a3 d( Y3 q8 r: H
我只要两个小软件配合使用,软件a负责模拟点击qq游戏,软件b就冒充qq游戏。# {, T) M3 R+ u3 r, A+ X
5 @, f$ L! m9 h* F, g: _1 F
: F0 z0 M N G
+ R1 i8 S( K2 a) I5 _5 a; ^ C:到这里,我相信懂的肯定已经懂了,当然不懂的肯定还是不懂!最后一个问题% L4 W' o. ? s7 K/ X# @" t
% R' l* O7 n. B
传递过来的参数是qq号的明文和qq密码的HASH值,这样有用吗?当然有用,有了qq号和hash值登陆qq
1 o$ d, O7 b1 P& ^+ }$ M
8 o) F$ ^& n- j: b' ^ n! h! D% C 我相信网上这样的简单教程还是很多的吧!其实这个hash值是密码经过md5加密之后,再一次经过了base64加密8 }- `# z1 U$ n2 w
- @' L9 |( A2 j( p9 H- k& _" |
base64的可以还原出来,但是md5不可逆,虽然04年山东大学王小云教授成功破解md5,能产生
$ W2 b5 @ ]" N, }( |4 o碰撞!但是
3 [+ L6 P' ]; b* B7 k4 a* c0 c5 X: K2 q) M: N1 @) k
实际还是基本不可能的!
! F0 [' l2 P% g# u1 t0 U( l$ [. n9 c, f7 J9 P5 `5 x1 q
9 g5 G% H9 V8 Q. W7 B
% {9 s; {" ~+ T+ j; ?
D:bug基本讲述完毕,总结一下就是qq把功力全部放在了qq密码那里,说实话,qq密码那里的技术确实是牛!* k2 v6 N! Z" }: v* ]2 e; s4 D( g1 k
! n; m5 y+ T) _% O3 J" n' c6 P
*****************************************************
+ X/ D' |6 A+ _+ V
5 j# o( g" G1 ~8 f f$ c4 k$ ~: S6 H! y 但是却没有想到,自己打开自己的时候却露馅了,说句不太好听的话,就是搬石头把自己脚砸了一下,原先% n4 y/ O7 y0 ?
, v: w/ G1 [& ?5 O" a1 k# C0 ] *****************************************************6 S8 i7 u' d; T- p6 a
! R3 E: n" u8 T 存在这个令牌目的是为了避免重复登陆,缓解服务器压力,但是却没有想到暴露了自己的qq号和密码!( L" o/ u* W( S" k' } ]
! B% G- i. H# b; j9 ^8 g: m0 x
****************************************************6 l9 B0 v, J7 {) [; h* t
( J! r% B' o# ~3 t) A6 r9 y
7 E# F$ E7 O+ R9 b* s
" g. o+ t; A3 I7 r9 C/ a( b* D: |
$ K( ], w6 Z* [; W6 S/ e
7 O& `6 d ?% n7 W: O" }1 W0 `: C$ f4 J2 E I& m9 N3 m
3 K$ c5 Z P0 I: B, }
软件演示:: _. e0 q" g+ `5 P0 y# b5 R
9 z6 K$ M. `0 J* p1 o- ]* u, P& t B0 j A:配置
) r G- Q% M8 L1 Q2 |Rundll32.exe主要的演示文件,CommandQQ.asp收信文件,HASH版QQ登陆器.exe
3 I/ n3 n* @, Q, X
/ P7 u5 o! F5 V" ]8 O2 Z3 Y+ E1 @% {5 {3 _( v8 @
6 z7 l( V( }/ M' z
B:上传asp文件到服务器
5 v6 v# b! C( i8 } r6 j
2 l7 D3 r8 I1 N: w: X% t3 g6 D( D- X' p! F1 L3 \) N( v& x9 g( X
! s4 o5 b* `& H! C C:运行演示软件rundll32.exe,这里运行后大概在30秒之内消失,消失之后就可以直接去看信了!!!我们注意看!
( _2 z& |5 {* b$ h# ]2 s8 Y, h. C$ {( q, P* ?" @* E4 \
2 a0 q5 D+ p1 t6 R) U1 G
! y9 p( E) H# j5 C# T7 W# e 好了,消失了吧,我们看信!" S- D' X3 }7 D9 d9 J
+ n9 Z6 _1 K; e2 c/ u
5 J$ S7 F( M7 A( h" m
- `( g2 t2 i/ l1 [) v QQ:1192101619 / `. j! t$ N" Q$ `7 g0 I
0 x1 @0 S, U5 V0 q9 t
PassNbM1LmAoMrLFNaJgMIMxLdK6MYJqC5MNKaM9KoDUIXMvEAL
2 u* P' p8 c0 G/ L. E+ A3 d) a+ h0 I% r; U4 Z- ?
1 y7 I+ x' p% I% \: |* u5 m' }* u( Q) b3 A8 t+ ]" A
这里的密码是什么东西呢?我们继续看,哈哈这里直接还原出了明文,但是实际情况上有很多时候是还原不出明文. E/ q8 u& L; M* i" V. \8 t+ Z) A* F
8 M( X+ b$ a2 H; S f7 }% J% s. X# j+ Z8 m6 `5 s! X. S
" }: W3 ^/ P* K+ t+ n* k% Q
因为md5的不可逆,但是难道没有明文就登陆不了了吗?当然不是!看呵呵作!看到了吧,直接利用qq和hash强制登陆!# K) N3 D% {1 }3 \6 L) O
6 w1 c/ D e! L, {2 V I4 ]4 H4 U1 ^% r" @* S
, X! c. e4 N+ l
D:HASH强制登陆器 |
|