CVE-2016-0095 Win32k.sys特权提升漏洞
0x00 漏洞分析 参考: https://www.anquanke.com/post/id/86040 1. 运行 poc , windbg 捕捉到崩溃异常,栈回溯,可以看出是 bGetRealizedBrush 函数里触发了异常 2. 分析下 bGetRealizedBrush 函数崩溃处的代码 2.1 ida 分析下可以看出 eax 引用的是 pEBRUSHOBJ 结构体偏移 0x34 处的结构再偏 移 1c 的数据从而访问无效地址 2.2 对 bGetRealizedBrush 下硬件执行断点 ,ebx = 96bd9af8 ,eax = fe8d8658, eax+1c = 0 3. poc 中的 FillRgn 函数调用内核 NtGdiFillRgn 函数 , 分析 NtGdiFillRgn 3.1 初始化 poc 中 hRgn 对象的数据 3.2 初始化 poc 中 hBrush 结构( pEBRUSHOBJ ) 3.3 获取 poc 中 COLORREF 的值 3.4 到达 EngPaint 函数 , 可以知道大概传进的数据类型 3.5 _SURFOBJ 结构( fe174250 ) , 而导致蓝屏的 pEBRUSHOBJ 结构( 8a16eaf8 ) 偏移 0x34 是 fe174240,fe174240 偏移 0x1c 是 0; 也...