一些乱七八糟的词
有一天接到一个样例,说是游戏运行后,在浏览器里访问某游戏官网会重定向到另一个网站,在浏览器里搜索关键词也会跳转。由于我技术不太好,看了将近一个月,所以写了这篇文章。截图里的PID有时候可能会不对,请见谅,因为我一调就跑飞了。
基本信息 样本概述
该样本属于供应链劫持,分发传奇 Login应用程序的服务器遭到黑客攻击,导致软件包被捆绑恶意程序,从而劫持网站。
样本发现日期
2021 年 7 月 8 日
样品类型
恶意促销、恶意捆绑
样本文件大小
文件大小(字节)
示例文件 MD5 校验和
MD5,
示例文件 SHA1 校验和
SHA1,
样本文件校验和
,0753
可能受到损害的系统
x86
相关漏洞
未涉及
受感染的系统和网络症状文件系统更改
样本主体从服务器获取数据,释放.jpg、.exe、.exe
.exe程序释放驱动程序
注册表更改
其他发布的程序对注册表所做的修改没有什么可疑,但是驱动程序却操作了注册表。
网络症状
异常样本执行后,发起TCP连接。
我们启动登录,配置抓包,发现某个地址被重定向到了
样品参观
https://pz.520found.com:86/dll.txt
下载并访问
静态分析详细解析
由于是游戏启动器,所以我们需要区分游戏行为、恶意软件行为、外挂行为,这其实给我们的分析带来了很大的难度。我们在分析字符串的时候发现,这里面有对.dll的调用,还有网络请求。
跟进一下,发现不仅调用了.dll,还调用了.dll提供网络请求
我们顺着这个函数往上分析一下
我们获取到了创建任务栏提示符的字符串,我们推测登录程序是先创建任务栏提示符,然后当我们点击鼠标的时候触发条件加载dll,dll发起网络请求,事实上我们的样本确实在任务栏触发了这样的请求。
然后会弹出一个框
经过多次尝试,我们发现点击是就会发生劫持,点击否就不会发生劫持,分析到这里就想到了技术手段可能是APC注入,继续分析
调整完.dll库之后我粗略的看了一下,有的用来获取进程快照,有的用来获取进程的之一个堆,有的用来搜索进程,有的用来搜索模块。看到这些,劫持是APC注入造成的概率就大了。不过也有可能是游戏行为,因为也有可能会用来搜索进程和堆,进行一些功能判断。那我们继续分析他调整.dll库做了什么,想要实现什么。来到反汇编,代码最上方的函数名
查看交叉引用
向上滚动到此功能
该块的主要功能是找到该进程并打开它,然后向上滚动检查交叉引用并到达该函数
注意我标记的地方,然后我们看流程图来分析这个函数,我们跟进
那么看到这个,我们就明白上面的这个进程是干什么用的了,意思是样本获取进程线程ID,然后搜索一个进程,如果找到就执行这个函数,执行delme.bat,然后启动一些东西,然后执行
我们分析了它引用的所有跨进程,发现这些进程非常相似。这意味着这三个交叉引用的函数可能检查了三个不同的进程。我们可以动态地找出检查的内容。当我们分析导入函数时,我们在 .dll 中找到了引起我们注意的函数 tsEx,并找到该函数来检查其交叉引用。
我们随便跟进一个函数,比如这个函数,检查它的交叉引用函数如下
功能是获取线程ID然后执行等待线程挂起关闭,然后进入Sleep延时交叉引用后续函数
看到分析出来的字符串Set-,好像跟网络请求有关然后继续往上追溯到函数
很明显在构造http请求头的时候就已经完成了函数调用关系分析,但是却没有任何关联性,我们继续看tsEx,跟进它所在的函数顶部。
这里我们用一个循环来处理传入的消息,我们先看看传入了什么消息,以及一开始获取的句柄。
这是曲调
是 API 中的一个函数,用于获取类名和窗口名与给定字符串匹配的窗口的句柄。
我们先看一下定义,就是获取窗口句柄,然后和给定的字符串进行比较,到底和谁比较呢?看下面的函数。
这里传入一段数据进行tls解密,并获取线程ID返回给hWnd,以便回溯到函数
这里用到了一个pump-wait函数dles,具体用法如下
分析的时候我琢磨了好久该怎么处理,突然想起如果长时间没人点击示例,默认就按照条件运行,或者调试器遇到这种情况就忽略,程序运行很久超出等待时间后会自动加载,我猜应该是起到这样的作用,至于具体传了什么数据,就得动态交叉引用,继续往上追溯了。
没什么可分析的。上面没有引用,但是我们用空格切换了汇编代码。
IDA把这段代码识别成了文本,但是我们通过偏移地址发现这个数据涉及到一个函数,然后我们调用了一个函数
这里我们看到调用了一个函数,这个函数的意义就是恢复函数线程,看到这里大家就知道了/搞笑,我们继续查看交叉引用,然后往上追踪。
传递要解密的字符串,在这里进行调整,然后加载dll。
正如我们之前分析过的,样本运行时会弹出一个框,我们可以检查最外层函数的交叉引用。
首先,我们进入函数
调用此参数获取当前进程加载的模块的文件路径,读取数据,并解密数据
这个是退出时最后一个函数调用,关键是判断();();最后执行函数退出进程,至于后面那一堆函数调用,就是判断数据和上面的调用是否执行完了,执行完调用就结束了然后进入一个JZ判断,如果结果不等于0传奇游戏,就获取字符串,在桌面重新生成一个程序,然后返回
如果等于0,则显示弹出窗口。该函数用于加载
应用补丁之后会在这样的弹窗里进行一系列的判断,并执行退出。
在分析过程中发现,该函数还调用了
调用关键函数
调用和的主要目的是获取线程ID并枚举它
动态分析行为分析
样本运行后会释放一个.jpg文件,msg后面的名字是随机的。
然后将.exe文件释放到C:\Users\jhon\\Local\Temp下,rar后面的名字也是随机的。
.exe 程序来劫持图像,但它在我的计算机上没有成功
然后.exe,释放并加载驱动到C:\\\目录下
然后样本执行.exe程序两次
.jpg 分析
该文件为数据类型。
将其放入ida,它看起来是加密的
释放驱动因素分析
我们首先看看是否可以从子字符串中找到任何信息并提取一些关键信息。
/?t=1
[ENDBASE64]
[BASE64]
/?a=1&t=1&s1=%u&s2=%d&s3=%d
\SystemRoot\System32\
/?t=2&c=
mo.cn
hk.cn
tw.cn
xj.cn
nx.cn
qh.cn
gs.cn
sn.cn
xz.cn
yn.cn
gz.cn
sc.cn
hi.cn
gx.cn
gd.cn
hn.cn
hb.cn
ha.cn
sd.cn
jx.cn
fj.cn
ah.cn
zj.cn
js.cn
hl.cn
jl.cn
ln.cn
nm.cn
sx.cn
he.cn
cq.cn
tj.cn
sh.cn
bj.cn
ac.cn
net.ru
com.ru
edu.cn
gov.cn
org.cn
cn.com
net.cn
com.cn
其中,发现样本使用的签名
151222010803Z
161222010803Z0l1
Henan1
Jiaozuo1#0!
feifan7892@gmail.com
Zhang Zhengqi0
得到这些信息之后,我就先分析一下这里的关键信息,不去验证其真实性,放进IDA看了下,还是没什么头绪,对驱动程序的分析也不多,后续对驱动程序的研究再补充。
动态调试
经过多次动态调整后,样本就跑掉了,没有发现样本主进程有释放文件的迹象,我们又打开它监控了一段时间。
由于我们在释放.exe之前就停止了抓取,所以.exe没有被抓到,幸运的是, Sword抓到了,但是记录下来的pid不一样。
这里释放了两个程序,一个是.exe,一个是.exe,我们知道了这一点,我们回到调试器,一步步调试,在break at,经过上面的推断和调试,基本可以确定是APC注入导致的劫持,然后我们一步步调试,看到主进程创建了7984线程
我们从这里开始破解,样本在这里以 pid 2802 运行,然后我们以管理员身份打开一个进程附件
新的进程 pid 是 7416,然后我们主进程的单步
然后我们发现该样本又基于7416创建了另外一个线程9128,妈的,真是太恶心了。
也就是说我们在创建9128线程捕获释放的文件之前要先停下来,恢复快照之后再运行停止,执行3064
休息一下,然后我们继续
我们在单步过程中发现,样本数据基本都是通过远程获取并动态解密的,因此非常
停止于,获取释放的文件并中断于,操作停止后
样本解密释放执行后会自动删除,不过这里我们可以看到镜像是从百度贴吧获取的,然后在本地重命名,然后从镜像中解密出.exe。
恶意代码行为
从映像中解密 .exe 后,它将释放驱动程序文件
C:\Windows\System32\drivers\puhsvgvhhu.sys
现在我们拿到了发布的样本,我们简单分析一下,把样本放到虚拟机里运行了一段时间,发现并没有记录太多有用的信息,于是再次运行程序,发现并没有记录加载驱动的过程,而火荣剑却记录了下来。
时间名称 进程号 操作路径 执行结果
16:53:55:800
。EXE文件
3364
C:\Users\mac\\Local\Temp\.exe
:7000:'C:\用户\mac\\Local\Temp\.exe .jpg'::
16:53:55:815
。EXE文件
3364
C:\Users\mac\\Local\Temp\.exe
::0::::
16:53:55:831
。EXE文件
3364
C:\Users\mac\\Local\Temp\.exe
::0::::
16:53:55:831
。EXE文件
3364
\\C:\
:
16:53:55:831
。EXE文件
3364
\\C:\Users\mac\\Local\Temp\.exe
:
16:53:55:831
。EXE文件
3364
C:\Users\mac\\Local\Temp\.exe
::0::::
16:53:55:831
。EXE文件
3364
C:\Users\mac\\Local\Temp\.exe
::0::::
16:53:55:831
。EXE文件
3364
\\C:\
:
16:53:55:831
。EXE文件
3364
\\C:\Users\mac\\Local\Temp\.exe
:
16:53:55:893
。EXE文件
3364
系统盘:\\\\.sys
: :0 : : : :
16:53:55:893
。EXE文件
3364
系统盘:\\\\.sys
结束语:
16:53:55:893
。EXE文件
3364
系统盘:\\\\.sys
: :
16:53:55:893
。EXE文件
3364
系统盘:\\\\.sys
: :0 : : : :
16:53:55:893
。EXE文件
3364
系统盘:\\\\.sys
[操作成功完成。]
16:53:55:893
。EXE文件
3364
系统盘:\\\\.sys
[操作成功完成。]
从上面的记录中,我们注意到.exe执行了一条命令
rar_qlessd.exe msg_kucxcf.jpg
然后我们把这两个文件拖到新机器上,在终端里执行
可以看到直接就可以释放驱动了,也就是说这是重点了。哈哈哈看到这里莫名的开心了。接下来我们就来分析一下这两个东西,刚才我们分析了.jpg里面是包含数据的,肯定是.exe,我们先来分析一下.exe,投入ida之后发现里面乱七八糟的一堆函数,一点头绪都没有,我们直接动态调整终端管理员模式打开,查看之后发现这个程序是x64的,然后启动它并附加进程。
通过调试我们发现该样本会生成一个驱动程序,并注入到我们的调用栈中。
发现调用的函数是ntdll.dll,,,这些
国际石油公司
42.81.34.35
相关链接
结束
新招聘广告
招募大佬进圈
新成立集团物联网+工控+样本分析长期招聘
联系我们
未经允许不得转载! 作者:admin,转载或复制请以超链接形式并注明出处天心神途传奇手游发布网。
原文地址:《传奇游戏登录劫持事件分析》发布于:2024-08-26




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