Windows本地提权漏洞CVE20

山东白癜风医院 http://pf.39.net/bdfyy/bdflx/171107/5824581.html

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.1

漏洞简介

年3月10日,微软官方公布了一个本地提权漏洞CVE--,根据微软的漏洞描述声称,攻击者在使用低权限用户登录系统后,可以利用该漏洞构造恶意程序直接提权到administrator或者system权限。system是windows所有操作系统中权限 的账户。

No.2

漏洞影响

Windows10for32-bitSystemsWindows10forx64-basedSystemsWindows10Versionfor32-bitSystemsWindows10Versionforx64-basedSystemsWindows10Versionfor32-bitSystemsWindows10VersionforARM64-basedSystemsWindows10Versionforx64-basedSystemsWindows10Versionfor32-bitSystemsWindows10VersionforARM64-basedSystemsWindows10Versionforx64-basedSystemsWindows10Versionfor32-bitSystemsWindows10VersionforARM64-basedSystemsWindows10Versionforx64-basedSystemsWindows10Versionfor32-bitSystemsWindows10VersionforARM64-basedSystemsWindows10Versionforx64-basedSystemsWindows10Versionfor32-bitSystemsWindows10VersionforARM64-basedSystemsWindows10Versionforx64-basedSystemsWindows7for32-bitSystemsServicePack1Windows7forx64-basedSystemsServicePack1Windows8.1for32-bitsystemsWindows8.1forx64-basedsystemsWindowsRT8.1WindowsServerfor32-bitSystemsServicePack2WindowsServerfor32-bitSystemsServicePack2(ServerCoreinstallation)WindowsServerforItanium-BasedSystemsServicePack2WindowsServerforx64-basedSystemsServicePack2WindowsServerforx64-basedSystemsServicePack2(ServerCoreinstallation)WindowsServerR2forItanium-BasedSystemsServicePack1WindowsServerR2forx64-basedSystemsServicePack1WindowsServerR2forx64-basedSystemsServicePack1(ServerCoreinstallation)WindowsServerWindowsServer(ServerCoreinstallation)WindowsServerR2WindowsServerR2(ServerCoreinstallation)WindowsServerWindowsServer(ServerCoreinstallation)WindowsServerWindowsServer(ServerCoreinstallation)WindowsServer,version(ServerCoreInstallation)WindowsServer,version(ServerCoreinstallation)WindowsServer,version(ServerCoreinstallation

No.3

复现过程

漏洞分析

CreateJob()方法在IBackgroundCopyGroup的COldGroupInterface类中实现

由于CFG的存在,看不出什么信息,这个方法调用CreateJobInternal()方法,CreateJobInternal()调用CLockedJobWritePointer::ValidateAccess

CLockedJobWritePointer::ValidateAccess调用了CJob::CheckClientAccess

CheckClientAccess()检查用户token并应用于当前线程的impersonation这个执行流返回CreateJobInternal方法,并调用CJob::GetOldJobExternal返回IBackgroundCopyJob1类型的指针

调用流程

(CLIENT)IBackgroundCopyGroup::CreateJob()

V(SERVER)COldGroupInterface::CreateJob()

__COldGroupInterface::CreateJobInternal()

__CLockedJobWritePointer::ValidateAccess()

__CJob::CheckClientAccess()//Clientimpersonation

__CJob::GetOldJobExternal()//IBackgroundCopyJob1*returned

了解了CreateJob()的实现原理,回到QueryNewJobInterface()方法,如果提供的GUID匹配IID_IBackgroundCopyJob,调用CJob::GetJobExternal,查询新的接口指针调用并返回给客户端。

流程

(CLIENT)IBackgroundCopyGroup::QueryNewJobInterface()

V(SERVER)COldGroupInterface::QueryNewJobInterface()

__CJob::GetJobExternal()//IBackgroundCopyJob*returned

当调用IBackgroundCopyGroup::QueryNewJobInterface()获取一个IBackgroundCopyJob类型的指针时,这个工作是由服务端完成的,而不是RPC客户端。此时可以利用成功。MoveFileEx()调用流程

漏洞验证

poc:


转载请注明:http://www.xxcyfilter.com/zyjn/zyjn/11547.html