2011-12-21来源:金山安全中心
摘要:Q币大盗分析报告
关键词:Q币大盗 分析 报告
图1 病毒程序图标
这是一个以盗Q币为主要目的的盗号木马,采用UPX加壳。
典型行为:
1.在登陆QQ的机器上,QQ会莫名其妙的退出;
2.QQ有的时候会弹出彩色的异常登录提示框,提示用户输入验证码;
3.QQ的Bin目录下出现MSIMG32.dll、SVulStrong.dat等文件。
4.如果被盗的QQ里有Q币、Q点,则下手窃取。否则,就不动声色继续潜伏。
5.病毒由一个母体文件释放的多个不同文件共同完成盗取Q币或Q点的目的,各病毒组件的结构关系如下图所示:
1. 病毒通过钩子技术盗取qq的用户名和密码。
1. 查询用户QQ账户信息,查询Q币或Q点,余额不为0的,就盗号,将QQ账户和密码发到病毒服务器。
母体文件行为较为简单:检测qq,如果存在的话则结束qq,并且释放病毒文件到QQ的Bin目录,为盗取QQ及相关财产做前期铺垫工作。
1、创建名称为“...TM345”的互斥量,如果创建失败,退出自身进程,防止多个实例运行,然后释放该互斥量。
2、创建进程快照,遍历进程查找是否有QQ.exe或者TM.exe进程运行。
3、如果没有找到QQ.exe进程,通过注册表判断当前系统是否已经安装qq,并尝试通过注册表获取QQ安装路径。
病毒遍历注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\MUICache下的键值,查找是否有QQ2011、QQ2010、QQ、QQ2009、TM2009的键值信息,用于查看用户是否安装了QQ并找到该目录文件。如果没有找到,会继续创建进程快照查找是否存在qq.exe进程,如果没有找到,会循环遍历进程查找QQ进程。
4、删除QQ相关记录信息,使得QQ无法自动登录,需手动输入密码。(狡猾的病毒作者用这招来欺骗用户重新输入QQ帐号密码)
A.如果找到QQ.exe进程,查找QQ安装目录的bin目录下是否存在AutoLogin.dat、msimg32.dll,存在则删除相应文件。
B.如果有文件C:\ProgramFiles\Tencent\QQ\Users\All Users\QQ\Registry.db,则使用StgOpenStorage函数打开Registry.db文件,获得Main_LoginAccountList,销毁记录,从而再次登录时需要手动输入密码。
5、在QQ安装目录的bin目录下创建文件msimg32.dll(伪造系统文件)和SVulStrong.dat文件,并设置文件属性为系统隐藏。
注:QQ启动过程中会优先启动自身目录下的msimg32.dll。
6、遍历进程查找QQ.exe进程,如果找到,结束该进程;然后继续遍历进程查找QQ.exe进程,查看是否已经结束该进程。
7、创建进程,以命令行方式删除病毒源文件自身,退出自身进程。
8、QQ启动过程中,加载木马程序创建的msimg32.dll。
此模块为病毒核心模块,主要功能为盗取qq号和密码及对应QQ账号的QQ币、Q点。
此文件是伪造的系统文件,释放到qq的安装目录下会使得qq运行时自动加载此文件。当用户启动QQ后,伪造的msimg32.dll被QQ加载运行,并执行以下行为:
1. 加载系统真正的msimg32.dll文件
2. 修改qq载入的文件,从而hook关键函数,获得账号密码。
a. 使用多种方法干扰QQ帐号保护模块的正常运行,截取QQ帐号。
b. 在MSIMG32.dll内存块中搜索用户输入的QQ密码。
3. 传输QQ账号密码,查询q币和q点信息。
A检测QQ是否上线成功。
B.上线成功,则检测当前用户Q币Q点的情况。
病毒使用URL的方式访问我的钱包,登陆之后查询QQ币信息,把需要的验证码下载到本地,以虚假的异常登陆方式骗取用户输入验证码。
1) 病毒在后台,偷偷通过URL直接访问“我的钱包”。
正常情况下,QQ用户这样访问“我的钱包”:点击QQ主程序界面左下角的企鹅图标->所有服务->财付通->我的钱包。如下图所示:
而病毒程序MSIMG32.dll则通过以下地址(URL),直接访问“我的钱包”
http://ptlogin2.tenpay.com/clienturl_wallet?clientuin=%s&clientkey=%s&mail=%s&ADUIN=%s&ADSESSIO
https://wallet.tenpay.com/main/cgi-bin/v1.0/wallet_loginto_cft.cgi?COOKIE_uin=%s&COOKIE_skey=%s
图5 病毒通过Url直接访问我的钱包
2) 查询QQ币信息和QQ点信息。
A.通过https://www.tenpay.com/cgi-bin/v1.0/getimage.cgi?t=1320%lu获得验证码的图片
B.获取到验证码的图片之后,会调用另一个病毒文件SVulStrong.dat的相关函数,来诱骗用户输入验证码,然后查询QQ币和QQ点信息。
图7 查询Q币Q点信息填写验证码
通过SVulStrong.dat,创建假冒的QQ异常对话框,诱骗用户输入验证码。(见接下来对病毒组件SVulStrong.dat的分析)
C.解析相关XML文件,得到Q币Q点信息。
具体:通过URL可以获得一个包含有Q币Q点等QQ帐户信息的XML文件,通过解析XML文件,即可以得到想要知道的Q币Q点等信息。
XML中包含以下几个节点:
<jifen_balance>15分</jifen_balance>
<not_check_dirty_list/>
<qb_balance>0.00个</qb_balance>
<qb_balance>0.0点</qd_balance>
<retcode>00</retcode>
<retmsg>交易成功</retmsg>
如果<retmsg>包含“成功的字样”,则证明已成功返回Q币等信息,进而读取节点<qb_balance>(Q币的信息)和<qb_balance>(Q点)的信息。
1. 向病毒服务器发送QQ账号密码。
A.如果成功返回,则判断QQ币和QQ点是否为零。
B.不为零,则向病毒服务器发送QQ账号和密码。
服务器地址为:http://121.10.107.117:8015/kkasdf1/lldfa1.asp,经查证,此IP为淮安市残联,黑客霸占了这台服务器,用来收集盗窃来的QQ帐号密码。
此文件功能较为简单,主要就是弹出假冒的QQ异常框。
参考下图可以识别“帐号存在异常”对话框的真假,其中彩色验证码图片为假:
1. 释放虚假的系统文件msimg32.dll到qq目录中,使得QQ自动加载,运行病毒。
2. 然后通过挂接键盘输入来截取用户输入的帐号密码,同时修改QQ安全保护相关代码,破坏qq的密码保护机制。
3. 获得账号密码之后,后台偷偷查询Q币、Q点信息,再欺骗用户填写验证码。将Q点或Q币余额不为零的帐号密码发送到黑客服务器。
4. 病毒突破了qq的密码保护,在同类病毒中尚不多见。