简介
用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果。
影响范围
代码语言:txt复制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 AUTHORITYSYSTEM
身份运行并且有 System
的完整性水平。
由于用户可以与此安全桌面的 UI 进行交互,因此有必要对 UI 进行严格限制。否则,低特权用户可能能够通过 UI 操作的路由回路以 SYSTEM 的身份执行操作。甚至看起来无害的单独 UI 功能也可能是导致任意控制的一系列操作的第一步。
另一个需要了解的东西是 OID
,如果在运行一个可执行文件的时候我们触发了 UAC,在点击「展示证书发行者的详细信息」这个链接之后:
我们可以看到证书里的 Issued by(颁发者)
字段,这个字段对应的值就是 OID
。
对比一下cmd的证书
到这一步,也许找不到突破口,但是如果证书对话框定义了一个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.exe
以 SYSTEM
权限打开浏览器访问此链接,然后此浏览器就会有 SYSTEM
权限。即使该浏览器是作为SYSTEM
启动的,但是它仍显示在普通桌面而不是安全桌面上。因此,只有在用户退出所有UAC
对话框后,它才变得可见。因此对于攻击者来说,这具有天然的隐藏优势。通过保存该浏览页面,会弹出微软的资源管理器,在资源管理器中邮件打开 cmd.exe
程序,就会继承浏览器的 SYSTEM
权限,由此就完成了由普通用户到 NT AUTHORITYSYSTEM
用户的提权。
漏洞复现
实验环境 win7 Service1
先用命令查看下这个漏洞有没有打对应的补丁KB4525235
、KB4525233
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
首先查看下权限
这里用到UAC提权专用exe:HHUPD.exe,右键以管理员权限打开并显示详细信息
点击显示有关此发布者的证书的信息,点击颁发者此处的超链接
等待弹出的ie页面加载完成后点击页面这个地方(此时的浏览器以system权限运行)
点击网页另存为
这里的报错不用管
选择位置C:WindowsSystem32cmd.exe
这里就会弹出一个cmd.exe
的对话框,这里发现已经是system权限
参考资料
https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2019-1388