使用 TrustedHosts 的 WinRM/PSSessions 是否比 DCOM(或任何经典的 Windows 远程访问)更不安全?

使用 TrustedHosts 的 WinRM/PSSessions 是否比 DCOM(或任何经典的 Windows 远程访问)更不安全?

我一直使用文件共享 (\\serverName\share) 之类的东西以及使用带有 -ComputerName 参数的 Powershell 命令来访问远程计算机。如果我对远程域中的计算机执行此操作,则必须提供 -Credential 参数。而且一切都正常。我认为这叫做 DCOM。我也可以这样访问 WMI。但是,当我尝试对远程计算机使用 enter-pssession 时,由于某些 kerberos 问题,它不起作用。据说,区别在于 kerberos 提供计算机的相互身份验证。但是,如果我访问远程域中的计算机,它无论如何都不会使用 kerberos 进行 DCOM 样式的事务。因此,如果我通过将远程计算机放入我的 Winrm TrustedHosts(并使用 IP 地址命名)而不是设置证书基础结构(因此没有任何计算机身份验证)来使 pssession 工作,这真的比我一直在运行的 DCOM 命令更糟糕吗? --我见过有人写这样的话,“只在测试机器上使用,而不是在生产环境中使用”,因为连接未加密。但是,凭据交易据说仍然是加密的。如果可以将 -ComputerName 和 -Credential 与其他命令一起使用,那么有什么区别?

答案1

是的,它不太安全。

NTLM(所使用的身份验证协议)在技术上不太安全。您正在向主机提供您的凭据。并且 NTLM 不向客户端提供主机的身份验证。攻击者很容易在该 IP 地址冒充该主机。

在 Kerberos 环境中,您无需向主机提供凭证,而是向单独的身份验证服务器提供凭证,该服务器会提供令牌,然后出示该令牌进行身份验证。凭证在更少的主机上提供,比典型的服务器更安全。

如果启用并使用基本身份验证而不是协商/NTLM,则这些凭据将以未加密的形式通过网络发送,这显然是不好的。但是,经过身份验证后,无论 HTTP/HTTPS 传输方案如何,会话都会在消息级别加密。永远不应启用/使用基本+HTTP 和摘要身份验证方法。

大多数组织不会这样做,因为这样无法通过审计。在工作组场景中,几乎总是使用证书。

https://learn.microsoft.com/en-us/powershell/scripting/learn/remoting/winrmsecurity?view=powershell-7.3

https://devblogs.microsoft.com/powershell/compromising-yourself-with-winrms-allowunencrypted-true/

https://adamtheautomator.com/psremoting/

相关内容