【误差通告】 Microsoft Windows PsExec 0day误差

宣布时间 2021-01-08

0x00 误差概述

CVE  ID


时  间

2021-01-08

类   型

LPE

等  级

高危

远程使用

否

影响规模

PsExec v1.72-v2.2

 

0x01 误差详情

image.png

PsExec是SysInternals套件的一部分 ,它是系统管理员的一种工具 ,可在盘算机客户端远程执行应用程序。

2020年12月09日 ,PsExec被披露保存一个外地权限提升0day误差 ,该误差被命名为管道挟制(或命名管道占用)误差 ,该误差允许攻击者诱使PsExec重新翻开恶意建设的命名管道并授予其外地系统权限。乐成使用此误差后 ,攻击者将能够以外地系统的身份执行恣意历程 ,从而控制整个盘算机。

相关研究职员体现 ,该误差影响PsExec版本从1.72到最新版本2.2 ,这意味着该误差已经保存约莫14年了。

 

误差细节

PsExec包括一个名为“PSEXESVC”的嵌入式资源 ,它是一个可执行的服务级别组件 ,每当PsExec客户机以远程机械为目的执行PsExec时 ,该组件就会作为SYSTEM被提取、复制到远程机械上并执行。PsExec客户端和远程PSEXESVC服务之间的通讯通过命名管道举行。详细来说 ,名为“\PSEXESVC”的管道认真剖析和执行PsExec客户端的下令 ,好比“要执行哪个应用程序”、“相关下令行数据”等。

虽然 ,出于清静缘故原由 ,PSEXESVC服务的“\PSEXESVC”管道受到� ;� ,仅允许管理员举行读/写会见。

image.png

 

可是 ,通过管道抢注(即首先建设管道的要领) ,低权限应用程序可以会见该管道。也就是说 ,若是外地低权限应用程序在执行PSEXESVC之前建设了“\PSEXESVC”命名管道 ,则PSEXESVC将获取现有实例的句柄 ,而不是建设命名管道 ,这将爆发一些意料之外的效果 ,稍后将看到。下面展示了PSEXESVC怎样建设“\PSEXESVC”管道的反汇编:

image.png

 

在这里 ,从nMaxInstances参数可以看到 ,它允许保存无限的“\PSEXESVC”管道实例。别的 ,它并不可确保它是第一个建设“\PSEXESVC”管道的应用程序 ,并且通常使用FILE_FLAG_FIRST_PIPE_INSTANCE标记来完成。在这种情形下 ,它将实验建设命名管道 ,若是命名管道已经保存 ,则只需在挪用后获取现有“\PSEXESVC”管道的句柄即可 ,这将继续现有管道的ACL。

 

以下 ,通过制作了一个简朴的“ PipeHijack.exe”程序 ,该程序建设了“\PSEXESVC”管道 ,该管道具有对“ David Wells”用户的读/写会见权限。

image.png

 

运行后 ,若是未来在本机受骗地或远程执行PsExec ,PSEXESVC实例将获得管道的句柄 ,并可以读取/写入该句柄 ,从而允许低权限应用程序与此PSEXESVC系统服务通讯。

image.png

 

PoC链接:

https://github.com/tenable/poc/blob/master/Microsoft/Sysinternals/PsExecEscalate.cpp

 

0x02 处置惩罚建议

现在 ,Microsoft暂未宣布此误差的清静更新 ,但 0patch团队已经宣布了此误差的微补丁。

下载链接:

https://blog.0patch.com/2021/01/local-privilege-escalation-0day-in.html

 

0x03 参考链接

https://www.bleepingcomputer.com/news/security/windows-psexec-zero-day-vulnerability-gets-a-free-micropatch/

https://medium.com/tenable-techblog/psexec-local-privilege-escalation-2e8069adc9c8

 

0x04 时间线

2020-12-09  David Wells披露误差

2021-01-07  0patch团队宣布微补丁

2021-01-08  VSRC宣布清静通告

 

0x05 附录

 

CVSS评分标准官网:http://www.first.org/cvss/

image.png