单一函数中的一系列Windows内核漏洞

admin 2022年3月26日08:09:31评论52 views字数 1415阅读4分43秒阅读模式


单一函数中的一系列Windows内核漏洞


介紹


          在分析Windows内核漏洞的过程中,我发现一个函数EtwpNotifyGuid存在5个以上的bug,分别是CVE-2020-1033、CVE-2020-1034、CVE-2021- 1662、CVE-2021-1682等。这些漏洞分别是CVE-2020-1033、CVE-2020-1034、CVE-2021- 1662、CVE-2021-1682等。在一个Windows内核函数中存在5个以上的BUG,这是一个非常惊人的事实。


            这篇文章将深入了解这些漏洞的细节和微软发布的修复方法。


CVE-2020-1033。Windows 内核信息泄露漏洞


            该bug由微软产品安全与漏洞研究团队成员(@gabe_k)披露,并于2020年9月8日进行了修补。它是由于对输入数据的无效检查造成的,具体如下。


单一函数中的一系列Windows内核漏洞


            rdx寄存器的值没有被验证,并被用作输入缓冲区的偏移量,因此它可以被用来进行界外读取。通过检查rdx寄存器的值,修复了这个错误。


单一函数中的一系列Windows内核漏洞


CVE-2020-1034:Windows 内核提升权限漏洞


            这个漏洞也被微软产品安全与漏洞研究团队发现,并与CVE-2020-1033同时进行了修补。


            Crowdstrike和ZhangGuo的Yarden Shafir立即全面公布了这个漏洞的细节。


CVE-2021-1662。Windows事件追踪权限提升漏洞


            该漏洞由DBAPPSecurity的madongze(@闫子双)发现,并于2021年1月12日进行了修补。输入缓冲区的无效绑定检查会导致内核池的越界访问,并导致权限升级。


单一函数中的一系列Windows内核漏洞


            如你所见,在EtwpValidateTraceControlFilterDescriptors函数中,如果input_buffer_length为0x90,v10为0x40,则可以通过绑定检查,因此可以进行越界访问。这可能会被滥用来进行权限升级利用。


            微软通过检查EtwpValidateTraceControlFilterDescriptors函数中的缓冲区长度来修复该错误,具体如下。


单一函数中的一系列Windows内核漏洞


CVE-2021-1682: 視窗核心提升權限漏洞 (Windows Kernel Elevation of Privilege Vulner)


            这个漏洞也是由DBAPPSecurity成员李敏(@lm0963)发现的,并通过CVE-2021-1662进行了修补。这是一个由无效绑定检查引起的堆缓冲区溢出漏洞。EtwpNotifyGuid函数使用EtwpAllocDataBlock函数复制输入缓冲区,并对其访问偏移量0x50。当然,通过之前的检查,缓冲区大小应该大于0x48,但也可以小于0x50。因此,它会覆盖下一个池头,导致内存损坏。


单一函数中的一系列Windows内核漏洞


单一函数中的一系列Windows内核漏洞


结论

            以上bug中只有一个是信息泄露漏洞,其他的都是权限提升漏洞,可以用来进行Chrome沙盒逃逸。而在NtTraceControl函数的同一控制代码过程中,还有一个漏洞。


            这个事实说明ETW组件是Windows内核中非常脆弱的部分,而且这个组件可能会发现更多的漏洞。


本文始发于微信公众号(Khan安全攻防实验室):单一函数中的一系列Windows内核漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月26日08:09:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   单一函数中的一系列Windows内核漏洞https://cn-sec.com/archives/535062.html

发表评论

匿名网友 填写信息