2018年8月27日,安全研究人员在github上公布了最新的win10x64版的本地提权漏洞,并且在推特上对其提权的demo进行了演示。在github上的SandboxEscaper上有着完整的漏洞利用程序以及demo,并且被其他安全研究专家证实该漏洞可以在最近的win10上复现。
### 千里百科
Windows 10是Microsoft生产的一系列个人计算机操作系统,是Windows NT系列操作系统的一部分。它于2015年7月29日发布。Windows 10持续不断地发布新版本,用户无需支付额外费用。截至2017年11月,该操作系统在超过6亿台设备上运行。
### 漏洞描述
该漏洞的原因在于win10系统的任务调度服务中有alpc的调用接口,该接口导出了SchRpcSetSecurity函数,该函数正是本次漏洞利用到的函数。该函数的原型如下:
```
long _SchRpcSetSecurity(
[in][string] wchar_t* arg_1, //Task name
[in][string] wchar_t* arg_2, //Security Descriptor string
[in]long arg_3);
```
当任意权限的用户调用该函数时,该函数会检测 c:\windows\tasks目录下是否存在一个后缀为job的文件,如果该文件存在会向该文件写入指定的DACL数据。本次漏洞利用的方式即通过硬链接的方式将该job文件指定链接到特定的dll上,这样当用户调用该函数时会向特定的dll写入数据,而特定的dll往往是系统级别的dll。在github上发布的漏洞利用程序则会向printconfig.dll写入提权代码,并通过启动打印服务spoolsv.exe来执行提权代码,从而实现内核提权。
### 漏洞复现
本次复现使用了win10x64版,首先使用github上提供的漏洞利用工具,查看其具体用法。该漏洞利用工具的主要方式是通过dll注入的方式向低权限的进程注入可以实现整套提权攻击的shellcode。
![](https://images.seebug.org/1535510214688)
但随后利用ie浏览器进行测试时发现无法利用成功,虽然漏洞利用的dll已经被写入到spoolsv.exe中,但却没有实现漏洞真正的效果。
接下来按照演示demo中的操作,打开一个notepad程序,并对notepad程序进行注入
![](https://images.seebug.org/1535510236606)
随后查看spoolsv.exe下的所有子进程,发现该notepad.exe程序被spoolsv.exe程序重新打开,和github上的漏洞利用的demo中的效果一致,可以确定漏洞利用成功。
![](https://images.seebug.org/1535510323098)
接下来查看spoolsv.exe中的第三方动态库,可以看到我们利用漏洞所修改的dll
![](https://images.seebug.org/1535510252542)
而该dll的修改时间也显示是刚刚漏洞利用的时间
![](https://images.seebug.org/1535510388514)
至此漏洞复现成功。
### 影响版本
win10 x64、x32
暂无评论