通过向WinRMRemoteWMIUsers添加用户来实现Powershell Remoting安全性

在我们目前的工作stream程中,我们必须将RDP分配给多台服务器,以确定服务是否正常运行。 我们没有这些服务器的pipe理权限 ,但可以查看,启动和停止服务。

我们想用Powershell Remoting代替。 就像是

(1..8)|%{gsv -c "server$($_" -n "*ourservice*"} 

做起来既容易又快捷。

我正确的是通过将我们的用户添加到WinRMRemoteWMIUsers组中

  • 我们可以执行命令(我们关心的)
  • 我们无法通过RDP 安全pipe理的担忧)对现在无法做到的系统做任何事情。

编辑

从Powershell Remoting的Secrects提取摘录似乎增加了安全问题

powershellorg·PowerShell远程处理的秘密

PowerShell和Remoting都不是恶意软件的“后门”

这是一个重大的误解。 请记住,默认情况下,PowerShell不会执行脚本。 当它这样做时,它只能执行执行用户有权运行的命令 – 它不会在超级特权帐户下执行任何操作,并且不会绕过现有权限和安全性。

底线:因为它的工作方式,PowerShell远程处理不允许任何用户,无论是否授权,通过十几种其他手段

我们无法通过RDP(安全pipe理的担忧)对现在无法做到的系统做任何事情。

如果该组中的帐户受到威胁,则攻击者可能通过PowerShell访问该威胁。 评估访问风险和补偿控制是您需要根据您的环境来确定的。


为了回答您的后续问题,我不相信任何人都可以提供一个通用的假设/结论,即帐户也可以使用RDP进行login。 如果帐户/服务器configuration为需要智能卡,则不能使用RDPlogin。

安全是关于评估风险和实施补偿性控制。 build设性的反build议可能是build议:

  • 使用防火墙将PowerShell Remoting的networking访问限制为特定pipe理计算机/跳转主机(tcp / 5985和/或tcp / 5986)。
  • 使用组策略限制/强制WinRMRemoteWMIUsers的成员身份到特定的域组。
  • 只允许这些特定域组中的授权帐户成员身份。
  • 实施对PowerShell / WinRM / WinRS活动的审计,并将这些事件日志发送/包含在安全团队发回给中央事件日志收集器的事件中(假设他们这样做)。 PowerShell和WinRM的内置事件日志实际上在这方面相当薄弱,但是您可以使用SysInternals SysMon 。 这是一个示例:

PowerShell远程示例事件命令行:

SysMon PSRemote审计

WinRS示例事件命令行:

SysMon WinRS审计