必须启用NLA并禁用RemoteFX:NLA通过UserAuthentication=1强制认证前置,防止CVE-2019-0708等预认证漏洞;RemoteFX含多个提权漏洞且已弃用,需卸载RDS-RemoteFX并禁用旧编码器,否则加固失效。

远程桌面协议默认启用 RDP 会话加密但不强制网络级身份验证(NLA)
Windows 默认开启 RDP,但 NLA 是可选开关——这意味着攻击者可能在认证前就触发图形栈解析(比如 CVE-2019-0708),尤其当目标启用了旧版位图编码或剪贴板重定向时。tsconfig.msc 或注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\UserAuthentication 值为 0 就代表 NLA 关闭。
- 立即检查:运行
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication,输出UserAuthentication : 0必须改为1 - 组策略路径是
计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 安全 → 要求使用网络级身份验证对远程连接进行身份验证,启用它 - 改完必须重启
TermService服务或整机重启,仅改注册表不重启无效 - 老旧客户端(如 Windows XP / Server 2003 RDP 客户端)无法连接开启 NLA 的服务器,确认终端兼容性再上线
卸载不安全图形组件:禁用 RemoteFX vGPU 和旧版编码器
RemoteFX vGPU 在 2020 年已被微软弃用,且存在多个提权漏洞(CVE-2020-1039、CVE-2021-28479)。它和早期的 ms_t125(T.125)编码器共用同一套解码逻辑,一旦触发内存越界,RDP 服务直接崩溃或执行任意代码。
- 检查是否启用:运行
Get-WindowsFeature | Where-Object {$_.Installed -and $_.Name -like "*remotefx*"},若返回非空则需卸载 - 卸载命令:用管理员权限运行
Uninstall-WindowsFeature -Name "RDS-RemoteFX" -Restart(Server 2012+);Server 2008 R2 需手动删除%windir%\system32\rfxvmt.dll并禁用对应服务 - 禁用旧编码器:在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp下新建DWORD值FIPSEncryptionPolicy=2,强制只用 FIPS 合规加密通道,间接屏蔽弱编码路径 - 注意:卸载 RemoteFX 后,虚拟机直通 GPU 的远程渲染功能将不可用,确认业务是否依赖该特性
RDP 端口暴露在公网时,仅靠防火墙规则不够
很多运维习惯只在防火墙上放行 3389 并加 IP 白名单,但 RDP 协议本身不带应用层鉴权,只要 TCP 握手成功,后续所有认证、密钥交换、图形数据都在一个连接里完成。一旦中间人劫持或设备被植入恶意证书,登录凭证可能明文泄露。
- 绝对不要把 RDP 直接暴露在公网——哪怕开了 NLA、改了端口、加了白名单
- 必须走跳板:用 SSH 隧道(
ssh -L 3390:target:3389 jump-host)或反向代理(如 Nginx + TLS 终止 + Basic Auth)做前置收敛 - 若必须开放,至少启用 CredSSP 加密并关闭
AllowUnencryptedAuth注册表项(路径同上 RDP-Tcp),否则客户端可能降级到不加密认证 - Windows 事件日志中监控
Security日志 ID4625(登录失败)和4624(成功登录)的源 IP 分布,异常高频尝试说明防护已失效
第三方 RDP 客户端常自带不安全默认行为
像 Microsoft Remote Desktop(macOS/iOS)、FreeRDP、rdesktop 这些客户端,为兼容旧服务端,默认启用剪贴板共享、驱动器映射、打印机重定向——这些功能背后调用的是 rdpdr.sys 和 rdpclip.exe,而它们正是多数横向移动链的入口点(如 CVE-2023-24919)。
- 连接前务必关闭非必要重定向:在 macOS 版 Microsoft RDP 中,编辑连接设置 → “Redirection” 标签页 → 全部取消勾选;FreeRDP 命令加
/clipboard:off /drive:off /printer:off - 禁用自动重连:避免断连后静默重试,暴露出更多认证尝试日志
- 警惕“一键连接”工具封装的 RDP,它们常硬编码旧版 SSL/TLS 协议(如 TLS 1.0),且不校验证书,容易被伪造网关劫持
- 企业环境建议统一部署 Group Policy 或 Intune 策略,限制客户端允许的重定向类型和 TLS 版本
真正麻烦的不是某条命令没敲对,而是 NLA 开了但 RemoteFX 没清干净,或者防火墙封了 3389 却忘了 WMI/WinRM 也能被用来拉起 RDP 会话。加固得成体系看,漏掉一环,前面全白做。

















