这可能是由于CredSSP加密oracle修复-RDP到Windows 10专业版主机


47

错误

在2018年5月更新Windows安全性之后,尝试将RDP传输到Windows 10 Pro工作站时,成功输入用户凭据后会显示以下错误消息:

发生认证错误。不支持所请求的功能。

这可能是由于CredSSP加密oracle修复

屏幕截图

在此处输入图片说明

调试

  • 我们已确认用户凭据正确。

  • 重新启动工作站。

  • 在Prem目录服务中确认已运行。

  • 尚未应用May安全补丁程序的隔离工作站不会受到影响。

可以临时管理烫发主机,但是关注基于云的服务器访问。在Server 2016上尚未发生。

谢谢

Answers:


20

完全基于Graham Cuthbert的答复,我在记事本中用以下几行创建了一个文本文件,然后双击该文件(文件中的任何参数都应添加到Windows注册表中)。

只需注意第一行会根据所使用的Windows版本而有所不同,因此打开regedit和导出任何规则只是查看第一行中的内容并在文件中使用相同版本可能是一个好主意。

另外,在我连接到加密VPN且主机Windows无法访问Internet并因此没有最新更新的情况下,我也不担心在这种特殊情况下会降低安全性。

档案rd_patch.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters]
"AllowEncryptionOracle"=dword:00000002

对于那些想要轻松复制/粘贴到提升的命令提示符中的人:

reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f

1
拥有Windows 10家庭版,这是最快的临时运行方式。
艾哈迈德·莫莱(Almad Molaie)'18年

1
该REG文件应该导入到客户端还是服务器上?
nivs1978 '18

@ nivs1978,假定客户端具有较新的更新而服务器没有较新的更新,则该文件应在客户端使用。因此,它将基本上允许最新的客户端连接到最近未更新的服务器。
罗德里格斯

谢谢!我正在使用Win 10 Home。我已经卸载了10次造成此问题的win更新,尽管我竭尽所能阻止了该问题,但MS一直将其退回。在此版本的Windows上也没有策略编辑器(或不遵守该策略)。我根据阅读的文档查找了这些注册表项,但这些注册表项不存在,因此我认为它们不起作用。但是我还是尝试运行您的reg文件,它像个魅力一样解决了这个问题!
BuvinJ

16

凭据安全支持提供程序协议(CredSSP)是一种身份验证提供程序,它处理其他应用程序的身份验证请求。

未修补的CredSSP版本中存在一个远程执行代码漏洞。成功利用此漏洞的攻击者可以中继用户凭据以在目标系统上执行代码。任何依赖CredSSP进行身份验证的应用程序都可能容易受到这种类型的攻击。

[...]

2018年3月13日

最初的2018年3月13日发行版为所有受影响的平台更新了CredSSP身份验证协议和远程桌面客户端。

缓解措施包括在所有合格的客户端和服务器操作系统上安装更新,然后使用随附的组策略设置或基于注册表的等效项来管理客户端和服务器计算机上的设置选项。我们建议管理员在客户端和服务器计算机上尽快应用该策略,并将其设置为“强制更新客户端”或“缓解”。这些更改将需要重新启动受影响的系统。

请密切注意组策略或注册表设置对,它们会导致本文后面的兼容性表中的客户端和服务器之间的“阻止”交互。

2018年4月17日

KB 4093120中的远程桌面客户端(RDP)更新更新将增强当更新的客户端无法连接到尚未更新的服务器时显示的错误消息。

2018年5月8日

将默认设置从“易受攻击”更改为“已缓解”的更新。

来源:https : //support.microsoft.com/en-us/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018 [1]

另请参阅以下reddit线程:https : //www.reddit.com/r/sysadmin/comments/8i4coq/kb4103727_breaks_remote_desktop_connections_over/ [2]

微软的解决方法:

  • 更新服务器和客户端。(需要重启,推荐)

如果您的服务器是公开可用的,或者您的内部网络中没有严格的流量控制,则不建议使用此解决方法,但是有时在工作时间内重启RDP服务器是不可行的。

  • 通过GPO或注册表设置CredSSP修补策略。(需要重新启动或gpupdate / force)
  • 卸载KB4103727(无需重新启动)
  • 我认为禁用NLA(网络层身份验证)也可能有效。(无需重新启动)

请务必了解使用这些风险并尽快修补您的系统。

[1]所有GPO CredSSP描述和注册表修改均在此处描述。

[2] GPO和注册表设置的示例,以防Microsoft网站崩溃。


我想是的,是的。:)据我所知,Windows 7,Windows 8.1,Windows 10和Server 2016在我的环境中受到影响。最后,我们必须修补每个受支持的Windows版本。
米歇尔·索科洛夫斯基

3
确认在目标服务器上禁用NLA是一种临时解决方法。
凯图拉

有人方便使用一些PS(Powershell)脚本进行检查吗?在服务器和客户端上?
提洛

是因为服务器上的RDP被更新而客户端没有被更新,还是客户端被更新而服务器没有被更新,是因为此错误?
nivs1978 '18

@ nivs1978,AFAIR,两种情况都会产生相同的症状。
Michal Sokolowski

7
  1. 转到“本地组策略编辑器>管理模板>系统>凭据委派>加密Oracle补救”,对其进行编辑和启用,然后将“保护级别”设置为“缓解”。
  2. 设置注册密钥(从00000001到00000002)[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System \ CredSSP \ Parameters]“ AllowEncryptionOracle” = dword:
  3. 如果需要,请重新启动系统。

除了启用它并将其设置为Vulnerable之外,我使用了第一步。然后,我能够将W10 RDP传送到网络上的W7机器
seizethecarp

我已经按照您所说的做过并且工作了!客户端W10和服务器WS2012 R2。谢谢!
披披

4

研究

参考本文:

https://blogs.technet.microsoft.com/askpfeplat/2018/05/07/credssp-rdp-and-raven/

2018年5月的临时更新,可能会影响在组织内建立远程主机RDP会话连接的能力。如果本地客户端和远程主机在注册表中定义了如何使用CredSSP构建RDP会话的注册表中具有不同的“加密Oracle修复”设置,则会发生此问题。下面定义了“加密Oracle修复”设置选项,如果服务器或客户端对建立安全RDP会话的期望不同,则可能会阻止连接。

暂定于2018年5月8日发布的第二次更新会将默认行为从“易受攻击”更改为“缓解”。

如果您注意到客户端和服务器均已打补丁,但默认策略设置为“易受攻击”,则RDP连接为“易受攻击”。将默认设置修改为“缓解”后,默认情况下,连接变为“安全”。

解析度

基于此信息,我将继续确保所有客户端均已打补丁,然后希望该问题得到缓解。


4

Windows 10机器上没有注册表值。我必须转到以下本地组策略并将更改应用到我的客户端上:

计算机配置->管理模板->系统->凭据委派-加密Oracle修复

启用并设置为 vulnerable.


这在W10上对我
有用,它

3

建议您更新客户端,而不是更新此类脚本,以绕过该错误,但是您自己承担风险,即可在客户端上执行此操作,而无需重新启动客户端PC。也无需更改服务器上的任何内容。

  1. 打开Run,键入gpedit.msc并单击OK
  2. 展开Administrative Templates
  3. 展开System
  4. 打开Credentials Delegation
  5. 在右侧面板上,双击Encryption Oracle Remediation
  6. 选择Enable
  7. VulnerableProtection Level列表中选择。

此策略设置适用于使用CredSSP组件的应用程序(例如:远程桌面连接)。

某些版本的CredSSP协议容易受到针对客户端的加密oracle攻击。此策略控制与易受攻击的客户端和服务器的兼容性。通过此策略,您可以设置加密oracle漏洞所需的保护级别。

如果启用此策略设置,则将基于以下选项选择CredSSP版本支持:

强制更新客户端:使用CredSSP的客户端应用程序将无法使用不安全的版本,使用CredSSP的服务将不接受未修补的客户端。注意:在所有远程主机都支持最新版本之前,不应部署此设置。

缓解:使用CredSSP的客户端应用程序将无法使用不安全版本,但是使用CredSSP的服务将接受未修补的客户端。有关剩余未打补丁的客户所带来的风险的重要信息,请参见下面的链接。

漏洞:使用CredSSP的客户端应用程序将通过支持回退到不安全的版本来使远程服务器受到攻击,并且使用CredSSP的服务将接受未修补的客户端。

  1. 单击应用。
  2. 单击确定。
  3. 做完了

在此处输入图片说明 参考


您建议人们单击选项“易受攻击”。IT会很好地解释其后果,而不是仅仅给出一个(好的)脚本来做到这一点。
Law29 '18

@ Law29你是正确的,更新!
AVB

0

这个人有针对您确切问题的解决方案:

本质上-您必须更改GPO设置并强制进行更新。但是,这些更改将需要重新启动才能生效。

  1. 从刚更新的计算机中复制这两个文件;

    • C:\Windows\PolicyDefinitions\CredSsp.admx (Dtd Did 2018年2月)
    • C:\Windows\PolicyDefinitions\en-US\CredSsp.adml (Dtd Feb 2018 –您的本地文件夹可能有所不同,即en-GB)
  2. 在DC上,导航至:

    • C:\Windows\SYSVOL\sysvol\<your domain>\Policies\PolicyDefinitions
    • 重命名CredSsp.admxCredSsp.admx.old
    • 将新副本复制CredSsp.admx到此文件夹。
  3. 在同一DC上,导航至:

    • C:\Windows\SYSVOL\sysvol\<your domain>\Policies\PolicyDefinitions\en-US (或您的本地语言)
    • 重命名CredSsp.admlCredSsp.adml.old
    • 将新CredSsp.adml文件复制到此文件夹。
  4. 重试您的组策略。

https://www.petenetlive.com/KB/Article/0001433


0

正如其他人所说,这是因为Microsoft发布了3月补丁。他们在5月8日发布了5月补丁,该补丁实际上执行了3月补丁。因此,如果您的工作站收到了May补丁程序,并且尝试连接到尚未收到March补丁程序的服务器,则会在屏幕截图中看到错误消息。

解决方案您确实要修补服务器,以便它们具有三月修补程序。否则,与此同时,您可以应用组策略或注册表编辑。

您可以阅读本文中的详细说明: 如何修复不支持的身份验证错误功能CredSSP错误RDP

如果需要,还可以找到ADMX和ADML文件的副本。


0

我有同样的问题。客户端在Win7上,RDS服务器在2012R2上,客户端收到“ 2018-05安全每月质量汇总更新(kb4019264)”。删除后,一切正常。


0

我发现某些机器在一月份某个时候停止执行Windows Update(我们在整个域中运行本地WSUS)。我猜测是以前的补丁引起了问题(机器会抱怨过时,但不会安装它说需要的Jan补丁)。由于1803更新,我们不能仅仅直接使用MS的Windows Update来修复它(由于某些原因超时,并且更新将无法运行)。

我可以确认,如果将计算机修补到版本1803,则包含对此的修复程序。如果您需要快速的路径来解决此问题,我可以使用Windows Update Assistant(上面的顶部链接显示Update)直接执行更新(出于某种原因,它似乎比Windows Update更稳定)。


该链接可让我下载Windows 10 ISO。这就是您要链接的内容吗?
迈克尔·汉普顿

@MichaelHampton底部链接用于ISO工具。“立即更新”链接适用于更新助手
Machavity

0

我们删除了最新的安全更新KB410731,并且能够在内部版本1709和更早版本的Windows 10计算机上进行连接。对于PC,我们可以升级到内部版本1803,这可以解决此问题,而无需卸载KB4103731。



0

以管理员身份打开PowerShell并运行以下命令:

REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2

现在尝试连接到服务器。它会工作。


0

我在这里找到了答案,所以不能声称它是我自己的,但是将以下注册表项添加到我的注册表中并重新启动为我修复了它。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters]
"AllowEncryptionOracle"=dword:00000002

6
这意味着您与所有未执行oracle解密补救措施的服务器的通信被允许降级并可以被解密。因此,您将自己置于危险之中。当前,即使具有已升级credSSP的服务器也不会默认拒绝拒绝降级的客户端,因此,这实际上意味着您的所有远程桌面会话都处于危险之中,即使您的客户端在此问题上是最新的!
user188737

1
不建议更改此注册表。
spuder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.