CVE-2019-0841:Windows DACL权限覆写权限提升漏洞
字数 1568 2025-08-29 08:32:18

CVE-2019-0841: Windows DACL权限覆写权限提升漏洞分析

漏洞概述

CVE-2019-0841是一个Windows操作系统中的权限提升漏洞,允许低权限用户通过覆写目标文件的权限来劫持属于NT AUTHORITY\SYSTEM的文件。成功利用该漏洞可以使低权限用户获得对目标文件的完全控制权限。

漏洞背景

所有Windows应用程序都有一个settings.dat文件,用于记录应用程序的注册表设置。该文件是一个可以在注册表中加载和修改的注册表文件。当用户启动Windows应用程序(如Microsoft Edge)时,可以访问NT AUTHORITY\SYSTEM的settings.dat文件。

漏洞细节

文件位置

所有Windows应用程序的用户配置文件都保存在当前用户的APPDATA文件夹中:

C:\Users\<username>\AppData\Local\Packages\<Packagename>

Windows 10有一些默认安装的应用程序,每个package都有一个settings.dat文件,由NT AUTHORITY\SYSTEM写入配置变化。

文件访问机制

  1. Windows应用程序启动后,系统会使用OpLock操作来防止其他进程在应用程序运行时使用或访问该文件。
  2. 启动Microsoft Edge后,settings.dat文件会以NT AUTHORITY\SYSTEM身份打开。
  3. 系统执行以下基本完整性检查:
    • 检查文件权限
    • 如果文件权限不准确,修正文件权限
    • 读取文件内容
    • 如果文件内容被破坏,删除该文件
    • 从模板中复制设置文件来重设配置
    • 在新复制的文件上获取Exclusive Lock
    • 启动Windows应用程序

漏洞触发点

在读取文件内容后,在SetSecurityFile操作过程中会首先设置正确的文件权限。如果内容与正确的settings.dat文件不对应,系统会删除该文件,复制设置模板文件然后启动Windows应用程序。

绝大多数这些操作都是通过模拟(impersonating)当前用户权限来执行的,这原本是为了防止滥用这些操作。然而,可以利用这一行为来通过硬链接对任意文件设置文件权限。

漏洞利用

利用原理

设置硬链接的文件权限会改变原始文件的权限。通过这一特性,可以劫持系统文件(如C:\Windows\System32\drivers\etc\hosts)。

利用条件

  1. NT AUTHORITY\SYSTEM对目标文件有完全控制权限
  2. 低权限用户或用户组有读写权限
  3. 读和执行权限可以继承

利用步骤

  1. 检查目标文件是否存在及其权限
  2. 杀掉Microsoft Edge进程以获取settings.dat文件的访问权限
  3. 检查settings.dat文件并删除该文件
  4. 创建到目标文件的硬链接
  5. 再次启动Microsoft Edge以触发漏洞
  6. 验证是否为当前用户设置了完全控制权限

PoC验证

研究人员开发了漏洞利用代码可以自动创建硬链接并触发该漏洞。PoC代码位于:
https://github.com/rogue-kdc/CVE-2019-0841

视频PoC展示了使用DLL和注入恶意代码来利用Chrome Update Service进行权限提升的完整过程:
https://www.youtube.com/embed/vP468ZjJ3hU

防御措施

  1. 及时安装微软发布的安全补丁
  2. 限制低权限用户对关键系统文件的访问权限
  3. 监控系统关键文件的权限变更
  4. 禁用不必要的Windows应用程序

总结

CVE-2019-0841漏洞通过Windows应用程序的settings.dat文件处理机制中的缺陷,允许攻击者通过硬链接修改系统文件的权限,从而实现权限提升。该漏洞影响所有允许低权限用户访问settings.dat文件的Windows应用程序。

CVE-2019-0841: Windows DACL权限覆写权限提升漏洞分析 漏洞概述 CVE-2019-0841是一个Windows操作系统中的权限提升漏洞,允许低权限用户通过覆写目标文件的权限来劫持属于NT AUTHORITY\SYSTEM的文件。成功利用该漏洞可以使低权限用户获得对目标文件的完全控制权限。 漏洞背景 所有Windows应用程序都有一个 settings.dat 文件,用于记录应用程序的注册表设置。该文件是一个可以在注册表中加载和修改的注册表文件。当用户启动Windows应用程序(如Microsoft Edge)时,可以访问NT AUTHORITY\SYSTEM的 settings.dat 文件。 漏洞细节 文件位置 所有Windows应用程序的用户配置文件都保存在当前用户的APPDATA文件夹中: Windows 10有一些默认安装的应用程序,每个package都有一个 settings.dat 文件,由NT AUTHORITY\SYSTEM写入配置变化。 文件访问机制 Windows应用程序启动后,系统会使用OpLock操作来防止其他进程在应用程序运行时使用或访问该文件。 启动Microsoft Edge后, settings.dat 文件会以NT AUTHORITY\SYSTEM身份打开。 系统执行以下基本完整性检查: 检查文件权限 如果文件权限不准确,修正文件权限 读取文件内容 如果文件内容被破坏,删除该文件 从模板中复制设置文件来重设配置 在新复制的文件上获取Exclusive Lock 启动Windows应用程序 漏洞触发点 在读取文件内容后,在 SetSecurityFile 操作过程中会首先设置正确的文件权限。如果内容与正确的 settings.dat 文件不对应,系统会删除该文件,复制设置模板文件然后启动Windows应用程序。 绝大多数这些操作都是通过模拟(impersonating)当前用户权限来执行的,这原本是为了防止滥用这些操作。然而,可以利用这一行为来通过硬链接对任意文件设置文件权限。 漏洞利用 利用原理 设置硬链接的文件权限会改变原始文件的权限。通过这一特性,可以劫持系统文件(如 C:\Windows\System32\drivers\etc\hosts )。 利用条件 NT AUTHORITY\SYSTEM对目标文件有完全控制权限 低权限用户或用户组有读写权限 读和执行权限可以继承 利用步骤 检查目标文件是否存在及其权限 杀掉Microsoft Edge进程以获取 settings.dat 文件的访问权限 检查 settings.dat 文件并删除该文件 创建到目标文件的硬链接 再次启动Microsoft Edge以触发漏洞 验证是否为当前用户设置了完全控制权限 PoC验证 研究人员开发了漏洞利用代码可以自动创建硬链接并触发该漏洞。PoC代码位于: https://github.com/rogue-kdc/CVE-2019-0841 视频PoC展示了使用DLL和注入恶意代码来利用Chrome Update Service进行权限提升的完整过程: https://www.youtube.com/embed/vP468ZjJ3hU 防御措施 及时安装微软发布的安全补丁 限制低权限用户对关键系统文件的访问权限 监控系统关键文件的权限变更 禁用不必要的Windows应用程序 总结 CVE-2019-0841漏洞通过Windows应用程序的 settings.dat 文件处理机制中的缺陷,允许攻击者通过硬链接修改系统文件的权限,从而实现权限提升。该漏洞影响所有允许低权限用户访问 settings.dat 文件的Windows应用程序。