SSH ProxyCommand == 意外代码执行 (CVE-2023-51385)

admin 2023年12月28日09:18:18评论28 views字数 852阅读2分50秒阅读模式
SSH ProxyCommand == 意外代码执行 (CVE-2023-51385)

SSHProxyCommand是一个用于代理SSH连接的广泛使用的功能,允许用户指定用于连接到服务器的自定义命令。该功能的参数中可能包含像%h(主机名)和%u(用户名)这样的标记。然而,当主机名来自不受信任的来源时,存在潜在的安全风险,因为可能构造恶意主机名,看起来像“恶意命令”,并通过反引号执行Shell命令。

文档详细描述了SSHProxyCommand的工作原理和参数。一个具体的例子展示了如何配置SSH配置文件中的ProxyCommand,但文档警告说,在这种情况下,如果主机名包含恶意内容,可能会允许命令执行。

为了验证这个问题是否真实存在,提供了两个概念验证的例子。在第一个例子中,通过克隆一个恶意的Git存储库,可以在OS X上弹出计算器。即使ProxyCommand与单引号一起使用来清理参数,攻击者仍然可能通过控制主机名来构造攻击。概念验证的第二个例子进一步说明了漏洞的存在性。

POC验证:

如果没有 PoC,这一切有什么用呢?那么我们开始吧!将上述示例添加到您的 后.ssh/config,请尝试执行以下操作,这应该会在 OS X 上弹出一个计算器。

git clone https://github.com/vin01/poc-proxycommand-vulnerable --recurse-submodules

即使 ProxyCommand 与单引号一起使用来清理参数(即“%h”),这也是不够的,因为攻击者控制的主机名本身可能包含单引号并失败引用。

概念验证2:

git clone https://github.com/vin01/poc-proxycommand-vulnerable-v2 --recurse-submodules

这里留个openSSH源码包:
https://security-tracker.debian.org/tracker/source-package/openssh

原文始发于微信公众号(Ots安全):SSH ProxyCommand == 意外代码执行 (CVE-2023-51385)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月28日09:18:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SSH ProxyCommand == 意外代码执行 (CVE-2023-51385)https://cn-sec.com/archives/2336442.html

发表评论

匿名网友 填写信息