更新:2024年4月2日
″内容择要
记录网吧运维在网吧做事器游戏文件夹创造非常文件,疑惑是木马程序,将该文件发给玄武安全卫士,经由工程师剖析,确定此文件为木马病毒程序,通过Dll挟制对STEAM、Wegame进行盗号、洗号,网吧安装玄武安全卫士可以有效防御此类病毒攻击;

┃病毒的运行流程
病毒实行流程2.盗取steam实行流程
┃实行前期准备
1.运行病毒的实行程序ZuxLe1MHQCGK:
运行ZuxLe1MHQCGK[1].exe的时候会在C盘写下一个名字叫做QdeA4vziB05R.exe的文件。开释文件后会运行QdeA4vziB05R.exe,而
QdeA4vziB05R.exe进行的便是盗号的前期事情。
2.QdeA4vziB05R.exe的运行动作:
查看开释程序动作,创造该程序搜索steam关键字搜索结果如下图所示;
以上可知:该程序针对不同的无盘操作系统,从C到J每个盘符探求steam的路径并且写入文件。该程序对wegame实行同样的操作;
程序搜索steam\\msacm32.drv。之后查看steam目录里面的msacm32.drv。创造steam目录没有msacm32.drv;
运行QdeA4vziB05R.exe,并找一个关于steam的字符串下断,直接命中字符串;
可以看到所有的字符串都有40666a的实行函数。单步进入函数内部往下走创造一个关键的API<调用的API是CreatefileA>;
目前机器上不存在这个路径,创建失落败,以是该程序把参数一改成本地存在的路径 修正成C盘下面的test文件夹,可以看到已经天生了新文件:msacm32.drv。
3.程序自删除:
接着看该程序后面还有什么操作。创造QdeA4vziB05R.exe还会在桌面创建一个名字为kill.bat的批处理文件;
编辑打开批处理文件。大略明了便是删除文件的操作。末了实行kill.bat批处理完成退出操作,程序运行结束。批处理内容如下所示;
通过行为可以看出QdeA4vziB05R.exe在指定的目录下面写下对应的文件。之后创建批处理,运行批处理抹去自己的存在痕迹。
┃盗取steam过程
1.DLL挟制事理:
DLL挟制的事理为系统运行程序会加载程序所依赖的DLL文件。如果本地目录有依赖的DLL文件就会直接加载,如果没有则去系统目录加载。同时DLL挟制之后会直接运行在程序内部,绕过一些常规的驱动保护禁止读写STEAM内存的防御方法。
2.静态剖析msacm32.drv
查看msacm32.drv里面有没有可用的信息。利用IDA打开msacm32.drv。显示结果与正常程序不同,由于程序上了壳来防止剖析。静态剖析图如下图所示。
3.运行STEAM伴随msacm32.drv的DLL挟制
双击运行STEAM,界面没有任何的变革,附加steam看看内存都有什么变革
查看内存创造已经加载msacm32.drv。这时候就明白了,原来这个msacm32.drv便是对steam进行简大略单的dll挟制,让自己加载进去steam。
进入msacm32.drv的内存地址看看有什么有用的信息没。打开msacm32.drv的内存看看汇编代码
汇编代码显斧正常,那么在内存中搜索一下字符串看看。
可以看到很多字符串的信息,那么那个壳看来也便是防止静态剖析,动态运行的时候直接就把自己的代码展开放在内存中了。从图中可以看到一个关于steam登录信息干系的vdf文件,以及还有其他的信息。
4.对loginusers.vdf的操作
拼接上steam路径得到loginusers.vdf文件的所在位置。之后便是打开文件,如果文件可以打开那么就读取文件的内容。
再往下面实行看看读取文件之后还有什么操作在里面。在函数返回之后判断是否存在读取成功,成功后下面有一个字符串是"AccountName",结合文件信息就可以预测到这个操作是用来获取当前登录的STEAM的账号信息,并把用户名存在全局变量msacm32.drv的基地址+0x49597的地方。
5.取得须要的steamtoken
5.1搜索steamwebhelp内存得到网页token。在读取账号成功之后程序才会进行下一步操作。 从自身加密的字符串"636475717D3E756875D5984C2A288"中得到"steam.exe"字符串,之后通过进程快照拿到steam的进程句柄。接着从其他的加密字符串中解密"steamwebhelper.exe"字符串 。(在启动STEAM的时候有很多steamwebhelper的进程启动);
利用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市场交易等操作;
既然是字符串再加读取内存,直接就想到搜索内存。利用CE打开steamwebhelp.exe搜索一下看看;
直接就可以看到了token的存放位置。
5.2搜索客户端token。接着往下实行会创造还有一个暴力搜索内存的字符串"eyAidHlwIjogIkpXVCIsICJhbGciOiAiRWREU0EiIH0“通过这个字符串向后取内容取到0x0结尾为止。但是利用这个字符串来搜索的时候会搜索到很多token。病毒会把这些搜索到的字符串的都放在一个数组里面。遍历一个steamwebhelp.exe结束后检测这些搜索到的数据是否有自己须要的那个token;
把搜索到的数据进行base64解码。能够看到可见的字符串。字符串的显示为json格式。之后判断iss对应的数值是否为“steam“;
如果为steam那个便是须要的 token,如果不是返回token缺点.拿到精确token停滞内存搜索。到这里就已经获得到了须要的token的全部信息。
6.获取本地信息发送数据返回做事器
通过一个URL得到本机的外网IP,把获得到的数据,本地IP以及时间,steam的路径等信息组合成json格式进行发包。
剖析到此结束!