如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(1)

翻译:WisFree

预估稿费:120RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

写在前面的话


用户账户控制(UAC)是微软开发出的一套安全控制机制,其目的是为了限制未经授权的应用程序以管理员等级的权限执行,但是当管理员提供了密码并允许该程序执行的话,那么这个非特权应用仍然能够以管理员权限运行。这也就意味着,由于用户账户控制机制的存在,渗透测试人员就可以通过Meterpreter来阻止这种提权方法。

下图即为UAC阻止应用程序提权的演示样例:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(2)

Matt Nelson在其发布的技术博客中解释称,通过劫持注册表键,我们是有可能利用类似Event Viewer(事件查看器)这样的原生Windows服务来绕过用户账户控制(UAC)的。首先,Event Viewer(事件查看器)的进程(eventvwr.exe)是以高级完整权限运行的;其次,Event Viewer(事件查看器)是Microsoft Management Console(微软管理控制台)通过注册表进行加载的,因此我们的这个假设完全是可以实现的。

这里需要注意的是,当eventvwr.exe被执行之后,它会尝试在下面这两个注册表地址中搜索mmc.exe:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(3)

由于第一个注册表地址并不存在,因此mmc.exe会以第二个注册表地址运行,随后该地址便会加载文件eventvwr.msc并将相关信息显示给用户。

下图即为MMC以及事件查看器的相关信息:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(4)

这样一来,攻击者就有可能创建一个压根不存在的注册表地址来以高级权限运行某个进程了,而这样就可以允许攻击者绕过目标系统的用户账户控制(UAC)。

下图显示的是攻击者通过事件查看器来提升命令控制台(CMD)权限的操作界面:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(5)

当eventvwr.exe得到执行之后,它将会直接打开命令控制台窗口,而且在整个过程中系统既不会弹出用户账户控制窗口,也不会请求高级权限。如下图所示:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(6)

这项攻击技术的隐蔽性非常高,因为整个过程根本无需触及硬盘,而且也不需要进行任何的进程注入,这样就可以防止被那些基于进程行为监控的反病毒产品或安全解决方案所检测到。

自动化实现


需要注意的是,我们还可以通过一个不可检测的恶意Payload来代替之前所弹出的命令控制台窗口,这样不仅可以允许我们通过Meterpreter会话来实现自动化提权,而且还可以执行很多其他的系统级指令。我们可以在注册表中加载自定义Payload:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(7)

我们可以在进程查看器中看到,进程pentestlab3.exe再一次以高级权限运行了:

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(8)

Metasploit的handler模块可以捕获到提权的Meterpreter会话,而此时我们就可以给目标应用进行提权了,因为我们现在已经绕过了目标系统的用户账户控制。

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(9)

Metasploit


除了上面所描述的技术方法之外,我们也可以使用Metasploit提供的模块来实现整个攻击过程的自动化,并自动返回一个高权限的Meterpreter会话。命令如下:

通过事件查看器绕过用户账户控制(Metasploit版):

如何关闭uac用户控制(看我如何利用事件查看器绕过UAC)(10)

参考资料


1. https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/

2. https://github.com/enigma0x3/Misc-PowerShell-Stuff/blob/master/Invoke-EventVwrBypass.ps1

3. https://www.rapid7.com/db/modules/exploit/windows/local/bypassuac_eventvwr

4. https://www.mdsec.co.uk/2016/12/cna-eventvwr-uac-bypass/

5. https://github.com/mdsecresearch/Publications/blob/master/tools/redteam/cna/eventvwr.cna

,