NtosKrnl Event整数溢出漏洞挖掘

admin 2025年2月13日00:00:10评论7 views字数 689阅读2分17秒阅读模式

前言

该漏洞已提交微软并获得修复,官方地址:https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-38625

漏洞成因

调用堆栈:NtTraceEvent->EtwpWriteUserEvent -> Crash,EtwpWriteUserEvent 函数存在一个整数溢出漏洞 在最新版的Windows Server 2008 SP2 中可复现,可以导致Kernel Pool越界写,通过攻击者精心构造的内存布局可以达到权限提升的目的。

漏洞挖掘

由于是 Kernel Pool OverFlow 所以引发的错误多种多样:

NtosKrnl Event整数溢出漏洞挖掘

调用 NtTraceEvent 函数 Flag 设置为0x03,经过一些判断条件后会调用到EtwpWriteUserEvent函数。

NtosKrnl Event整数溢出漏洞挖掘

主要注意的是 ObReferenceObjectByHandle 函数,我们要传入一个 EtwpRegistrationObjectType 句柄,并且该句柄要启动跟踪功能。

EtwpWriteUserEvent 函数中此处存在一个整数溢出, EtwpReserveTraceBuffer 函数的第二个参数为分配内存的大小,该函数返回值是一个Large Pool中的一部分,其自己实现了内存管理机制,在此不过多赘述。

NtosKrnl Event整数溢出漏洞挖掘

NtosKrnl Event整数溢出漏洞挖掘

NtosKrnl Event整数溢出漏洞挖掘

NtosKrnl Event整数溢出漏洞挖掘

分配完内存后,该函数会初始化内存,此处就存在一个越界写,后续还有大量字符拷贝,设置结构体等操作。只要执行次数过多,覆盖了其他块的结构或触发访问异常,则会导致BSOD。

NtosKrnl Event整数溢出漏洞挖掘

NtosKrnl Event整数溢出漏洞挖掘

因为是整数溢出导致的池溢出,所以触发的异常是多种多样的。

NtosKrnl Event整数溢出漏洞挖掘

NtosKrnl Event整数溢出漏洞挖掘

原文始发于微信公众号(凌驭空间):NtosKrnl Event整数溢出漏洞挖掘

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月13日00:00:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   NtosKrnl Event整数溢出漏洞挖掘https://cn-sec.com/archives/1071995.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息