PowerShell Web 访问有多不安全?

信息安全 密码 tls 视窗 iis 电源外壳
2021-08-27 22:59:55

Windows Server 2012 带有一项新功能,允许您在包括智能手机在内的任何现代浏览器中通过 PowerShell 命令行管理服务器。

这听起来既酷又可怕。

我正在评估这个选项,想知道风险是什么?

这是我目前的设置:

  • 在 Server 2012 Core 上运行
  • 独立服务器不涉及域。
  • 该站点在 SSL 下运行(PowerShell Web 访问需要)
  • 它受 Windows 身份验证保护(以增加另一层安全性)
  • 它的 url 不是默认的,而是一个很难猜到的深层 url。
  • 设置了一个用户来使用该功能。
  • maxSessionsAllowedPerUser 设置为 1。这意味着即使嗅探到单个用户的密码,也不允许同一用户进行第二次会话。
  • 用户完成他的工作后,他更改了他的密码。这是通过服务器上的脚本完成的。密码的前半部分是一个恒定的秘密,后半部分由用户键入。这样,完整的密码永远不会越界。
  • 每个复杂密码仅使用一次。

要在服务器上完成任何工作,用户必须是管理员。

PoweShell Web Access 是 1.0 版本的产品,因此其中可能存在错误。

考虑到这一切,是否建议在暴露于公共互联网的服务器上的生产中使用它?

2个回答

与所有情况一样,这取决于您要防范的内容。一般来说,在公共网络上托管管理端点是不明智的。换句话说,将站点更改为无法在 Internet 上访问。

其次,有些人对互联网上的域加入服务器有问题。如果它被破坏,那么攻击者就可以访问您的域。如果你有一个开放的 Powershell 连接,你就为他们提供了一个发动攻击的好地方。但是,有些人对此并没有问题,因为他们通过限制服务器可以在内部访问的内容来减轻某些风险,让只读域控制器成为服务器可以与 AD 进行对话的唯一事物,并锁定所有端口,但 443。

第三,有些人不喜欢互联网上的 Windows 身份验证,原因与第二个相同。

Powershell 只允许一个用户的问题是它仅限于 Powershell。攻击者可能会找到另一个登录位置。或者他们可以在脚本有机会运行之前断开当前用户的连接。等等。

我不确定作为 v1 产品本身是否存在安全风险。微软付出了相当多的努力来确保新产品在发布前是安全的。但是,由于它没有经过外部安全测试人员的全部测试,因此总是有可能存在安全漏洞。

这是 Microsoft 的SSH 服务器版本(从概念上讲,不完全是——确切的 Unix 等价物是Shell In A Box)。那里没有什么可怕的,只要你相信微软不会搞砸实施(但依赖 SSL,因此依赖 SSL 的现有实施,是明智之举)。

不过,使用 Web 浏览器可能有点冒险,因为 Web 浏览器在安全性方面没有良好的记录。他们经常执行潜在的恶意代码(Javascript),尽管他们努力将页面相互隔离,但跨域攻击已经发生并且可能会继续发生。与其发明新的方法让用户的工作变成地狱(例如强制更改密码),不如让他们使用特定的浏览器进行访问(例如,如果他们使用 Chrome 进行日常浏览,让他们启动一个用于 PowerShell 访问的 Firefox -仅用于此目的)。