/  

使用 Windows 零日漏洞的 Nokoyawa 勒索软件攻击

导读

2023 年 2 月,卡巴斯基技术检测到多次尝试在属于中东、北美和之前亚洲地区的中小企业的 Microsoft Windows 服务器上执行类似的特权提升攻击。这些漏洞与已知的通用日志文件系统 (CLFS)非常相似我们之前分析过的驱动程序漏洞,但我们决定仔细检查,这是值得的——其中一个漏洞被证明是零日漏洞,支持不同版本和构建的 Windows,包括 Windows 11。该漏洞被高度混淆超过 80% 的代码是“垃圾”,被优雅地编译成二进制文件,但我们很快对其进行了完全逆向工程,并将我们的发现报告给了微软。Microsoft 将 CVE-2023-28252 分配给了通用日志文件系统特权提升漏洞,并于 2023 年 4 月 11 日发布了补丁,作为 4 月补丁星期二的一部分。

虽然我们过去发现的大多数零日漏洞都被 APT 使用,但这个特殊的零日漏洞被一个复杂的网络犯罪集团使用,该组织进行勒索软件攻击。该组织以使用大量类似但独特的通用日志文件系统 (CLFS) 驱动程序漏洞利用而著称,这些漏洞利用可能是由同一漏洞利用作者开发的。至少从 2022 年 6 月开始,我们已经确定了五种不同的攻击方式,用于攻击零售和批发、能源、制造、医疗保健、软件开发和其他行业。该组织使用 CVE-2023-28252 零日漏洞,试图将 Nokoyawa 勒索软件部署为最终有效负载。
Nokoyawa 赎金记录

Nokoyawa 勒索记录

特权提升利用

攻击者必须通过用户访问权限进行身份验证,并且能够在目标系统上运行代码以启动特权提升攻击。

CLFS 是一个日志文件子系统,最早出现在 Microsoft Windows Server 2003 R2 / Microsoft Vista 中,并在 clfs.sys 驱动程序中实现。这个文件系统可以被任何应用程序使用,微软为它提供了一个API 。日志是使用CreateLogFile函数创建的– 日志由基本日志文件(.blf 文件扩展名)和许多保存实际数据的容器组成,该文件是包含元数据的主文件。容器是使用AddLogContainerAddLogContainerSet创建的功能。正如您可能已经猜到的那样,基本日志文件是最有趣的。但是,虽然 Microsoft 提供了一个 API 来与它们一起工作,但它们的文件格式没有记录,开发人员只能通过 CLFS API 与它们交互。基本日志文件的文件结构,在十六进制编辑器中简要查看时,似乎并不复杂,Microsoft 为 clfs.sys 提供了调试符号,因此只要有足够的热情,就可以对这种格式进行逆向工程(已经完成亚历克斯·约内斯库 (Alex Ionescu))。基本日志文件的结构一目了然,立即引起了一个危险信号——该文件由内核结构组成,甚至还有用于存储内存指针的字段!结合这个事实,根据 API 文档,这项技术相当复杂,而且它是很久以前开发的,因此我们有大量的漏洞。搜索“Windows Common Log File System Driver Elevation Of Privilege Vulnerability”显示,自2018年以来至少发现了32个此类漏洞(不包括CVE-2023-28252),其中三个在野检测为零-天(CVE-2022-24521、CVE-2022-37969、CVE-2023-23376)。

CVE-2023-28252 是越界写入(增量)漏洞,当系统尝试扩展元数据块时可以利用该漏洞。该漏洞由基本日志文件的操作触发。目前,我们不会分享有关该漏洞以及如何触发它的任何其他详细信息,因为此信息可以用作双刃剑。这是为了确保每个人都有足够的时间在其他参与者开发 CVE-2023-28252 漏洞之前修补他们的系统。我们将在 4 月补丁星期二后 9 天更新这篇文章,详细介绍该漏洞。

发现的漏洞利用该漏洞以一种将基本日志文件的假元素视为真实元素的方式破坏另一个特制的基本日志文件对象。_CLFS_CONTAINER_CONTEXT 是存储在基本日志文件中的结构示例,但包含用于存储内核指针的字段。当然,当从磁盘上的基本日志文件读取结构时,该字段的值将被忽略,但是在内存中将指向有效 _CLFS_CONTAINER_CONTEXT 结构的偏移量更改为指向特制恶意 _CLFS_CONTAINER_CONTEXT 结构的偏移量使得有可能在用户级别提供指向受控内存的指针,并使用它获得内核读/写权限。

该漏洞利用会泄露内核对象的地址以实现稳定利用。这是使用 NtQuerySystemInformation 函数完成的——这是我们之前在其他零日攻击中看到的一种技术(例如PuzzleMakerMysterySnail APT 案例)。漏洞使用的信息类需要 Medium IL 才能工作。

我们相信 CVE-2023-28252 可以在模糊测试的帮助下轻松被发现。但是这个组件中已经发现了这么多的漏洞,如果可以通过fuzzing发现,为什么以前没有发现呢?我们有一个可能的解释。检查反汇编程序中的 clfs.sys 驱动程序代码显示大量使用 try/catch 块来捕获异常。在代码的许多部分,当异常发生时,它会被异常处理程序屏蔽,并且代码继续正常执行,就像什么也没发生一样。我们通过 CVE-2023-28252 验证了触发漏洞后可能发生的访问冲突被异常处理程序屏蔽了。这让我们认为以前的模糊器实际上是在攻击这个漏洞,但是因为没有崩溃,所以它一直没有被发现。为了有效的模糊测试,

后开发和恶意软件

我们看到使用特权提升漏洞利用的主要目的是转储 HKEY_LOCAL_MACHINE\SAM 注册表配置单元的内容。

至于恶意软件,攻击者使用 Cobalt Strike BEACON 作为他们的主要工具。它与各种旨在防止 AV 检测的自定义加载器一起启动。

在我们归因于同一参与者的其他一些攻击中,我们还观察到,在利用 CLFS 特权提升漏洞之前,受害者的机器感染了名为“Pipemagic”的自定义模块化后门,该后门通过MSBuild 脚本。去年年底,我们为卡巴斯基情报报告服务的客户发布了一份关于该恶意软件的私人报告。

在使用 CVE-2023-28252 零日漏洞的攻击中,该组织试图部署 Nokoyawa 勒索软件作为最终有效载荷。Nokoyawa 的年度变种只是我们之前写过的 JSWorm 勒索软件的“更名”变种。在这次攻击中,网络犯罪分子使用了与 JSWorm 代码库截然不同的新版本 Nokoyawa。它是用 C 语言编写的,并具有加密的字符串。它是使用带有“–config”命令行参数的加密 json 配置启动的。

Nokoyawa 勒索软件的解密和格式化配置

Nokoyawa 勒索软件的解密和格式化配置

IOC

完成后,利用程序将用于利用的文件留在“C:\Users\Public\”文件夹中的硬编码路径中。公司可以通过查找“C:\Users\Public.container*”、“C:\Users\Public\MyLog*.blf”和“C:\Users\Public\p_*”文件。

利用工件
C:\Users\Public.container*
C:\Users\Public\MyLog*.blf
C:\Users\Public\p_*

利用
46168ed7dbe33ffc4179974f8bf401aa

**CobaltStrike 装载机
**1e4dd35b16ddc59c1ecf240c22b8a4c4
f23be19024fcc7c8f885dfa16634e6e7
a2313d7fdb2f8f5e5c1962e22b504a17

CobaltStrike C2s
vnssinc[.]com
qooqle[.]top
vsexec[.]com
devsetgroup[.]com

Nokoyawa 勒索软件
8800e6f1501f69a0a04ce709e9fa251c


标题:使用 Windows 零日漏洞的 Nokoyawa 勒索软件攻击
作者:qbs
地址:https://www.xiaohongyan.cn/articles/2023/04/12/1681289140853.html
声明:博客上的所内容均可免费使用,可注明归属,注明作者或网址这种行为值得赞赏。