该视频展示了 Eric Egsgard 在 OffensiveCon24 的演讲,他介绍了他对 Windows 设备驱动程序的研究以及如何发现本地权限提升漏洞。
视频主要内容:
🔹 介绍和背景:
-
Eric 目前在 Field Effect 工作,这是一家提供网络安全解决方案的公司,主要服务于中小型企业。他在公司的工作主要集中在 Windows 内核部分。
-
他的职业生涯大部分时间都在进行漏洞研究,并且他仍然花时间进行漏洞挖掘。
🔹 Windows 中的沙盒:
-
Windows 使用多种类型的沙盒来限制恶意代码的影响,这些沙盒包括 Chrome 和 Edge 使用的渲染沙盒、应用容器隔离以及 Defender Application Guard 等。
-
沙盒的基本目的是限制在其中运行的代码能做什么,以确保任何恶意代码只能对系统造成有限的影响。这通过只允许沙盒访问系统和操作系统功能的一小部分服务来实现,例如,通常不允许网络访问和只能进行隔离的文件系统访问。
🔹 设备驱动程序的研究:
-
传统的设备驱动程序在内核模式下运行,并通过在设备树中创建条目向用户模式公开功能。驱动程序可以设置访问控制和权限,用户模式应用程序可以像打开文件一样打开这些设备,并向其发送各种类型的系统调用 (syscalls),如读写操作。
-
设备控制操作 (IOCTL) 是驱动程序与应用程序交换信息的常用方法。当设备控制调用发生时,内核的 IO 管理器会调用驱动程序来处理。
🔹 研究过程:
-
Eric 决定首先枚举从不同沙盒可以访问的设备。他编写了一个测试程序,从沙盒内尝试打开系统中的每个设备,看看哪些设备可以成功打开。
-
他发现一些设备可以访问,最终决定专注于 "multiple UNC provider" (MUP),这是一个内核模式组件,负责将使用 UNC 路径的所有远程文件系统访问引导到网络重定向器。由于可能可以通过这个设备与多个驱动程序进行通信,这为研究提供了丰富的攻击面。
🔹 漏洞利用:
-
Eric 发现一个名为 CSC 的驱动程序 (Client-Side Caching) 在处理文件控制请求时,没有对输入缓冲区进行充分检查和验证,这是一个明显的漏洞,可以允许在任意地址写入空值。
-
他详细描述了利用此漏洞的过程,从识别 IO 控制请求的处理函数,到通过输入缓冲区进行任意写入,最终实现内核内存的任意读写。
🔹 演示:
-
在演示部分,Eric 展示了如何通过发现的漏洞获得内核权限。他编写了一个演示程序,展示了漏洞利用的整个过程,包括信息泄露、内存喷射和最终获取系统权限。
🔹 披露和解决:
-
Eric 在 2023 年 12 月向 Microsoft 报告了该漏洞,微软很快确认了该漏洞,并在 2024 年 5 月的更新中修复了此漏洞。
原文始发于微信公众号(3072):OffensiveCon24 Windows设备驱动攻击面分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论