在我们当前的工作流程中,我们必须通过 RDP 连接到多个服务器才能知道服务是否正常运行。我们没有管理员权限但可以查看、启动和停止服务。
我们想改用 Powershell Remoting。例如
(1..8)|%{gsv -c "server$($_" -n "*ourservice*"}
将会更加容易和快捷。
我是否正确地将我们的用户添加到WinRMRemoteWMIUsers
组中
- 我们可以执行命令(我们的担忧)。
- 我们无法对系统做任何事,因为现在我们无法通过 RDP 来做这些事(安全管理部门的担忧)。
编辑
以下内容摘自《Powershell Remoting 的秘密》,似乎解决了安全问题
powershellorg · PowerShell 远程处理的秘密
PowerShell 和远程处理都不是恶意软件的“后门”
这是一个重大误解。请记住,默认情况下,PowerShell 不会执行脚本。当它执行脚本时,它只能执行执行用户有权运行的命令 - 它不会在超级特权帐户下执行任何操作,也不会绕过现有权限或安全性。
和
底线:由于其工作方式,PowerShell Remoting 不允许任何用户(无论是否授权)执行他们无法通过其他方式执行的任何操作
答案1
我们无法对系统做任何我们现在无法通过 RDP 做的事情(安全管理层的担忧)。
风险在于,如果该组中的帐户被盗用,攻击者可能会通过 PowerShell 获得访问权限。您需要根据您的环境来评估该访问的风险和补偿控制。
回答您的后续问题,我认为没有人能给出一般性的假设/结论,即该帐户也可以使用 RDP 登录。如果帐户/服务器配置为需要智能卡,则他们无法使用 RDP 登录。
安全是关于评估风险和实施补偿控制。建设性的反建议可能是建议:
- 使用防火墙将 PowerShell Remoting 的网络访问限制到特定的管理计算机/跳转主机 (tcp/5985 和/或 tcp/5986)。
- 使用组策略限制/强制 WinRMRemoteWMIUsers 的成员身份为特定域组。
- 仅允许授权帐户成为那些特定域组中的成员。
- 实施对 PowerShell/WinRM/WinRS 活动的审计,并将这些事件日志发送/包含在安全团队发送回中央事件日志收集器的事件中(假设他们这样做)。PowerShell 和 WinRM 的内置事件日志在这方面实际上相当薄弱,但您可以使用SysInternals SysMon为此。以下是示例:
PowerShell Remoting 示例事件命令行:
WinRS 示例事件命令行: