【误差通告】 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