Win10保存外地提权0day误差
宣布时间 2018-08-302018年8月27日,清静研究职员在Twitter上披露了Windows 10系统中的一个0day误差。该误差是一个外地提权误差,保存于Windows的使命调理服务中,允许攻击者从USER权限提权到SYSTEM权限。微软官方现在还没有提供响应的补丁。
二、误差影响规模
Windows 10
Windows Server 2016
三、误差剖析
Microsoft Windows系统的使命调理服务中高级外地历程挪用(ALPC)接口保存外地提权误差,该误差保存于schedsvc.dll�?橹械腟chRpcSetSecurity函数,SchRpcSetSecurity函数界说如下,函数功效是设置清静形貌符。
HRESULT SchRpcSetSecurity(
[in, string] const wchar_t* path,
[in, string] const wchar_t* sddl,
[in] DWORD flags
);
SchRpcSetSecurity第一个参数为路径path,第二个参数为清静形貌符界说语言 (SDDL) 字符串sddl,该函数内部挪用了SetSecurity::RpcServer函数。
SetSecurity::RpcServer函数首先挪用ConvertStringSecurityDescriptorToSecurityDescriptor 将SchRpcSetSecurity函数传入的sddl字符串转换为清静形貌符SecurityDescriptor。并挪用TaskPathCanonicalize函数对传入path参数路径规范化为Dst。
然后获取Dst路径的JobSecurity清静形貌符pSecurityDescriptor,继而挪用JobSecurity::Update函数,传入SecurityDescriptor参数,更新pSecurityDescriptor。
最后,挪用JobSecurity::AddRemovePrincipalAce函数设置DACL。
那么怎样修改指定目的文件的DACL属性呢?首先,使用ZwSetInformationFile函数为目的文件建设硬链接。然后,挪用_SchRpcSetSecurity函数设置硬链接文件的DACL,等同于修改目的文件的DACL。通过设置SchRpcSetSecurity的第3个参数,可以为用户Administrators(BA)、Authenticated Users(AU)添加对硬链接文件的写入权限。
以PrintConfig.dll文件为例,挪用SchRpcSetSecurity函数前,文件会见权限如下,此时Administrators不具有对文件的写入权限。
四、清静建议
不要运行未知泉源的程序;
? 在微软更新补丁后,实时装置补丁。
五、参考链接
https://thehackernews.com/2018/08/windows-zero-day-exploit.html
https://www.kb.cert.org/vuls/id/906424


京公网安备11010802024551号