0x00 概述
本次要分析的是WARZONE RAT。该RAT从2018年开始已经就有了,持续更新到现在,已经是版本2.7了。
而网上流传的破解版本是1.84,因此可以使用先研究研究旧的版本。
0x01 样本分析
样本名字 | w131313.exe |
---|---|
MD5 | B87E412E2C31142441F48A6126340D8B |
创建时间 | 2019-03-13 00:37:27 |
VT上传时间 | 2020-10-12 01:36:02 |
一、获取C&C
为了防止C&C被轻易提取或者发现,该木马将一些关键数据包括C&C经过加密后,存放在.bss段里。经过分析,发现该木马使用RC4算法进行解密。
在木马.bss段前四个字节是key的长度,也就是0x32(小端存储)。紧跟着的0x32个字节是RC4使用到的密钥,剩下0x6C个字节是待解密的数据。
加密数据经过RC4解密后,能够得到C2:192.168.0.65,以及一些未知字符串:Images.exe,EI4KRRHJDV,Images。
二、持续化
在获取完C&C以后,为了使木马能够在受害者电脑中持续运行,本木马采取了两种方式,分别是通过设置注册表启动项和使用保护进程的方式来保护木马。
首先将木马拷贝到C:\Program Data\目录下并命名为images.exe
。
接着将该路径设置到注册表启动项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
中,数值名称为Images
,数值数据为C:\ProgramData\images.exe
。
除此之外,我还注意到,该木马使用进程注入的方式使得木马能够持续运行。
木马会检测当前程序运行的系统环境,如果是在64位系统环境下,木马将创建cmd.exe进程并且进行远程线程注入,否则,在32位系统环境下木马对explorer.exe进程进行远程线程注入,注入的shellcode将会对木马进行进程保护。
三、通信协议
当成功注入到目标进程后,木马将尝试连接黑客服务器并且处理返回的数据。这里可以看到,该样本连接的C2为上面解码得到的192.168.0.65,所使用的端口为5350。不过可以看到,该ip实际上是一个局域网,估计是某位黑客在局域网使用的而已。
当黑客服务器将数据发送过来,木马会对数据进行RC4解密,而密钥为”warzone160”。
根据我的分析,该数据传输的数据结构如下:
1 | typdef struct Info |
经过我的详细分析可以得知有以下指令。
指令 | 意思 |
---|---|
0x00 | 上线并发送机器信息 |
0x02 | 遍历进程 |
0x04 | 枚举磁盘 |
0x06 | 遍历目录 |
0x08 | 下载文件 |
0x0A | 删除文件 |
0x0C | 结束进程 |
0x0E | 远程Shell请求 |
0x12 | 相机连接请求 |
0x13 | 相机帧传输 |
0x14 | 启动相机 |
0x16 | 相机关闭 |
0x18 | 发送心跳包 |
0x1A | 卸载木马 |
0x1C | 上传文件 |
0x1E | 发送数据到服务器 |
0x20 | 获取浏览器密码 |
0x22 | 下载并执行 |
0x24 | 键盘监听启动 |
0x26 | 键盘监听停止 |
0x28 | hrdp安装 |
0x2A | 反向代理启动 |
0x2C | 反向代理停止 |
0x30 | 远程VNC启动 |
0x32 | 远程VNC停止 |
0x33 | 提权(UAC) |
0x38 | 反向代理端口设置 |
0x3A | 运行文件 |
0x3B | 远程键盘监听请求 |
0x02、技术细节
一、保护模块
使用上面密文解密得到的EI4KRRHJDV
字符串作为注册表项,并且对C:\Program Data\images.exe
路径字符串进行RC4加密,得到的密文,设置进注册表键值里。
一、保护模块
远程线程注入的代码如下,使用CreateRemoteThread创建线程,线程回调函数从ShellCode偏移0x10E处的位置开始,并以进程PID和全路径作为参数进行传递。
经过分析可以得知,该ShellCode主要用于保护木马进程,首先判断木马文件开头是否为0x4D(正常PE文件是以0x4D,0x5A开头的)。紧接着判断木马进程的终止状态,如果进程终止了,则会重新创建木马进程,从而来保护木马可持续运行。
二、窃密模块
经过分析,可以发现,该RAT会窃取浏览器和邮箱的用户帐号信息以及使用键盘监听技术来窃取键盘内容。
窃取浏览器帐号信息如下:
chrome存储的用户信息:
IE存储的用户信息:
firefox存储的用户信息
窃取邮箱信息如下:
Outlook存储的用户信息
Thunderbird存储的用户信息
foxmail存储的用户信息
当收到键盘监听的命令时候,木马会对键盘记录进行监听,将捕获到的按键信息和窗口名信息保存到以时间命名的文件里。
键盘监听代码
三、提权模块
当木马收到提权命令的时候,会进行以下提权操作。主要是利用了具有自动提升权限的合法应用程序”pkgmgr.exe”来执行DISP模块。
保存当前路径到注册表HKEY_CURRENT_USER\SOFTWARE\_rptls
中,数值名称为Install
,数值数据为木马的当前路径。
木马从资源表中加载名为WM_DSP的资源,并且创建cmd.exe进程,通过进程镂空技术,将cmd.exe进程替换为WM_DSP资源。
WM_DSP资源主要做了以下事情:
从资源表中加载名为WM_DISP的资源,保存为%Temp%\dismcore.dll中。
将以下xml代码写入到%Temp%\ellocnak.xml中。
1 |
|
修改PEB结构,使得Peb->ProcessParameters->ImagePathName指向系统explorer.exe进程(系统UAC白名单程序)
下一步就是通过pkgmgr.exe来加载dismcore.dll。
dismcore.dll中主要是从注册表HKEY_CURRENT_USER\SOFTWARE\_rptls
中读取木马路径,以管理员权限运行它,并且结束掉刚才非管理员权限的木马。
这么一来木马就成功地绕过UAC了。
0x03 参考链接
https://bbs.pediy.com/thread-209362.htm
https://www.secrss.com/articles/10745
https://www.secrss.com/articles/10745
https://research.checkpoint.com/2020/warzone-behind-the-enemy-lines/