目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2021-1732 PoC — Microsoft Win32k 缓冲区错误漏洞

来源
关联漏洞
标题: Microsoft Win32k 缓冲区错误漏洞 (CVE-2021-1732)
Description:Microsoft Win32k是美国微软(Microsoft)公司的一个用于Windows多用户管理的系统文件。 Microsoft Win32k 中存在缓冲区错误漏洞。以下产品及版本受到影响:Windows 10 Version 1803 for 32-bit Systems,Windows 10 Version 1803 for x64-based Systems,Windows 10 Version 1803 for ARM64-based Systems,Windows 10 Version 1
介绍
# CVE-2021-1732

- 漏洞发生在Windows 图形驱动`win32kfull!NtUserCreateWindowEx`函数中的一处内核回调用户态分配内存与tagWND->flag属性设置不同步导致的漏洞。使得可以伪造这个`tagWND->offset`值发生内存越界。
- 当驱动win32kfull.sys调用`NtUserCreateWindowEx`创建窗口时会判断`tagWND->cbWndExtra`(窗口实例额外分配内存数),该值不为空时调用`win32kfull!xxxClientAllocWindowClassExtraBytes`函数回调用户层`user32.dll!__xxxClientAllocWindowClassExtraBytes`分配空间,分配后的地址使用`NtCallbackReturn`函数修正堆栈后重新返回内核层并保存并继续运行,而当`tagWND->flag`值包含0x800属性后该保存值变成了一个offset。
- 攻击者可以Hook `user32.dll!_xxxClientAllocWindowClassExtraBytes`函数调用NtUserConsoleControl修改tagWND->flag包含0x800属性值后使用`NtCallbackReturn`返回一个自定义的值到内核tagWND->offset。

1. 漏洞发生在Windows 图形驱动`win32kfull!NtUserCreateWindowEx`中。
2. 当驱动`win32kfull.sys`调用`NtUserCreateWindowEx`创建窗口时会判断`tagWND->cbWndExtra`(窗口实例额外分配内存数),该值不为空时调用`win32kfull!xxxClientAllocWindowClassExtraBytes`函数回调用户层`user32.dll!__xxxClientAllocWindowClassExtraBytes`创建内存,分配后的地址使用`NtCallbackReturn`函数修正堆栈后重新返回内核层并保存并继续运行,而当`tagWND->flag`值包含0x800属性时候对该值采用offset 寻址。
3. 使用`NtUserConsoleControl`修改flag包含0x800属性。

`17763:[[gpKernelHandleTable] + 0x18 * ((hwnd->cx * [gSharedInfo+0x10]) >> 5)]`

提到调用`NtUserConsoleControl`会重新设置`tagWND->offset`跟`tagWND->flag`值包含`0x800`属性, flag值包含`0x800`属性采用offset 寻址。我们在当前调用`NtUserConsoleControl`的目的就是修改`tagWND->flag`值包含0x800属性,  再调用`NtCallbackReturn`函数返回指定值目的是重新修改`tagWND->offset`, 因为`win32kfull!xxxClientAllocWindowClassExtraBytes`会把返回值放入到`tagWND->offset`

`+0x058 KernelCallbackTable : 0x00007ffb0e9d1070 Void`

`00007ffb`0e9d1448`
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →