【发布时间】:2016-02-29 11:57:42
【问题描述】:
我用 C# 创建了一个小型 Web 应用程序来远程运行 PowerShell 脚本。我正在使用以下配置来调用 PowerShell 脚本。
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(false, server, 5985, "/wsman", "http://schemas.microsoft.com/powershell/Microsoft.PowerShell", new PSCredential(userName, password));
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos;
connectionInfo.ProxyAuthentication = AuthenticationMechanism.Negotiate;
using (Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo))
{
}
我必须在远程计算机中启用 PowerShell 远程处理才能使用该工具。这在测试和预生产环境中很好,但对于生产环境,这是一个关于安全性的问题。它是一个在线交易网站,拥有 500 多台面向客户的服务器。所有服务器都在一个 AD 域中。所以我想知道对黑客/表面攻击者的安全威胁的可能性,以及在生产服务器中启用 PowerShell 远程的安全性。
我在下面的博客中看到它是启用 PS 远程处理的安全线程。
但是上面的博客是针对 PowerShell 2.0 的,我使用的是 Windows Server 2012 R2 和 PowerShell 4.0。我不确定安全性是如何改变的。我必须说服我的经理和解决方案架构师,在产品服务器中启用 PowerShell 远程处理以使用此工具进行部署不会造成安全威胁。
您能请任何人分享您对此的想法吗?
另外请建议我是否有任何其他的可能性来远程执行 PowerShell 脚本并从 C# 保护。
【问题讨论】:
-
这个问题应该可以在Information Security 上提问。从我的角度来看,每一个额外的服务确实都会对安全产生影响。问题是您要保护它免受哪些威胁。
-
问题不应该是“它安全吗?”。问题应该是“我们能做到多安全?”。您可以在这些会话的配置中执行许多操作来增强安全性,并且 WMF 5 中提供了其他安全功能,但您必须实现它们。
-
@Both 感谢您的意见。我是安全方面的新手。很抱歉有任何愚蠢的问题。我只想知道 PowerShell Remoting 是否会为黑客创造新的机会。如果不是,我很乐意继续。
-
您的问题没有简单的“是/否”答案。如果您一直在关注,那么很明显,在可预见的未来,Powershell 将成为 Windows 服务器的管理平台,而远程处理将成为该战略的一部分。如果您的组织还没有掌握 Powershell 安全性,那么他们可能需要找一位顾问来回答这些问题。如果您是“安全方面的新手”,那么您可能不应该尝试为他们回答这些问题,他们也不应该要求您这样做。
-
另一件事:我不是安全“专家”,但我看到/遵循的主要做法是,您应该始终假设启用服务(包括 WMF)会增加威胁面在一个目标上,就像在建筑物上添加一个窗口会增加入口点的数量一样。话虽如此,我也同意@mjolinor 的评论,即如果您想将它们视为一个组织,您应该聘请顾问来帮助评估这些事情。
标签: c# security powershell powershell-remoting windows-server-2012-r2