通过隧道从 2008 R2 传输 RDP 失败

通过隧道从 2008 R2 传输 RDP 失败

我正尝试通过隧道(类似 SSH,但不完全是)从 Win7 到 2008 R2 机器进行 RDP。

它失败了,2008 R2(目标)事件日志中的内容如下:

系统事件日志,LsaSrv 源,事件 ID 6037

“程序 lsass.exe(分配的进程 ID 为 632)无法使用目标名称 TERMSRV/{WIN7_name} 进行本地身份验证。使用的目标名称无效。目标名称应引用本地计算机名称之一,例如 DNS 主机名。

尝试不同的目标名称。”

WIN7端显示:

系统事件日志,TermDD 事件来源,事件 ID 56

终端服务器安全层检测到协议流中的错误并已断开客户端连接。客户端 IP:{WIN7_name}。

(错误代码为 C000018D = STATUS_TRUSTED_RELATIONSHIP_FAILURE)

因此显然 RDP 客户端正在将本地服务器名称传递到远程端(我确实告诉它通过 RDP 连接到 Win7 机器,但是连接到隧道端口)。

我无法找到任何方法来告诉 RDP 客户端或服务器忽略此问题。看起来可以使用 setspn.exe 在 2008 R2 框上设置 {Win7_name} 服务主体名称,但这似乎很麻烦,而且就我而言,我的客户端不知道如何执行此操作。此外,您必须为可能连接到该服务器的所有客户端执行此操作。

还有人能够使用隧道在 2008 R2 和 Win 7 之间进行 RDP 吗?

答案1

听起来您已将服务器计算机设置为仅允许通过“网络级别身份验证”(基于证书的身份验证,以防止中间人攻击)的 RDP 连接。您可以在服务器端关闭此功能,方法是进入“远程桌面会话主机配置”,在“连接”对话框中调出“RDP-Tcp”连接的属性,然后取消勾选“仅允许运行具有网络级别身份验证的远程桌面的计算机的连接”。

当您执行此操作时,请注意攻击者可能会设置一个看似您的服务器的伪 RDP 服务器,以收集密码。

编辑:

使用rinetd将 Windows 7 Professional 计算机上的本地端口隧道传输到 Windows Server 2008 R2 计算机上的 RDP 端口,我能够使用 Microsoft RDP 客户端访问远程计算机。

感觉您的 RDP 客户端在 Kerberos 失败后不会回退到 NTLM。不过,我没有立即看到哪种配置设置可能导致这种情况发生。您在服务器计算机上是否有任何策略设置来禁止 NTLM 身份验证?

我很想知道禁用 CredSSP 是否有帮助。将 RDP 连接属性保存到文件中,使用您喜欢的文本编辑器编辑该文件,然后添加一行enablecredsspsupport:i:0(或者,如果该行已经存在,则将“1”更改为“0”并添加行尾)。

相关内容