如何获取 RDP 会话的 Windows 主机密钥?

11

当我正在写这篇文章时,我的公司管理员刚好找到了这个问题的答案,所以我在这里为其他人发布:


我使用xfreerdp从Linux连接到Windows 7机器进行RDP。通常情况下,我提供我的凭据和机器的IP地址,一切都正常工作。有一天,我尝试连接却遇到了这个问题:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the host key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

(x 是实际数字)我检查了我要连接的机器的 Linux 的 known_hosts 文件,确实,这台机器的 RSA 指纹已经改变。所以我问了公司管理员是否有更新或其他更改了 Windows 用于 RDP 会话的密钥。他说他并没有意识到做出任何更改。此时,常识和我的安全知识告诉我,在登录到物理机器并检查是否有新的 RSA 主机密钥用于 RDP 之前,我不应该连接。(如果没有,那么很可能存在中间人攻击。)

问题是,当我登录到物理机器查找 RSA 密钥是否更改时,我无法确定去哪里查看它。我在网上搜索并找不到在 Windows 7 中查看 RDP 使用的密钥的 RSA 指纹的任何方法。有人知道在哪里可以查看吗?


感谢您的回复,但这不算是一个编程问题。 - Maarten Bodewes
1
这是只有程序员才会发现有用的东西,但如果您知道我可以发布这个内容的更好地方,请告识我。 - Alex
在StackExchange上,Superuser或Security是合乎逻辑的地方... - Maarten Bodewes
1个回答

14
以下是如何在Windows 7中为RDP会话获取RSA主机密钥指纹的逐步指南:
首先,点击开始按钮(或按键盘上的Windows键)。 在搜索框中输入“mmc”,并选择“mmc.exe”(Microsoft管理控制台)。

Step 1

当它打开时,单击文件->添加/删除快照......从左侧列表(可用快照)中选择“证书”,然后单击“添加>”

Step 2

选择“计算机帐户”,点击下一步。确保选择了“本地计算机”,然后点击“完成”。点击“确定”退出添加/删除控件屏幕。

Step 3

现在您应该回到主MMC窗口,但是左侧列表中应该有一个名为“证书(本地计算机)”的Snap-in。展开它并展开“远程桌面”,然后展开“证书”。窗口中间区域应该至少出现一个证书。双击它,选择“详细信息”选项卡。向下滚动到底部,将会有关于证书指定密钥的详细信息,包括“Thumbprint”字段,该字段对应Linux的xfreerdp在尝试连接到该计算机时报告的主机密钥指纹。

Step 4

您还会注意到在“Thumbprint”字段中有额外的两个十六进制数字。(xfreerdp报告的指纹长度为38个十六进制数字,而Thumbprint字段有40个)。剥离Thumbprint中的前两个十六进制数字,即可获得RDP主机密钥的RSA指纹(我不知道这些数字是什么)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接