CVE-2019-1315:基于错误报告机制的Windows提权漏洞

iso60001  1871天前

22.jpg

该漏洞由@clavoillotte于2019年10月8日公布

影响产品:Windows 10,Windows Server 2019(旧版本可能也受影响,但并没有测试)

漏洞类型:本地权限提升

概要:Windows错误报告服务会对普通用户可写文件执行一些敏感的文件(涉及权限)操作,这可能被攻击者利用来重命名/移动只有SYSTEM特权才能读取修改的文件。普通权限用户可以利用它来提升权限。

此漏洞已被Windows于2019年10月发布的安全补丁修复。

是由David Cash独立发现的。

描述

当Windows的错误报告服务被触发时(例如在程序崩溃之后),wermgr.exe进程将在%ProgramData%\Microsoft\Windows\WER\ReportQueue\*_*_*_*_*的目录下寻找报告文件,其中%ProgramData%\Microsoft\Windows\WER\ReportQueue目录可被普通用户读取。在服务找到现有报告文件Report.wer并读取后,会创建一个临时文件Report.wer.tmp,再对其进行写入,最后将该文件重命名(SetRenameInformationFile)为Report.wer,以覆盖已存在的报告文件。

如下所示,在通过PowerShell的FailFast()生成报告时,可以从Procmon中观察到文件重命名操作:

33.png

而这些操作是在SYSTEM权限的情况下执行的,而操作所涉及的文件和目录是普通用户通过WerFault.exe就可以创建的,并不需要符号链接的帮忙。

因此,普通权限用户可利用该漏洞,以SYSTEM权限重命名/移动文件。

实际上,用户可以控制这些操作所针对的目录,因为普通用户可以通过NTFS junction将某个目录指向任意位置,修改文件内容也会影响所指向的其他敏感文件。

虽然在默认情况下普通用户不能创建“真实的”针对系统文件的NTFS符号链接,但他们可以将解析到\RPC Control\的对象目录挂载点与解析到目标的对象管理符号链接关联起来,构造一个“伪符号链接”,就像James Forshaw所展示的一样(12)。有关这方面的更多信息,请参阅详细说明文件

因此,通过以下设置:

  • C:\ProgramData\Microsoft\Windows\WER\ReportQueue\a_b_c_d_e -> \RPC Control (NTFS junction)

  • \RPC Control\Report.wer -> C:\Windows\System32\evil.dll(object manager symbolic link)

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\a_b_c_d_e\Report.wer有关的创建文件操作将会直接影响C:\Windows\System32\evil.dll文件的出现。

当然,要实现稳定的利用,还需要克服一些障碍,比如wermgr读取的文件必须是有效的报告文件,以及链接操作的时间,但是通过oplocks(锁操作)可以轻松解决这些问题。

普通用户可以利用重命名操作,设置以下“伪符号链接”来创建或替换只有SYSTEM权限才能操作的文件:

  • C:\ProgramData\Microsoft\Windows\WER\ReportQueue\a_b_c_d_e\Report.wer -> C:\Windows\System32\evil.dll

  • C:\ProgramData\Microsoft\Windows\WER\ReportQueue\a_b_c_d_e\Report.wer.tmp -> C:\path\to\payload.dll

最后,重命名操作将把C:\path\to\payload.dllSYSTEM权限移动到C:\Windows\System32\evil.dll

PoC

我针对Windows 10 1903提供了一个PoC演示,具体是在你运行Test-Exploit函数时,创建普通用户可写的%SystemRoot%\evil.txt文件,文件内容为test

以下是一个展示视频,利用该漏洞植入一个恶意DLL文件,并获得一个SYSTEM权限的shell:

44.png

视频地址:https://offsec.almond.consulting/videos/windows-error-reporting-arbitrary-file-move-eop/demo_wermgr.mp4

修复

微软已经发布了安全补丁和警告,用户可通过日常渠道进行更新。

参考文献

https://portal.msrc.microsoft.com/zh-CN/security-guidance/advisory/CVE-2019-1315

时间线

2019-09-22:漏洞报告给厂商

2019-09-23:厂商确认漏洞

2019-09-27:厂商回复说这个漏洞将在下周二的补丁中修复

2019-10-08:厂商发布了补丁和修复建议

2019-10-08:漏洞详情公布

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://offsec.almond.consulting/windows-error-reporting-arbitrary-file-move-eop.html

最新评论

昵称
邮箱
提交评论