主要观点:
- 介绍 Windows 11 24H2 中发现的内核漏洞及利用过程,包括绕过新的内核 ASLR(KASLR)。
- 详细阐述两个旧代码中的新漏洞:CVE-2024-26218 和 CVE-2024-21345,以及它们如何导致栈缓冲区溢出和任意写。
- 讨论 24H2 中的 KASLR 变化及新的绕过技术(EntryBleed 和预取)。
- 展示利用漏洞提升权限的过程,包括构建内核读取、令牌交换等。
- 强调缺乏源代码和编译器导致难以确切知道漏洞引入原因,以及对 KASLR 的看法。
关键信息:
- 24H2 通过 Windows Insider Program 公开预览,文中漏洞在 NT 内核的 syscalls 中。
- 发现两个 double-fetches 导致的漏洞,一个导致栈缓冲区溢出,一个导致任意写。
- 24H2 中 KASLR 变化,经典绕过方法不可用,引入 EntryBleed 技术确定内核布局。
- 利用漏洞的过程:构建内核读取 -> 令牌交换提升权限。
重要细节:
- 新的内存复制函数
RtlCopyVolatileMemory
表明 24H2 中将用户模式内存视为易失性。 - CVE-2024-26218 中
PspBuildCreateProcessContext
处理属性时的 double-fetch 导致栈缓冲区溢出。 - CVE-2024-21345 中
NtQueryInformationThread
处理ThreadTebInformation
时的 double-fetch 导致任意写。 - EntryBleed 通过预取指令利用用户模式页表中的 syscall 处理程序地址确定内核地址。
- 在 Windows 11 11 中禁用 KVA 阴影削弱了内核内存与用户模式的隔离。
- 利用漏洞的完整过程包括构建读取 primitive、令牌交换等步骤,最终获得 SYSTEM 权限。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。