前言

UAC绕过的使用场景一般都在钓鱼居多

UAC是在windows Vista以后版本引入的一种安全机制,针对具有有限权限的账户来进行限制应用程序和任务或防止未经授权的应用程序改变系统设置。

如果用户以管理员权限登录,会生成两份访问令牌,一份是完整的管理员访问令牌,一份标准用户令牌,一般登录后操作都是以标准用户启动Explorer.exe(桌面),当触及到修改系统配置时,则出现UAC,如果点击同意,则赋予完整的管理员权限令牌进行操作。

所以说Bypass UAC的前提是
非administrator的管理员用户(administrators组里的其他用户),
因此我们拿到Webshell权限可以先查看下当前用户权限是否有过UAC的权限,以此来排除一些可能为UAC的问题。

如果为hight,那么默认过UAC,如果为中,可能需要Bypass UAC
whoami /groups |findstr Mandatory
image.png
或者直接看 whoami /all查看SID权限是否为500

查看当前UAC是否开启以及开启的等级

  1. REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin

image.png
image.png

原理

1、触发UAC时,系统会创建一个consent.exe进程
2、该进程会确认是否创建管理员进程(通过白名单和用户选择是否来确定)
3、creatprocess请求进程,将想要请求执行的进程cmdline和进程路径通过LPC接口传递给appinfo和RAiLuanchAdminProcess函数
4、该函数先验证进程路径是否在白名单中,然后传给consent.exe
5、consent.exe会验证进程全名以及发起者权限是否符合要求,再决定是否要弹出UAC框进行确认。
6、UAC框如果弹出,会创建新的以SYSTEM启动的Explorer.exe桌面,屏蔽之前的桌面,之前的东西无法进行交互
7、用户确认后,调用CreateProcessAsUser函数和管理员权限启动请求执行的进程。

绕过UAC

目前公开的几种绕过UAC的方式
1、各种UAC白名单的DLL劫持(如eudcedit.exe为UAC白名单)
2、各类自动提权的COM接口利用
3、Windows提权漏洞(提到system就完事了)
4、远程注入

1、使用MSF辅助绕过UAC进行

MSF UAC(绕过)提权的两个前提:
1、当前用户在管理员组中
2、UAC为默认,而不是最高,如下图
image.png
image.png
假设我们已经通过MSF获取目标系统的权限了,测试系统以win7为例没有打过其他的补丁

1、exploit/windows/local/ask

  1. 使用这个模块会需要用户手动点击弹出的程序(类似社工)

image.png
2、exploit/windows/local/bypassuac

  1. 此模块通过进程注入使用信任发布者证书绕过windows UAC

image.png
成功

3、exploit/windows/local/bypassuac_injection

  1. 此模块通过进程注入使用可信任的发布者证书绕过windows UAC

image.png
失败了,貌似看来只能攻击X86系统
image.png

4、exploit/windows/local/bypassuac_fodhelper

  1. 此模块通过在当前用户配置但愿下劫持注册表中的特殊键并插入将在windows fodheler.exe程序绕过windows UAC

image.png
直接失败

5、exploit/windows/local/bypassuac_eventvwr

  1. 此模块通过在当前用户配置单元下的劫持注册表中的特殊键并插入在windows事件查看器调用的自定义命令来绕过windows UAC

image.png

6、exploit/windows/local/bypassuac_comhijack

  1. 此模块将通过在hkcu配置单元中创建COM处理程序注册表项来绕过Windows UAC

image.png
失败

7、exploit/windows/local/bypassuac_dotnet_profiler
image.png
失败

8、exploit/windows/local/bypassuac_injection_winsxs
image.png
失败

9、 exploit/windows/local/bypassuac_sdclt
image.png
失败

10、exploit/windows/local/bypassuac_silentcleanup
image.png
失败

11、exploit/windows/local/bypassuac_sluihijack
image.png
失败

12、exploit/windows/local/bypassuac_vbs
image.png
失败

13、经过测试,win7及win10都失败了(虽然模块显示可以针对win10)
exploit/windows/local/bypassuac_windows_store_filesys
exploit/windows/local/bypassuac_windows_store_reg

2、使用Empire进行Bypassuac

image.png

4、使用Nishang中的Invoke-PsUACme.ps1

import-module .\Invoke-PsUACme.ps1;Invoke-Ps
image.png

Import-Module .\Invoke-PsUACme.ps1;Invoke-PsUACme -verbose
#使用sysprep方法并执行默认的
payloadImport-Module .\Invoke-PsUACme.ps1;Invoke-PsUACme -method oobe -verbose
#使用oobe方法并执行默认的payload
[

](https://blog.csdn.net/qq_36119192/article/details/104292591)

4、滥用UIAccess程序

https://github.com/rootm0s/WinPwnage

5、UACME(比较不错)

集成了60多种bypass UAC方法
https://github.com/hfiref0x/UACME/releases

Akagi64.exe 41 默认弹出一个cmd
Akagi64.exe 41 “C:\Windows\System32\calc.exe”
image.png

参考资料:
https://www.freebuf.com/articles/system/185311.html
https://xz.aliyun.com/t/4126