在Windows 10上删除易受攻击的密码会破坏传出的RDP


16

由于运行RDP的Windows 10计算机,TrustWave的漏洞扫描程序无法通过扫描:

具有64位块大小(例如DES和3DES)的生日攻击的块密码算法,称为Sweet32(CVE-2016-2183)

注意:在运行RDP(远程桌面协议)的Windows 7/10系统上,应禁用的易受攻击的密码标记为“ TLS_RSA_WITH_3DES_EDE_CBC_SHA”。

使用Nartac的IIS Crypto,我尝试应用“最佳实践”模板以及PCI 3.1模板,但是它们都包含不安全的密码(TLS_RSA_WITH_3DES_EDE_CBC_SHA):

密码筛

如果禁用此密码,则从此计算机到许多Windows工作站的RDP 将停止工作(它仍可用于某些2008 R2和2012 R2服务器)。RDP客户端仅给出“发生内部错误”和事件日志:

创建TLS客户端凭据时发生致命错误。内部错误状态为10013。

我检查了其中一台服务器的服务器事件日志,并看到这两条消息

从远程客户端应用程序收到了TLS 1.2连接请求,但是服务器不支持客户端应用程序支持的所有密码套件。SSL连接请求失败。

生成以下致命警报:40.内部错误状态为1205。

如何在不破坏传出RDP的情况下修复安全漏洞?

或者,如果上述操作不可行,那么在无法再连接到该RDP主机上的每个RDP主机上是否可以做些什么呢?

--- 更新#1 ---

在Windows 10计算机上禁用TLS_RSA_WITH_3DES_EDE_CBC_SHA之后,我尝试连接到多个RDP主机(其中一半失败,并显示“内部错误...”)。所以,我比较了这些主机中的一个,我可以连接到一个打击,我无法连接。两者都是2008 R2。两者都具有相同的RDP版本(6.3.9600,支持RDP协议8.1)。

我使用IIS加密对TLS协议和密码进行了比较,以对它们的当前设置执行“保存模板”,以便可以比较模板文件。他们是一样的!因此,无论出现什么问题,似乎都不是主机上缺少Chipher套件的问题。这是文件“超越比较”的屏幕截图:

密码比较

导致此问题的两个RDP主机之间可能有何不同以及如何解决?


您可以使用NetMon或Wireshark捕获客户端问候/服务器问候,以查看在连接失败与成功时实际上正在协商哪种密码套件吗?
Ryan Ries

@RyanRies:已经做到了,但是它从来没有达到真正的TLS握手。客户端发送“ TPKT,Continuation”包,服务器以“ RST,ACK”响应。
Zek

Answers:


3

IIS Crypto可以选择设置服务器端(传入)和客户端端(传出)选项。您需要在客户端启用一些密码以保持兼容性。

要完成您想做的事情,我个人将遵循以下条件:

  • 应用3.1模板
  • 启用所有密码套件
  • 应用于客户端和服务器(选中复选框)。
  • 点击“应用”以保存更改

如果需要,请在此处重新启动(并且您可以物理访问计算机)。

  • 应用3.1模板
  • 启用所有密码套件
  • 应用于服务器(未选中复选框)。
  • 取消选中3DES选项

在此处重新启动应导致正确的结束状态。

实际上,您只想禁用3DES入站,但仍然允许出站使用所述密码套件。


听起来很有希望!但是,禁用3DES 168似乎是一个错误-我无法再连接到它。一旦解决了这个问题,我将尝试仅在服务器端禁用密码,然后报告/接受答案。
Zek

我尝试了您的建议:1)应用“最佳实践”并同时应用于服务器和客户端,然后2)取消选中TLS_RSA_WITH_3DES_EDE_CBC_SHA密码和“设置客户端协议”,然后再次应用,然后当然重新启动。从本机进行RDPing的问题仍然存在。欢迎其他建议。
Zek

1
@Zek奇怪...我使用了完全相同的技术并使其起作用。
蒂姆·布里格姆

@Zek我才意识到我在写这篇文章时犯了一个重大错误。我会相应地更新。
蒂姆·布里格姆

我试过了 1)选择3.1模板+保持所有密码套件不变+启用“设置客户端协议” +选中TLS 1.0(SQL等不带TLS 1.0的破解)+应用并重新启动。2)选择3.1模板+保留所有密码套件的原样+取消选中“设置客户端协议” +取消选中3DES +选中TLS 1.0 +应用并重新启动。我无法再连接“发生内部错误”(我认为服务器必须支持3DES)。我正在从Windows 10计算机连接。
Zek

1

我遇到了同样的问题,在服务器上安装KB3080079修补程序会启用对tls 1.1和1.2的支持。

请注意,对于Windows 7客户端,您将必须安装rdp客户端更新(KB2830477),否则,只有Windows 8+才能连接。


1
我只是仔细检查过,这些更新已经安装(我相信它们已经包含在标准Windows更新中已有一段时间了),所以这不是问题。
Zek

1

编辑(2018-09-26):我发现在2012R2上禁用3DES不会破坏RDP,但在2008 R2上却会破坏。内核之间支持的选项似乎有所不同。


我将通过TechNet 线程分享我的答案,但首先是BLUF:

Serverfault结论:很可能您在系统之间有其他差异。您正在不同的OS版本之间进行连接,一个系统启用了FIPS,而另一个系统则未启用,或者您在下具有不同的密码限制HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers。我肯定会在确实可以确定正在使用哪种密码的系统上启用SCHANNEL登录。如果您以某种方式让RDP使用备用密码,不胜感激。

帖子副本:

我们成功了!

显然,2008年和2012年存在语法问题,而2008/7年则要求后跟/ 168。2012 / 8.1 / 10没有。

2008年的密钥如下所示: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168/168

2012年的密钥如下所示: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168

我可以确认使用“ Triple DES 168/168”不会禁用系统上的3DES。您可以使用协议扫描仪(例如Nessus)或通过启用SCHANNEL日志记录来证明这一点:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL] "EventLogging"=dword:00000007

例如,您将在SYSTEM日志中拥有事件;

SSL客户端握手已成功完成。协商的密码参数如下。

通讯协定:TLS 1.0 CipherSuite:0x2f交换强度:1024

对我来说,结果是0xa,Google将其显示为TLS_RSA_WITH_3DES_EDE_CBC_SHA。

当我使用“三重DES 168”(不带/ 168)时,不会出现系统事件ID 36880,并且RDP会话被阻止。

每篇文章:系统密码学:使用符合FIPS的算法进行加密,哈希和签名

远程桌面服务(RDS)为了加密远程桌面服务网络通信,此策略设置仅支持三重DES加密算法。

每篇文章:“系统密码:使用兼容FIPS的算法进行加密,散列和签名”在Windows XP和更高版本的Windows中的安全设置效果

此设置还会影响Windows Server 2003和更高版本的Windows中的终端服务。效果取决于TLS是否用于服务器身份验证。

如果将TLS用于服务器身份验证,则此设置仅导致使用TLS 1.0。

默认情况下,如果未使用TLS,并且未在客户端或服务器上启用此设置,则使用128位RC4算法对服务器和客户端之间的远程桌面协议(RDP)通道进行加密密钥长度。在基于Windows Server 2003的计算机上启用此设置后,将满足以下条件:RDP通道通过使用168位密钥长度的密码块链接(CBC)模式下的3DES算法进行加密。SHA-1算法用于创建消息摘要。客户端必须使用RDP 5.2客户端程序或更高版本进行连接。

因此,这两者都支持RDP只能利用3DES的想法。但是,本文建议使用更大范围的密码:FIPS 140验证

远程桌面协议(RDP)服务器将使用的一组加密算法的范围是:-CALG_RSA_KEYX-RSA公钥交换算法-CALG_3DES-三重DES加密算法-CALG_AES_128-128位AES-CALG_AES_256-256位AES-CALG_SHA1- SHA哈希算法-CALG_SHA_256-256位SHA哈希算法-CALG_SHA_384-384位SHA哈希算法-CALG_SHA_512-512位SHA哈希算法

最终,尚不清楚启用FIPS模式时RDP是否可以支持非3DES协议,但有证据表明它不支持。

我看不到任何证据表明Server 2012 R2的功能与Server 2008 R2有所不同,但是Server 2008 R2似乎基于FIPS 140-1遵从性,并且Server 2012 R2遵循FIPS 140-2,因此Server 2012 R2完全有可能支持其他协议。您将在FIPS 140验证链接中注意到其他协议。

结论:我认为Server 2008 R2不能在禁用3DES的FIPS模式下支持RDP。我的建议是确定您的系统是否满足SWEET32攻击的条件(在单个会话中发送了超过768GB),并且禁用3DES是否值得删除RDP功能。还存在其他实用程序来管理RDP以外的服务器,尤其是在虚拟化非常普遍的世界中。


0

显然,2008年和2012年存在语法问题,而2008/7年则要求后跟/ 168。2012 / 8.1 / 10没有。

2008年的密钥如下所示:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Ciphers \ Triple DES 168/168

**很棒的发现,我在某些Windows 2008 R2域控制器上也有完全相同的问题,奇怪的是我的成员2008R2服务器似乎还可以,而且我的2012R2服务器也可以正常工作。需要破解那些较旧的DC :)


在我的2008R2版本上,不需要添加设置,168并且接受与Windows 2012注册表相同的语法。仅供参考,如果2008年的注册表设置对您不起作用
Gregory Suvalian
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.