【误差通告】 Microsoft Windows PsExec 0day误差
宣布时间 2021-01-080x00 误差概述
CVE ID | 时 间 | 2021-01-08 | |
类 型 | LPE | 等 级 | 高危 |
远程使用 | 否 | 影响规模 | PsExec v1.72-v2.2 |
0x01 误差详情

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”管道受到�;�,仅允许管理员举行读/写会见。

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

在这里,从nMaxInstances参数可以看到,它允许保存无限的“\PSEXESVC”管道实例。别的,它并不可确保它是第一个建设“\PSEXESVC”管道的应用程序,并且通常使用FILE_FLAG_FIRST_PIPE_INSTANCE标记来完成。在这种情形下,它将实验建设命名管道,若是命名管道已经保存,则只需在挪用后获取现有“\PSEXESVC”管道的句柄即可,这将继续现有管道的ACL。
以下,通过制作了一个简朴的“ PipeHijack.exe”程序,该程序建设了“\PSEXESVC”管道,该管道具有对“ David Wells”用户的读/写会见权限。

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

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/



京公网安备11010802024551号