无代码执行?没问题——生活在VBS、HVCI和内核CFG的时代(2022)
本文深入探讨了在启用基于虚拟化的安全(VBS)、hypervisor强制的代码完整性(HVCI)和内核控制流保护(Kernel CFG)的现代Windows系统上,如何绕过这些安全机制实现漏洞利用。作者展示了即使在没有传统代码执行的情况下,攻击者仍可通过精心构造的数据和控制流劫持来达成目的,详细分析了这些安全特性的内部工作原理及其潜在弱点。
背景速读
- 这篇技术文章发表于 2022 年,作者是 Connor McGarr(知名安全研究员,曾多次披露 Windows 内核漏洞)。
- HVCI (Hypervisor-protected Code Integrity,又称“内存完整性”) 是 Windows 10/11 的一项核心安全功能:它利用虚拟化技术,强制内核态驱动程序只能运行经过签名的代码,从而阻止传统利用方式直接植入 shellcode。
- VBS (Virtualization-Based Security) 是 HVCI 底层的虚拟化隔离机制,Kernel CFG (Control Flow Guard) 则是另一层控制流保护。这三道防线让“在 Ring 0 执行任意代码”变得极其困难。
- 文章展示的是一种“免代码执行”的攻击思路:即使无法跳转到自己构造的 shellcode,攻击者仍可通过篡改内核对象、伪造回调指针、操纵已签名驱动中的合法代码路径来达成提权或反篡改防御。
- 这类研究对安全社区至关重要——它揭示了即使是 Microsoft 最强的虚拟化防护组合,仍然存在逻辑层而非内存层的绕过风险,推动厂商不断改进防御设计。