标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-855] 作者: ecawen 发表于: [2017-10-17]
本文共 [662] 位读者顶过
近日,Ernesto Fernandez上传了一份绕过UAC保护的利用代码,该Metasploit模块将通过进程注入的方式,利用受信任的发布者证书来绕过Windows UAC。
[出自:jiwo.org] 它会产生第二个shell,它通过利用Windows系统中的“WinSxS”的方式关闭了UAC标志。 该Metasploit模块使用反射型DLL注入技术(Reflective DLL Injection)来释放带有攻击载荷的DLL文件,代替标准技术中的三个独立二进制文件。
UAC是微软在 Windows Vista 以后版本引入的一种安全机制,通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。UAC 可以阻止未经授权的应用程序自动进行安装,并防止无意中更改系统设置。
程序可获取管理员权限的途径如图所示:
在开启了 UAC 之后,如果用户是标准用户,Windows 会给用户分配一个标准 Access Token。如果用户以管理员权限登陆,会生成两份访问令牌,一份是完整的管理员访问令牌(Full Access Token),一份是标准用户令牌。一般情况下会以标准用户权限启动Explorer.exe 进程。如果用户同意,则赋予完整管理员权限访问令牌进行操作。
这种漏洞利用由“dccw.exe”管理的“WinSxS”的方法,绕过UAC保护,在不经过提示是否同意的条件下,获得管理员权限。并且支持“x86”和“x64”体系结构。
据悉,该模块利用的是2017年4月6日披露的漏洞(DccwBypassUAC),在此基础上利用内存注入的方式将恶意DLL释放出来。
该模块参考https://github.com/L3cr0f/DccwBypassUAC,在相同的漏洞基础上,利用进程注入新的利用方式绕过UAC。
两者都是先检查UAC设置,以确认它没有设置为“始终通知”,因为如果设置为该值,则该漏洞利用将是无用的。最后,验证用户是否属于管理员组,因为如果不是,该漏洞将不成功。
由于系统在执行dccw.exe的时候会检测“dccw.exe.Local\“ 来加载名为GdiPlus.dll的文件。如果不存在,则进程会在“WinSXS\“下找到文件夹获取所需的DLL,文件夹名称结构如: ![]()
该模块采用进程注入新的方法,启动notepad.exe进程,将含有攻击载荷的DLL注入该进程,从而释放恶意行为。
其实,除此之外,UAC Bypass 有很多种方法,目前获得 CVE 编号的仅有CVE-2010-4398,是利用栈溢出的。
目前公开的方法中,有以下几种方法绕过 UAC,如:
1、 白名单提权机制,如Wusa.exe Bypass UAC,infDefault.exe Bypass UAC,PkgMgr.exe Bypass UAC等。 2、 DLL劫持; 3、 Windows自身漏洞提权; 4、 远程注入; 5、 COM接口技术。 |