恶意软件即服务是网络犯罪分子获利的一种可靠方式。近期,不同的RAT变得非常流行。虽然这些RAT都被标记为恶意攻击,但其开发者就像销售合法软件一样,提供不同的订阅方案和客户支持,甚至有些还有license和使用选项。这些工具的开发者一直在持续改进这些工具,不断地加入新的特征。本文分析Warzone RAT,其开发者提供了一系列不同的特征。
2018年秋,第一个Warzone RAT广告出现在warzone[.]io网站上。当前,该销售服务位于warzone[.]pw。恶意软件运营者在warzonedns[.]com上运营了一个动态DNS服务。根据该网站的描述,恶意软件具有以下能力和特征:
· 不需要.net
· 通过VNC实现远程桌面
· 通过RDPWrap隐藏远程桌面
· 权限提升(在最新Windows 10系统中也可以)
· 远程web摄像头控制
· 浏览器和主流有用密码窃取
· 下载和执行任意文件
· 远程shell
· 文件管理
· 进程管理
· 逆向代理
图 1 – warzone[.]io上的广告
图 2 – warzone[.]pw上最近的广告
技术细节
Warzone是一个用C++编写的RAT,适配所有的Windows发布版本。
该恶意软件开发者在warzonedns[.]com上有动态DNS服务,也就是说购买者并不会受到IP地址变化的影响。
Warzone会绕过UAC (User Account Control用户访问控制)来绕过Windows defender,并将自己放置在开始菜单程序列表中。最后,运行路径来处理C2命令。
研究人员发现了多个不同版本的Warzone,而且恶意软件在不断地改善。在不同版本中,有些特征是不同的。
绕过UAC
如果Warzone RAT以更高权限运行,就会添加整个C:\ 路径到Windows Defender的白名单中,使用的PowerShell命令为:
powershell Add-MpPreference -ExclusionPath C:\
此外,恶意软件会绕过UAC,并使用两种方法来进行提权,一种用于Windows 10,一种用于其他老版本的Windows系统:
对低于Windows 10的版本,使用保存在资源中的UAC绕过方法。
对于Windows 10,滥用sd clt.exe的自动提升特征,该可执行文件是适用于Windows备份和恢复环境下的。
图 7 –Warzone工作流
图 8 – UAC绕过策略
Windows 10 UAC绕过
当sdclt.exe被中等完整性进程(比如,标准用户权限的进程),会发生以下事件:
· 它会以更高权限运行另一个进程sdclt.exe。
· 高权限的sdclt进程会调用C:\Windows\System32\control.exe。
· control.exe进程会以更高权限运行,并尝试打开HKCU\Software\Classes\Folder\shell\open\command 注册表值。
恶意软件会通过设置路径为含有DelegateExecute参数的HKCU\Software\Classes\Folder\shell\open\command key来执行COM劫持。
这些动作都可以通过以下命令替换:
reg add "HKCU\Software\Classes\Folder\shell\open\command" /d "" /f reg add HKCU\Software\Classes\Folder\shell\open\command /v "DelegateExecute" /f
最后,恶意软件会中止自己。并通过sdclt.exe以提升的权限运行。
图 9 – Windows 10 UAC绕过
Windows 10之前版本的操作系统中的UAC绕过
对低于Windows 10版本的Windows系统,恶意软件会执行IFileOperation漏洞滥用。
首先,在HKCU\SOFTWARE中创建一个注册表hive _rptls。其中包含一个路径为自己的值Install:
图 10 – HKCU\SOFTWARE\Install
然后,恶意软件会从WM_DSP resource中加载一个可执行文件,并运行一个含有大约1500字节的shellcode。
Shellcode会解析一些函数,运行暂停状态的cmd.exe的实例,并执行一个进程替换(ZwUnmapViewOfSection – VirtualAllocEx – GetThreadContext – WriteProcessMemory – SetThreadContext)。
图 11 –shellcode中的解析函数
负责UAC绕过的代码来源于AVE_MARIA恶意软件。
下面代码段表明权限提升是如何在cmd.exe环境下执行的。
图 12 – 进程替换后的cmd.exe的新入口点
恶意软件会从WM_DISM资源中提取出dismcore.dll,并释放xml文件ellocnak.xml到%TEMP%目录。
图 13 – 释放含有配置的ellocnak.xml
然后伪装成PEB (Process Environment Block)来以更高完整性级别调用IFileOperation。
图 14 – 伪装成PEB
下一步,使用pkgmgr.exe来以提升的权限加载dismcore.dll。
图 15 – 权限提升
加载的DLL会从HKCU\SOFTWARE\_rptls\Install提取出路径到Warzone恶意文件,循环运行进程,如果已经存在Warzone进程就杀掉。然后再次运行Warzone可执行文件,此次运行的权限为Admin。
驻留
恶意软件会复制自己到C:\Users\User\AppData\Roaming\
恶意软件也会常见一个注册表记录HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\UIF2IS2OVK,并设置inst value为256字节的伪随机生成序列。
如果恶意软件以Admin权限运行,并且没有以更高权限的实例中止,就复制自己到C:\ProgramData\
网络通信
恶意软件会通过TCP 在5200端口与C2服务器进行通信。包的payload是用RC4算法和口令“warzone160\x00”加密的。
解密后的包的布局如下:
图 16 – 解密的包结构
实例:解密的响应包
图 17 – 来自Warzone服务器的响应
表1 – 响应包域
虽然Warzone可能加密了TCP包,其中一些版本会使用非加密的通信。
图 18 – 加密和非加密的Warzone TCP流
包payload中的字符串以以下格式存储:
图 19 – BSTR结构布局
恶意软件会解密C2服务器域名,并尝试连接到C2服务器。服务器在接受连接后,会发送一个message ID = 0和payload为空的包到客户端。恶意软件会收集被入侵计算机的信息,并在响应包中发回给服务器。响应包中包含如下数据:
· MachineGUID的SHA-1值
· 攻击活动ID.
· OS操作系统版本
· Admin状态
· 是否WOW64进程
· PC名
· 恶意软件存储路径
· 恶意文件的MurmurHash3值
· RAM值
· CPU信息
· 视频控制器信息
Bot ID是HKLM\Software\Microsoft\Cryptography中MachineGUID注册表值的SHA-1哈希值。
然后,主机会等待来自服务器的命令。服务器消息ID是从0x00到0x3C的偶数。僵尸主机包是添加0x01到0x3B的ID。一些命令在响应中并没有答案或含有空的payload。
僵尸主机还能通过远程shell、RDP、VNC console等提供给攻击者控制受感染PC的能力。提供的功能包括远程任务和文件管理、允许使用web摄像头等。
网络通信消息如下:
下表中含有客户端和服务器交换的大多数消息代码。消息代码在不同的Warzone版本中有所不同。
管理panel
研究人员分析了其中一个泄露的Warzone panels/builders,发现Warzone 版本是1.84。是用.NET编写的,并使用定制的混淆器进行了混淆。
图 20 – Warzone panel.
代码的混淆使用了大量的数学计算和switch结构,可以在不影响控制流的情况下隐藏有用的指令。比如,图21中有365行代码,但是只有一个目的:就是分配constructor参数给class成员。
图 21 –反编译的panel代码
通过对应僵尸主机的内容菜单,购买者可以使用远程命令行、进程和文件控制器以及其他特征来完全控制受感染的机器。
图 22 – bot记录的内容菜单
panel bundle中含有以下内容:
· Warzone RAT*.exe和Warzone RAT*.exe.config .NET assembly和panel配置文件。
· 合法的库license.dll 和 PETools.dll。
· License文件license.dat。
· Builder的客户端存根(Client Stub) cratclient.bin (cb6d6f17c102a8288704fe38dd9e2cf9)。
· Directory Clients含有每个客户端的特定数据:下载的文件、日志、RDP口令等。
· Directory Datas含有合法的软件,如RDPWrap库、SQLite库、VNC 客户端 (TightVNC和TigerVNC 客户端)。当对应特征触发时,这些文件都会传输到客户端。
图 23 – panel bundle内容
结论
Warzone与其他RAT类似,看似是一个合法工具,功能与其他RAT类似。可以由其他恶意软件或通过垃圾邮件进行传播。另一方面,与其他使用.NET语言开发的RAT类似,Warzone是用面向对象语言C++开发的。Warzone使用tcp上的网络协议,而非使用HTTP通信。除了定制的网络协议和网络基础设施外,Warzone含有2个不同的UAC绕过方法,适用于Windows 10和之前版本的Windows系统。
本文翻译自:https://research.checkpoint.com/2020/warzone-behind-the-enemy-lines/如若转载,请注明原文地址