是否存在控制服务器的攻击者可以访问客户端并在客户端上启动操作的条件?我意识到攻击者可能会在服务器上植入木马程序,希望 SSH 客户端背后的用户拖入一个(手动或通过运行脚本),但是还有其他攻击媒介吗?
我对不涉及密码且仅使用公钥身份验证的场景特别感兴趣,可能在连接的两端使用相同的用户凭据。
是否存在控制服务器的攻击者可以访问客户端并在客户端上启动操作的条件?我意识到攻击者可能会在服务器上植入木马程序,希望 SSH 客户端背后的用户拖入一个(手动或通过运行脚本),但是还有其他攻击媒介吗?
我对不涉及密码且仅使用公钥身份验证的场景特别感兴趣,可能在连接的两端使用相同的用户凭据。
普通 SSH 客户端通常对服务器上的任何内容都是安全的,至少只要没有在其中发现安全漏洞。但以下 SSH 特性会带来安全问题:
-R
)。远程系统上的个人/恶意软件将获得对本地端口的访问权限。-w
)。远程系统上的人/恶意软件将能够通过隧道发送流量。-A
)。远程系统上的个人/恶意软件将能够使用您的 ssh-agent 密钥环向您拥有密钥的其他 SSH 服务器进行身份验证。-X
或-Y
)。正如其他人所指出的那样,X11 协议在设计时就考虑到了受信任的客户端。恶意软件可能会读取其他窗口的内容、发送击键或只是显示一个要求输入密码的窗口。另一件需要考虑的事情是您正在使用的终端仿真器。很可能它是一个类似 GUI
konsole
的终端或 GNOME 的终端。如果它容易受到攻击,它也可以被受感染服务器上的程序利用(例如,远程服务器可以发送一个字符序列,导致缓冲区溢出并允许攻击者在您的客户端计算机上执行代码)。我从未听说过蠕虫或自动攻击软件使用这些攻击向量,但如果是有针对性的攻击,这些(尤其是代理转发)可能会被用来对付你。
有(我只相信)使用 X 转发的理论攻击可以做到这一点。
X 本质上需要完全信任所有客户端(应用程序),并且可以使用一个不可见的窗口从您的客户端抓取数据。
此外,如果您启用代理转发到该主机,攻击者可以将其与受感染主机上已有的任何“已知主机”文件结合使用,以潜在地扩大其影响范围。
从本质上讲,这不会构成任何安全威胁(除非您使用的是受感染的机器),除非您也使用 X 转发(X 窗口未被沙盒化)。
但是,如果碰巧有人通过您连接到的服务器的操作来利用您的 SSH 客户端中的某些错误,您可能会以某种方式受到威胁。例如,攻击可能会利用密钥协商过程中的缓冲区溢出等。
这种事情纯粹是理论上的。虽然这样的东西肯定存在,但我从未听说过。
我不确定你的问题到底是什么,所以如果这不是你要找的答案,请随时更新它。
如果您询问使用公钥登录受感染的服务器是否会破坏客户端上的私钥,那么答案是否定的:私钥始终保留在您的计算机上,仅用于签署您发送的身份验证令牌到服务器。
不过,这并不意味着它没有任何后果:一旦您登录到受感染的机器,您在此会话期间所做的一切也可能受到危害。例如,如果您使用存储在该服务器上的私钥访问另一台服务器,则该密钥可能会被泄露。事实上,如果您从 SSH 会话中执行任何其他类型的登录,则使用的凭据可能会受到威胁。