网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

原文链接 https://mp.weixin.qq.com/s/YZ1dt0frsgGlzuhBgvlI7g 安装试用联系本站客服!

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

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

点此进入网吧安全卫士专题页面

一 病毒的运行流程

    1.病毒执行流程      


网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士          

    2 盗取steam执行流程          


网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

 

二 执行前期准备

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

    运行ZuxLe1MHQCGK[1].exe的时候会在C盘写下一个名字叫QdeA4vziB05R.exe的文件。释放文件后运行QdeA4vziB05R.exe,而QdeA4vziB05R.exe进行的就是盗号的前期工作。
网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

    2.QdeA4vziB05R.exe的运行动作

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士     

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

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士


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


网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

 

    3.程序自删除:

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

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

 

三 盗取steam过程  

 

    1.DLL劫持原理:

 

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

    2.静态分析msacm32.drv

    查看msacm32.drv里面有没有可用的信息。使用IDA打开msacm32.drv。显示结果与正常程序不同,因为程序上了壳来防止分析。静态分析图如下图所示。
网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士              

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

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

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

    4.对loginusers.vdf的操作

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

    5.取得需要的steamtoken

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士
    使用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市场交易等操作;

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士
直接就可以看到了token的存放位置。

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

    把搜索到的数据进行base64解码。能够看到可见的字符串。字符串的显示为json格式。之后判断iss对应的数值是否为“steam“;
网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士  

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士
如果为steam那个就是需要的 token,如果不是返回token错误.拿到正确token停止内存搜索。到这里就已经获得到了需要的token的全部信息。


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

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

网吧steam盗号程序分析-msacm32.drv-玄武网吧安全卫士
分析到此结束!安装试用联系本站客服!

收藏 (0) 打赏

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

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

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