11月15, 2013

“神奇”的qq粘虫之旅

QQ聊天软件大家都不陌生,QQ号上除了有自己的亲人、同学外,还会有很多企业之间的业务联系,所以说一旦QQ账号被盗取,可能导致很多问题,比如冒充本人向QQ上的亲朋好友诈骗,发布虚假恶劣的消息邮件等等,这样的例子不胜枚举。

因此,个人QQ号的重要性不言而喻,虽然腾讯也对QQ账号的安全做了很多保密措施,但在实际场景下,还是远远不够的。

比如以下情景:

某位小哥在群里上传了一个文件,名为“本校十大校花相片.7z”的文件

1

哇,这还了得,赶快去看看我心目中的那个她是不是名列花魁。

下载、解压、双击,动作行云流水,一气呵成。

咦,QQ怎么掉线了?断网了?

2

也没见着图片,赶快上群里问问怎么回事?

娴熟的输入密码,点击登陆,OK,终于上线了。

这时候,你的QQ账号和密码很有可能已经被被悄悄的发送到了盗号者的手中。

如果这时你去翻翻QQ的登陆记录(前提是QQ还没有被其他人恶意修改密码)很有几率看到类似以下的这样的结果:

3

这个测试用的QQ的登陆记录只有划红线的是自己登陆的,广东和广西的很有可能是盗号者登陆的!

如果你的反应够及时的话,立马修改自己的密码应该能保证账号的安全性,而如果反应不及时,那接下来,一旦在盗号者看来QQ号有价值的话,很有可能会通过你的QQ号去做点什么。

回归到问题本身,账号是怎么被盗的?

最近一段时间笔者见到的盗取QQ账号的木马(以下简称QQ或者粘虫),大多数都是这样的一种或者说类似的手法:

查找QQ是否存在,若存在QQ窗口则发送热键消息,随后模拟弹框,最后伪造QQ掉线后重新登陆的界面,等用户输入,木马就可以拿到密码,直接从本地将号码和密码发往木马服务器。这种发送过程通过本地抓包一般都能抓的出来。

样本大多数都是这样的,

4

一开始常见的是exe文件(或者伪装成图片格式的exe文件)带一个数据文件。

数据文件里面保存是一段脚本,

5

之后有发现样本将vbs脚本里面的内容作了加密,需要由exe来读取加密,还原后就是之前见到的内容了。

脚本文件加了密,如下:

6

在OD中动态解密,解密后的内容:

7

粘虫exe文件的工作过程:

首先查询当前置顶窗口的Class是否是TXGuiFoundation,并将此字符串和已知的QQ窗口Class: TXGuiFoundation比较,也就是查看是否存在QQ进程。

8

如果确认QQ进程存在,那么就查找任务栏,给explorer发送热键消息,

9

这里是发送热键消息强制所有窗口最小化。

接着,弹出模拟的窗口,使用户误以为QQ掉线,需要重新登陆,

同时给新弹出的窗口填充相关信息,比如QQ号:

10

在这一步骤,有些木马制作者制作的木马比较简单,一旦获取到密码后,不管用户输入的是什么,拿到用户名密码就往自己的木马服务器发送,比如:

某个木马服务器的IP为61.XXX.XXX.25

11

也就是说即使用户随便输入错误的密码进去,程序也会把错误的密码发送给盗号者。

而有些制作者则会利用一些方式去验证用户所输入的密码是否正确,

比如木马会先拿到用户输入的用户名和密码,由程序自动去访问xx.xx.qq.com

12

利用腾讯的接口对用户名密码做登陆验证,看看用户输入的密码是不是正确的。

13

14

确认用户的密码正确后,粘虫才将用户的账号和密码发送给盗号者的服务器上。

然而就在今天,笔者发现了一个比较“神奇”的QQ粘虫盗号木马。

之所以“神奇”,是因为之前碰到过的粘虫最关键的一步都是获取到用户的账号和密码后,会直接将用户名密码通过本地直接发送到盗号者的HTTP服务器上去的。

比如上面的:

15

这样,木马作者使用的服务器能通过抓包分析到。

但是这次碰到的情况的却不是这样的,通过抓包,半天也没有发现木马作者服务器。

只出现了这么一个地址:

16

对应的是这么一条URL

http://tool.chinaz.com/Tools/pagecode.aspx

这个URL打开后是这么样的,正常显示,也没发现有什么异常的。也没发现有挂马的情况的。

17

只是一个查看网站源代码的站长工具。

但是我们可以肯定的是QQ账号和密码确实被发出去了,而且发送到了木马服务器地址,于是我们再深入分析:

最后细心发现抓包数据中:

18

这其中的数据包含了QQ账户和密码的相关信息。

但是这些数据是怎么最终发到木马作者手中的呢?

最后,经过某同学的提醒,终于知道了。

木马作者是通过QQ粘虫访问http://tool.chinaz.com/Tools/pagecode.aspx,然后利用第三方提供的服务(比如站长工具这个页面允许通过POST来提交查询数据),进而将用户的账号和密码以及相关的IP发送到盗号者的服务器上的,所以在本地抓包的话,根本就不会出现盗号者的服务器地址。

http://tool.chinaz.com/Tools/pagecode.aspx中,利用页面提供的查看源代码这个服务,随便填写一个查询的网址,比如cctv的。

19

20

input name=”q”,数据正好是以q=XXXXXX开头的。

和我们发现的数据包正好吻合。

21

在另外一个数据包中找到一下信息可以验证。

22

总得来说,这个QQ粘虫利用了他山之玉(比如一些网站提供的服务)作跳板,完成了自己目的(数据发送),从而可以避免直接在本地被一些检测工具抓到其访问木马服务器。

QQ粘虫木马制作者用到的技术没有多高深,但也是绞尽脑汁,比如,勤奋地对木马免杀、打一枪就跑地更换服务器地址,给木马起带有迷惑性的名字之类,再加上这次的,利用第三方提供的服务来发送用户数据,毕竟http://tool.chinaz.com/Tools/pagecode.aspx本身没什么问题,但是容易被有心人利用作为攻击环节。

虽然安全软件能够及时查杀这类的木马并进行防御,但是攻击和防御总是相对的,所以保护自己的网络安全,最好的方法就是养成良好的上网习惯,遇到陌生的文件或者邮件都不要轻易打开,这样才能在安全软件的帮助下获得更安全的互联网体验。

本文链接:https://blogs.360.net/post/473.html

-- EOF --

Comments