棋牌游戏携带的远控木马分析

来源:互联网 发布:骑马与砍杀捏脸数据男 编辑:程序博客网 时间:2024/05/15 00:30

1. 棋牌游戏木马由来简介

棋牌游戏是一款PC,Android,苹果三端互通的棋牌软件,由于其丰富的网络棋牌游戏种类,因此深受广大游戏爱好者喜欢,且该游戏是支持充值积分的,且游戏玩家之间可以互赠游戏积分,最重要的是该游戏积分可以体现成RMB。很多黑客木马作者正是看到这点,就想方设法造一个假的跟官网一模一样的网站来钓鱼用户,且该假站的游戏安装包还是带远控木马的,以便黑客达到盗取游戏用户积分,换取钱财。

2. 今天就来分析一个假冒的棋牌游戏

3. XXlobby.exe是一个安装包,我们利用反编译该安装包后,得到该安装包的打包脚本,分析该打包脚本后,我们发现该安装包在安装XX棋牌游戏的时候,除了释放正常的XX棋牌游戏文件外,还在userappdata(Application Data)目录下释放了两个文件:Tencent.exe和game.dat,然后直接将Tencent.exe程序运行起来,其中Tencent.exe并非腾讯的官方文件,它实际上是一个远控木马解码loader,而game.dat是一个被加密了的具备远控功能木马dll。其截图分别如下:

打包脚本部分截图:

打包程序直接运行Tencent.exe程序脚本截图:

Tencent.exe文件截图:

game.dat文件内容截图:

4.      我们动态调试tencent.exe发现,该程序加了UPX的壳,脱完壳以后,用IDA静态看,该Tencent.exe会内存加载并解密该game.dat,将解密出来的dll直接加载运行起来。

其中sub_403200的静态代码截图如下:

5.      用OD动态跟踪Tencent.exe来加载并解密game.dat的整个过程如下:

5.1 Tencent.exe加载game.dat

5.2 Tencent.exe将game.dat加载到内存,内存地址是0x00C30000,内存大小是0x1DB000,如下图:

未解密的初始数据的样子:

5.3 为解密内存的game.dat数据,该木马先用一个密钥字符串” WorkIngMan”,与一个0-255数字的数组进行运算,然后得到一组用来与加密game.dat运算的准备数据,数据内容具体如下:

0xFF大小的0-255的数据数组,经过运算,变成如下样子:

该数组与WorkIngMan进行运算的具体静态代码如下:

5.4 在子函数sub_403180中,进行了game.dat的解密工作,解密后的代码样子如下:

解密game.dat的静态代码如下:

5.5 接着对该解密出来的dll进行了内存重定位,然后直接调用该木马dll的导出函数config(),得到该函数的内存地址为:0x 1000C5B0,然后直接调用运行起来,如下图:

5.6 当该解密的内存运行起来时候,会连接116.62.154.237服务器,然后发送中木马机器的一些信息,比如释放安装杀毒,以及安装杀软的名称,系统版本等等,最后就发保持在线的心跳包:


6.      我们从内存中将重定位后的dll完整dump出来,是一个完整的dll,且该dll还有一个导出函数config(),


7.      我详细分析该dll,发现该dll是一个功能齐全的远控木马,其主要的功能在子函数sub_10006590中,其具备的功能罗列如下:

查找系统中的进程:

重新下载木马,并将其运行起来:


加载驱动:


8.      该远控最有趣的功能是,如果该黑客想跟中招用户聊天,就会弹窗可以互相交谈: