BypassUAC提权
概述
UAC是微软在Windows Vista以后版本引入的一种安全机制,UAC全称是User Account Control直译为“用户帐户控制”,是微软为提高系统安全而在Windows Vista中引入的新技术,VISTA以后的微软系统中都带有这个功能,如WIN7和WIN8系统中都有,UAC需要用户在执行一些可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码。(标准管理员用户弹窗点击是与否,标准普通用户弹窗输入管理员的密码)
作用
通过UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。UAC可以阻 止未经授权的应用程序自动进行安装,并防止无意中更改系统设置
UAC四种设置请求
始终通知
这是最严格的设置 当有程序需要使用高级别的权限时都会提示本地用户
仅在程序试图更改我的计算机时通知我
UAC默认设置 当第三方程序要使用高级别的权限时,会提示本地用户
仅在程序试图更改我的计算机时通知我
与上一条设置要求相同,但是在提示用户时不降低桌面亮度
从不提示
当用户为系统管理员时,所有程序都会以最高权限运行
因为普通应用执行权限有限,某些操作必然会要求更高的管理员权限。此时,通常就需要一个权限提升的操作。程序可以向系统请求提权,系统会将此请求通过提一个提示框,请用户确认。
如果当前用户的用户组权限不是管理员,提权操作是要求输入管理员密码的,这点和在Linux中的相应操作类似。
程序只能在运行前要求提权。如果已经在运行了,那么将失去申请提权的能力
权限提升仅对此次进程有效
提升权限的操作大致有两个:
- 自动提权请求(程序在开发时默认配置触发uac请求,获取高权限运行)
- 手动提权请求( 以管理员身份运行)
手动提权就是“以管理员身份运行”,自动提权请求就是程序本身就一运行就开始申请权限,如:注册表编辑器。
UAC需要授权的动作包括:
- 配置Windows Update
- 增加或删除用户账户
- 改变用户的账户类型
- 改变UAC设置
- 安装ActiveX
- 安装或移除程序
- 安装设备驱动程序
- 设置家长控制
- 将文件移动或复制到Program Files或Windows目录
- 查看其他用户文件夹
利用Windows自身漏洞实现bypassUAC
CVE编号:CVE-2019-1388,windows证书对话框特权提升漏洞
补丁号:KB4525235 KB4525233
漏洞原理:
此漏洞是因为UAC机制的设定不严导致的,默认情况下Windows会在一个单独的桌面(Secure Desktop)上显示所有的UAC提示。这些提示是由consent.exe的可执行文件生成的,该文件以NTAUTHORITYISYSTEM身份运行,并且有System的完整性水平。
如果在运行一个可执行文件的时候我们触发了UAC,在点击[展示证书发行者的详细信息]这个链接之后可以看到证书里的Issued by字段,这个字段对应的值就是OID。证书会解析OID的值,可能显示为超链接,但是Windows忘记禁用了OID处的超链接,这就给了我们提权的可能
当OID为超链接时,通过点击此链接会触发consent.exe以SYSTEM权限打开浏览器访问此链接,然后此浏览器就会有SYSTEM权限。通过保存该浏览页面,会弹出微软的资源管理器,在资源管理器中右键打开cmd.exe程序,就会继承浏览器的SYSTEM权限,由此就完成了由普通用户到NT AUTHORITYSYSTEM用户的提权
影响系统: Microsoft Windows Server 2019 Microsoft Windows Server 2016 Microsoft Windows Server 2012 Microsoft Windows Server 2008 R2 Microsoft Windows Server 2008 Microsoft Windows RT 8.1 Microsoft Windows 8.1 Microsoft Windows 7
利用CVE-2019- 1388实现bypassUAC
1.先检查目标机是否打补丁:
systeminfo>snowming.txt&(for %i in (KB4525235 KB4525233) do @type snowming.txt|@find /i "%i"|| @echo no this padding: %i)&del /f /q /a snowming.txt
2.下载EXP:CVE-2019-1388/HHUPD.EXE
下载地址:https://github.com/jas502n/CVE-2019-1388
windows操作系统内支持软件协议,通过链接vscode://c:\windows\win.ini
3.将 exp 下载到目标机中,并以管理员权限打开HHUPD.EXE,点击显示详细信息
4.点击显示详细信息里的 "显示有关此发布者的证书的信息"
5.将弹出的网页 "另存为",弹出位置不可用窗口后点击确定
6.通过在保存网页的地址栏输入 “C:\windows\system32\cmd.exe” 打开cmd
注意:要通过地址栏打开 cmd.exe 程序,这样才能继承浏览器的 SYSTEM 权限
7.在cmd中输入whoami查看是否提权成功
其他github项目利用:https://github.com/Drunkmars/BypassUAC