首页 » Web前端 » phpwebtoken加密技巧_玄武安然卫士网吧Steam病毒运行流程分析

phpwebtoken加密技巧_玄武安然卫士网吧Steam病毒运行流程分析

访客 2024-12-16 0

扫一扫用手机浏览

文章目录 [+]

更新:2024年4月2日

″内容择要

phpwebtoken加密技巧_玄武安然卫士网吧Steam病毒运行流程分析

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

phpwebtoken加密技巧_玄武安然卫士网吧Steam病毒运行流程分析
(图片来自网络侵删)

┃病毒的运行流程

病毒实行流程

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格式进行发包。

剖析到此结束!

相关文章