Drunkmars's Blog

CVE-2019-1388 UAC提权

字数统计: 1k阅读时长: 4 min
2021/06/01

用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。

影响范围

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SERVER
======

Windows 2008r2 7601 ** link OPENED AS SYSTEM **
Windows 2012r2 9600 ** link OPENED AS SYSTEM **
Windows 2016 14393 ** link OPENED AS SYSTEM **
Windows 2019 17763 link NOT opened


WORKSTATION
===========

Windows 7 SP1 7601 ** link OPENED AS SYSTEM **
Windows 8 9200 ** link OPENED AS SYSTEM **
Windows 8.1 9600 ** link OPENED AS SYSTEM **
Windows 10 1511 10240 ** link OPENED AS SYSTEM **
Windows 10 1607 14393 ** link OPENED AS SYSTEM **
Windows 10 1703 15063 link NOT opened
Windows 10 1709 16299 link NOT opened

漏洞原理

此漏洞是因为 UAC(用户账户控制)机制的设定不严导致的。

默认情况下, Windows 在称为「安全桌面」的单独桌面上显示所有 UAC 提示。提示本身是由名为 consent.exe 的可执行文件生成的,该可执行文件以 NT AUTHORITY\SYSTEM 身份运行并且有 System 的完整性水平。

由于用户可以与此安全桌面的 UI 进行交互,因此有必要对 UI 进行严格限制。否则,低特权用户可能能够通过 UI 操作的路由回路以 SYSTEM 的身份执行操作。甚至看起来无害的单独 UI 功能也可能是导致任意控制的一系列操作的第一步。

另一个需要了解的东西是 OID,如果在运行一个可执行文件的时候我们触发了 UAC,在点击「展示证书发行者的详细信息」这个链接之后:

image-20210601230416526

image-20210601230430741

我们可以看到证书里的 Issued by(颁发者) 字段,这个字段对应的值就是 OID

对比一下cmd的证书

image-20210601230508243

到这一步,也许找不到突破口,但是如果证书对话框定义了一个Microsoft特定对象标识符(OID),值1.3.6.1.4.1.311.2.1.10。其中WinTrust.h标头将其定义为SPC_SP_AGENCY_INFO_OBJID,如果存在,则将在细节标签中显示为SpcSpAgencyInfo。该OID的语义文献很少。但是,似乎证书对话框会解析此OID的值,如果它找到有效且格式正确的数据,它将使用它来将“常规”选项卡上的“颁发者”字段呈现为超链接。

当涉及证书对话框的UAC版本时,Microsoft没有禁用此超链接,这就给了我们提权的可能。

OID 为超链接时,通过点击此链接会触发 consent.exeSYSTEM 权限打开浏览器访问此链接,然后此浏览器就会有 SYSTEM 权限。即使该浏览器是作为SYSTEM启动的,但是它仍显示在普通桌面而不是安全桌面上。因此,只有在用户退出所有UAC对话框后,它才变得可见。因此对于攻击者来说,这具有天然的隐藏优势。通过保存该浏览页面,会弹出微软的资源管理器,在资源管理器中邮件打开 cmd.exe 程序,就会继承浏览器的 SYSTEM 权限,由此就完成了由普通用户到 NT AUTHORITY\SYSTEM 用户的提权。

漏洞复现

实验环境 win7 Service1

先用命令查看下这个漏洞有没有打对应的补丁KB4525235、KB4525233

1
systeminfo>snowming.txt&(for %i in (  KB4525235 KB4525233) do @type micropoor.txt|@find /i  "%i"|| @echo  %i It seems can be vulunable)&del /f /q /a snowming.txt

image-20210601231144256

首先查看下权限

image-20210601231228367

这里用到UAC提权专用exe:HHUPD.exe,右键以管理员权限打开并显示详细信息

image-20210601231321252

点击显示有关此发布者的证书的信息,点击颁发者此处的超链接

image-20210601231407189

等待弹出的ie页面加载完成后点击页面这个地方(此时的浏览器以system权限运行)

image-20210601231505321

点击网页另存为

image-20210601231521001

这里的报错不用管

image-20210601231549199

选择位置C:\Windows\System32\cmd.exe

image-20210601231645732

这里就会弹出一个cmd.exe的对话框,这里发现已经是system权限

image-20210601231722259

参考资料

https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2019-1388

CATALOG
  1. 1. 影响范围
  2. 2. 漏洞原理
  3. 3. 漏洞复现
  4. 4. 参考资料