ang010ela 嘶吼专业版 

CVE-2019-1388: Windows UAC权限提升漏洞_Python

该漏洞位于Windows的UAC(User Account Control,用户帐户控制)机制中。默认情况下,Windows会在一个单独的桌面上显示所有的UAC提示——Secure Desktop。这些提示是由名为consent.exe的可执行文件产生的,该可执行文件以NT AUTHORITY\SYSTEM权限运行,完整性级别为System。因为用户可以与该UI交互,因此对UI来说紧限制是必须的。否则,低权限的用户可能可以通过UI操作的循环路由以SYSTEM权限执行操作。即使隔离状态的看似无害的UI特征都可能会成为引发任意控制的动作链的第一步。事实上,UAC会话中含有尽可能少的点击操作选项。

利用该漏洞很容易就可以提升权限到SYSTEM。

用户可以右击任意可执行文件,选择以管理员权限运行进入UAC提示。这会产生一个Secure Desktop的对话,如下所示:

CVE-2019-1388: Windows UAC权限提升漏洞_Python_02

只有YES、NO、密码输入和X(关闭)按钮。用户可以点击该窗口的左上角,看到一个标准的、很少使用的窗口菜单,只有移动和关闭命令。密码输入域可以通过IME打开一些额外的UI特征。

那么show details选项呢?

CVE-2019-1388: Windows UAC权限提升漏洞_Python_03

居然有到Windows证书对话的链接:

CVE-2019-1388: Windows UAC权限提升漏洞_Python_04

Windows证书对话可以导出对话证书到文件中。然后就可以访问标准的文件保存对话,打开一个更丰富的UI功能。CVE-2019-1388: Windows UAC权限提升漏洞_Python_05

这些按钮是灰色的,也就是说微软禁用了这些功能。

但是关于证书对话,你可能不知道的是:这是一个微软指定的对象识别符(object identifier,OID),数值为1.3.6.1.4.1.311.2.1.10。WinTrust.h header将其定义为SPC_SP_AGENCY_INFO_OBJID,如果存在的话,就会展示为名为SpcSpAgencyInfo的详情tab页。关于该OID的文档很少,但是该证书对话分析了了该OID的值,如果找到有效的和适当格式的数据,就会用它来渲染General tab的Issued by域为超链接。但是在证书对话的UAC版本中,微软忘记禁用超链接了。

通过该bug,研究人员就有了一个含有如下证书的古老的微软签名的可执行文件的副本:CVE-2019-1388: Windows UAC权限提升漏洞_Python_06

点击超链接会从consent.exe启动浏览器,浏览器会以NT AUTHORITY\SYSTEM权限运行。虽然浏览器是以SYSTEM权限运行的,但是是一个正常的桌面而非Secure Desktop。所以,只有用户退出所有UAC对话后才可见。从攻击者的角度来看,这是非常理想和完美的。

下面的POC视频中有完整的过程,包括以SYSTEM权限产生命令提示的一步:

https://www.youtube.com/embed/3BQKpPNlTSo?wmode=opaque&enablejsapi=1

该漏洞CVE编号为CVE-2019-1388,微软已于2019年11月修复该漏洞。

参考来源:https://www.zerodayinitiative.com/blog/2019/11/19/thanksgiving-treat-easy-as-pie-windows-7-secure-desktop-escalation-of-privilege

CVE-2019-1388: Windows UAC权限提升漏洞_Python_07