玄武安全卫士网吧盗号分析-qq敏感数据获取程序

原文链接 https://mp.weixin.qq.com/s/rrGSoNBCUzuU6GT-XwQ2Gw
近期,玄武安全卫士威胁检测平台发现一可疑程序,安全工程师第一时间进行分析,发现此程序为盗号木马,具有隐蔽性强,操作灵活等特点;木马通过将任务管理器作为傀儡进程,从网站拉取功能dll并加载,执行读取qq程序数据。
使用获取到的数据可以在用户无感的情况下对QQ发广告,拉好友,建群引流等操作;如果对数据做进一步加工,甚至可以用来对WeGame等进行授权登录,进而危害到用户游戏账号安全。安装玄武安全卫士可有效防御此类盗号。
一、数据获取前准备工作
1.样本执行流程图

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

程序使用UPX压缩壳。遍历进程快照。通过路径创建ctfmon.exe和taskmgr.exe进程,并且携带参数;
因为木马程序为32位程序,拉起系统32位任务管理器作为傀儡进程。第一个参数为样本程序的进程ID。第二个参数为程序的文件路径。用此进程ID在傀儡进程中关闭样本程序的加载器。并且删除样本程序磁盘文件。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

因为是木马程序自己创建的进程,直接使用句柄打开傀儡进程并在傀儡进程里面申请内存空间。在申请的空间内写入恶意代码。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

从第一次写入到内存中的数据可以看到写入的是一个程序头。大小只有0x1000。可以推断到程序会提前把要写入的傀儡进程的恶意代码进行文件不落地的操作,自己完成程序加载的一套流程,比如修复导入表,重定位表等信息。之后再把修复过的内存写入傀儡进程中去;

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

在把所有修复过的内存都修复过并写入傀儡进程之后,需要修改傀儡进程的EIP,让傀儡进程执行修复过的恶意代码。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

2.傀儡进程创建
傀儡进程获得启动执行参数,读取参数进行操作,此行为属于病毒木马的常规操作。关闭掉加载器程序进程,删除加载器在磁盘中的文件,抹去病毒程序痕迹。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

傀儡进程会访问腾讯的一个接口,通过这个接口获得QQ号昵称和头像等信息。既然可以获得昵称,就可以联想到把QQ昵称设置为端口号,IP等信息来进行动态获取服务器地址的操作。所以猜测无端访问QQ也是这样的操作。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

HTTP请求下载first.dll并加载,使用导出函数hello。DLL在执行的时候多线程同时开工。下面分别讲述线程不同的操作。
二、数据获取过程
1.第一线程执行流程图

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

检测到QQ进程后,会在QQ进程内存中写入多个字符串,分别是“?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z”,
“KernelUtil.dll”,“buf32ByteValueAddedSignature”。
之后写入SHELLCODE。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

运行完shellcode,直接释放这段内存。上面的shellcode是为了获取到
?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z
这个导出函数的函数地址。之后远程读取QQ内存,查看
?GetSignature@Misc@Util@@YA?AVCTXStringW@@PBD@Z的函数地址。
之后再次编写shellcode调用刚获得的函数地址调用这个函数。
函数的第一个参数为传入传出参数,是获得ClientKey的字符串地址,这个地址也是提前申请过的内存。第二个参数为字符串“buf32ByteValueAddedSignature”

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

调用结束后,在内存读函数第一个参数的内存地址就可以获得到ClientKey。
2.第二线程的执行流程

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

第二个线程的流程相对第一个线程,技术手段就少了很多。通过各种特征搜索字符串,定位不同的数据信息。搜索bufSigSession特征使用了下面的特征码搜索内存

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

搜索到的内存如下

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

内存搜索的特征字符串是一个关键点,但后面0X38字节更为关键。这个是SigSession对应的数据长度。
下面是线程二搜索内存使用到的特征。

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

内存展示的方式为struct string { int flag; int len; char[] buf;}。
bufsessionkey搜索到的内存如下

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

bufTGT搜索到的内存如下

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

bufTGT_GTKey搜索到的内存如下

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

AFCB的内存如下

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

AFCB是获得当前扫描内存的QQ号。特征码跟随的0x04标识之后的DWORD代表一个QQ
如下图

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

例如QQ 号123456789对应的就是 0x75bcd15。
三、获取数据并发包
获得全部数据并进行组包。将QQ,token,以及QQ版本号组装字符串,把获得到的数据加密发送给服务器

玄武安全卫士网吧盗号分析-qq敏感数据获取程序

分析到此结束!
 
四、附件
文件 MD5
first.dll 0af41c94936643fd95de4d53768c0fc7
second.dll b9ae54452f9f863a7ae2d87708d349b3

 

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本站转载作品版权归原作者及来源网站所有,原创内容作品版权归作者所有,任何内容转载、商业用途等均须联系原作者并注明来源。