网吧steam盗号程序分析——msacm32.drv

shykx

 近日,一网吧运维在网吧服务器游戏文件夹发现异常文件,怀疑是木马程序,将该文件发给玄武安全卫士,经过工程师分析,确定此文件为木马病毒程序,通过Dll劫持steam、Wegame进行盗号洗号,网吧安装玄武安全卫士可以有效防御此类病毒攻击;

     以下为病毒运行分析(由于篇幅有限,本文只对steam盗取过程做详细展开分析):



一 病毒的运行流程


              

    1.病毒执行流程      

   
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第1张          

    2 盗取steam执行流程          


640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第2张    

 

二 执行前期准备  

            

    1.运行病毒的执行程序ZuxLe1MHQCGK  

              

    运行ZuxLe1MHQCGK[1].exe的时候会在C盘写下一个名字叫QdeA4vziB05R.exe的文件。释放文件后运行QdeA4vziB05R.exe,而QdeA4vziB05R.exe进行的就是盗号的前期工作。             
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第3张    

    2.QdeA4vziB05R.exe的运行动作


    查看释放程序动作,发现该程序搜索steam关键字搜索结果如下图所示;

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第4张   

    以上可知:该程序针对不同的无盘操作系统,从C到J每个盘符寻找steam的路径并且写入文件。该程序对wegame执行同样的操作;

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第5张     

    程序搜索steam\\msacm32.drv。之后查看steam目录里面msacm32.drv。发现steam目录没有msacm32.drv;

    运行QdeA4vziB05R.exe,找一个关于steam的字符串下断,直接命中字符串;

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第6张

             
    可以看到所有的字符串都有40666a的执行函数。单步进入函数内部往下走发现一个关键的API<调用的API是
CreatefileA>;

             
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第7张              

    目前机器上不存在这个路径,创建失败,所以该程序把参数一改成本地存在的路径    修改成C盘下面的test文件夹,可以看到已经生成了新文件:msacm32.drv。

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第8张

              

    3.程序自删除:


    接着看程序后面还有什么操作。发现QdeA4vziB05R.exe还会在桌面创建一个名字为kill.bat的批处理文件;            
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第9张              
    编辑打开批处理文件。简单明了就是删除文件的操作。最后执行kill.bat批处理完成退出操作,程序运行结束。批处理内容如下所示;

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第10张

    通过行为可以看出QdeA4vziB05R.exe在指定的目录下面写下对应的文件。之后创建批处理,运行批处理抹去自己的存在痕迹。

              

三 盗取steam过程  

                

    1.DLL劫持原理:  

            

    DLL劫持的原理为系统运行程序会加载程序所依赖的DLL文件。如果本地目录有依赖的DLL文件就会直接加载,如果没有则去系统目录加载。同时DLL劫持之后会直接运行在程序内部,绕过一些常规的驱动保护禁止读写STEAM内存的防御方法。

    2.静态分析msacm32.drv  

    查看msacm32.drv里面有没有可用的信息。使用IDA打开msacm32.drv。显示结果与正常程序不同,因为程序上了壳来防止分析。静态分析图如下图所示。             
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第11张              

    3.运行STEAM伴随msacm32.drv的DLL劫持     

    双击运行STEAM,界面没有任何的变化,附加steam看看内存都有什么变化              
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第12张              
    查看内存发现已经加载msacm32.drv。这时候就明白了,原来这
msacm32.drv就是对steam进行简简单单的dll劫持,让自己加载进去steam。             
    进入msacm32.drv的内存地址看看有什么有用的信息没。打开msacm32.drv的内存看看汇编代码

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第13张              
    汇编代码显示正常,那么在内存中搜索一下字符串看看。             
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第14张              
    可以看到很多字符串的信息,那么那个壳看来也就是防止静态分析,动态运行的时候直接就把自己的代码展开放在内存中了。从图中可以看到一个关于steam登录信息相关的vdf文件,以及还有其他的信息。
                   

    4.对loginusers.vdf的操作               

    拼接上steam路径获得loginusers.vdf文件的所在位置。之后就是打开文件,如果文件可以打开那么就读取文件的内容。             
    再往下面执行看看读取文件之后还有什么操作在里面。在函数返回之后判断是否存在读取成功,成功后下面有一个字符串是"AccountName",结合文件信息就可以猜测到这个操作是用来获取当前登录的STEAM的账号信息,并把用户名存在全局变量msacm32.drv的基地址+0x49597的地方。
                

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第15张              
      

    5.取得需要的steamtoken               

        5.1搜索steamwebhelp内存获得网页token。在读取账号成功之后程序才会进行下一步操作。 从自身加密的字符串"636475717D3E756875D5984C2A288"中获得"steam.exe"字符串,之后通过进程快照拿到steam的进程句柄。接着从其他的加密字符串中解密"steamwebhelper.exe"字符串 。(动STEAM的时候有很多steamwebhelper的进程启动);

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第16张              
    使用STEAM的进程句柄调用API 
CreateToolhelp32Snapshot获得目前全部正在运行的steamwebhelp.exe的进程ID。之后通过 ntdll里面获得ZwReadVirtualMemory函数地址。现在有了全部的进程steamwebhelp.exe的进程ID就可以读取全部的的steamwebhelp.exe进程的内存;

    在读取内存的时候会压入"73 74 65 61 6D 4C 6F 67 69 6E 53 65 63 75 72 65 3D"这个字符串,第一感觉像是机器码。写进内存看看是什么样子的汇编 。汇编代码看上去不对劲,再看下内存窗口steamLoginSecure。这个东西是steam登录之后会返回的一个webtoken,使用这个token可以通过发包进行steam市场交易等操作;

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第17张

    既然是字符串再加读取内存,直接就想到搜索内存。使用CE打开steamwebhelp.exe搜索一下看看;

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第18张              
    直接就可以看到了token的存放位置。

    5.2搜索客户端token。着往下执行会发现还有一个暴力搜索内存的字符串"eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0“通过这个字符串向后取内容取到0x0结尾为止。但是使用这个字符串来搜索的时候会搜索到很多token。病毒会把这些搜索到的字符串的都放在一个数组里面。遍历一个steamwebhelp.exe结束后检测这些搜索到的数据是否有自己需要的那个token;

    把搜索到的数据进行base64解码。能够看到可见的字符串。字符串的显示为json格式。之后判断iss对应的数值是否为“steam“;   
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第19张  

           
640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第20张              
    如果为steam那个就是需要的 token,如果不是返回token错误.拿到正确token停止内存搜索。到这里就已经获得到了需要的token的全部信息。


    6.获取本地信息发送数据返回服务器


    通过一个URL获得本机的外网IP,把获得到的数据,本地IP以及时间,steam的路径等信息组合成json格式进行发包。                   

640.png 网吧steam盗号程序分析——msacm32.drv  病毒分析 第21张              
    分析到此结束!


免责声明:本文来自玄武安全卫士,不代表爱分享吧的观点和立场,如有侵权请联系本平台处理。

您需要 登录账户 后才能发表评论

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,409人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码