CVE-2020-17008 PoC公开
2020-12-25 11:05:00 Author: www.4hou.com(查看原文) 阅读量:235 收藏

今年6月,微软发布了补丁来修复CVE-2020-0986漏洞。CVE-2020-0986漏洞漏洞是Windows操作系统中的漏洞,攻击者利用该漏洞可以将权限提升到kernel 级别。但微软发布的补丁却没有完全修复该漏洞。研究人员发现黑客5月的PoC 代码仍然可以使用,并且有其他研究人员还公开了其他的PoC代码。

新的老漏洞

谷歌Project Zero研究人员Stone发现微软6月份发布的补丁并没有修复该漏洞,只要做一些调整仍然可以利用该漏洞。5月的时候,该漏洞主要被用来进行权限提升,并和一个用于远程代码执行的IE漏洞组合使用。那时候,这2个漏洞都属于0 day漏洞。

Stone称攻击者可以通过发送偏移量而不是指针来触发CVE-2020-0986漏洞,将权限提升到kernel级别。

在推特上,研究人员称该漏洞本来是一个任意指针间接引用漏洞,攻击者利用该漏洞可以控制指向memcpy函数的src和dest 指针。

微软发布的补丁将指针修改为偏移量,但是函数的参数仍然是可以被控制的,因此该漏洞仍然可以被利用。

目前该漏洞的新CVE编号为CVE-2020-17008,研究人员在技术报告中介绍了如何触发该漏洞,详见https://bugs.chromium.org/p/project-zero/issues/detail?id=2096

简单来说,低完整性的进程可以发送LPC消息给splwow64.exe(中等完整性),并获得splwow64 内存空间的write-what-where 原语。攻击者可以控制目的地址、被复制的内容、通过memcpy 调用复制的字节数。目的指针计算的偏移量受限于:

Offset <= 0x7FFFFFFF
Offset + perceived size of structure <= 0x7FFFFFFF
Splwow64可以将LPC 消息传递给GdiPrinterThunk。有漏洞的memcpy就在消息0x6D中。

PoC

为证明微软发布CVE-2020-0986漏洞补丁后,仍然可以利用,stone根据Kaspersky发布的CVE-2020-0986 漏洞PoC 修改并发布了CVE-2020-17008漏洞的PoC代码,参见https://bugs.chromium.org/p/project-zero/issues/detail?id=2096

研究人员介绍说该PoC触发了该漏洞2次,第一次是泄露消息存储和偏移量加的堆地址来生成指针,然后进行write-what-where 操作。

时间线

微软在9月24日收到漏洞报告,随后确认该漏洞,并分配CVE编号CVE-2020-17008。微软计划于2020年11月发布该漏洞的补丁,但是在测试阶段出现了问题,因此决定推后到1月的微软补丁日发布,即2021年1月12日。

Project Zero的漏洞公开政策是90天,如果需要更多时间来推送补丁的话可以延长14天。由于微软不能在1月6日之前发布补丁,且2个deadline都过了,所以研究人员决定公开该漏洞。

此外,Stone称攻击者已经开始利用该漏洞了,所以如果此次发布的补丁不是完全有效,攻击者可能会再次利用该漏洞。

更多技术细节参见:https://bugs.chromium.org/p/project-zero/issues/detail?id=2096

本文翻译自:https://www.bleepingcomputer.com/news/security/windows-zero-day-with-bad-patch-gets-new-public-exploit-code/如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/kBRE
如有侵权请联系:admin#unsafe.sh