WinRM 的认证同样要收敛
WinRM 是 PowerShell 远程管理与大量自动化工具(含 Ansible 的 Windows 模块)的底层通道。它的默认配置为兼容性留了不少口子:Basic 认证与未加密传输一旦开启,等价于把凭据暴露在网络上。收敛原则是域内走 Kerberos、跨域走 HTTPS 监听器加证书。
基本信息
| 适用平台 | Windows(PowerShell Remoting,端口 5985 明文与 5986 加密) |
|---|---|
| 查看命令 | winrm get winrm/config/service 与 client |
| 关键项 | Basic 认证、AllowUnencrypted、监听器类型 |
| 基线 | 无 Basic 认证、无未加密传输 |
典型使用场景
- 自动化平台加固:Ansible、CI 与批量运维依赖 WinRM,配置变更需同步通知
- 基线核查:Basic 与 AllowUnencrypted 是常见扣分项
- 跨域管理:非域环境用 HTTPS 监听器与证书替代明文通道
- 事件排查:确认攻击者是否通过明文通道获取了管理凭据
现状核查与收紧
现状核查与收紧
# 查看服务端与客户端配置
winrm get winrm/config/service
winrm get winrm/config/client
# 关闭 Basic 认证
winrm set winrm/config/service/auth '@{Basic="false"}'
# 禁止未加密传输
winrm set winrm/config/service '@{AllowUnencrypted="false"}'
# 查看监听器
Get-ChildItem WSMan:\localhost\Listener配置项读法
| 配置项 | 含义 | 建议 |
|---|---|---|
| Auth\Basic | 是否允许 Basic 认证 | 设为 false;启用时凭据等同明文 |
| AllowUnencrypted | 是否允许未加密传输 | 设为 false,先准备好 HTTPS 再关 |
| Listener 5985 | HTTP 监听器 | 仅限本机或受控网段使用 |
| Listener 5986 | HTTPS 监听器 | 跨域与不可信网络的管理入口 |
| Auth\Kerberos | 是否允许 Kerberos | 域内保持启用,是首选认证方式 |
落地顺序建议
- 先盘点使用方:Ansible、CI、监控与发布脚本中依赖 WinRM 的调用全部登记
- 再准备加密通道:为跨域与不可信网络部署 HTTPS 监听器与证书,并逐台验证
- 然后收紧认证:关闭 Basic 与未加密传输,保留 Kerberos 与证书认证
- 限制端口暴露:5985 仅对本机与管理网段放行,不向业务网段开放
- 变更后回归:用真实自动化任务验证一遍,而不是只测单机命令
认证方式对照
| 认证方式 | 机制 | 适用与风险 |
|---|---|---|
| Kerberos | 域内票据,双方均可验证身份 | 域环境首选,凭据不外泄 |
| Negotiate / NTLM | 挑战响应式认证 | 域内可用;跨域时来源难以验证 |
| Basic | 用户名口令编码后随请求发送 | 一律关闭,等同在网络上公布口令 |
| 证书 | 基于客户端与监听器证书 | 非域与自动化场景的替代路径 |
| CredSSP | 把凭据委托到远端主机 | 仅限确有二次跳板需求的受控场景 |
生产建议:域内使用 Kerberos 认证,跨域或不可信网络使用 HTTPS 监听器加证书;明文 5985 仅保留给本机与受控管理网段。
关闭 AllowUnencrypted 后,未配置 HTTPS 的远程调用会直接失败:先上证书并验证,再关闭明文传输,否则自动化会整片中断。
跨域场景用 HTTPS 监听器
跨域场景用 HTTPS 监听器
# 非域环境优先用 5986 加证书,避免明文传输凭据
Get-ChildItem WSMan:\localhost\Listener | Select-Object Address, Port, Transport, CertificateThumbprint
# 批量运维前先用单台机器验证连通性
Test-WSMan -ComputerName app01 -UseSSLWinRM 是高价值管理入口:除认证与传输收敛外,还要在边界与安全组层面限制来源网段,把管理通道限定在堡垒机或运维网段内。
变更后抽一台机器做全链路验证:查看配置、检查监听器证书、执行一次远程命令,三步都通过才算整改完成。
客户端的授信主机列表是排查跨域连接时的临时手段:把目标加入列表会让连接退化为不能验证对方身份的认证方式,与未加密传输叠加时更易被中间人利用,用完必须清理,不要长期保留。