SSH ProxyCommand == 意外代码执行 (CVE-2023-51385)
2023-12-25 18:10:7 Author: Ots安全(查看原文) 阅读量:49 收藏

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

感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjYyMzkwOA==&mid=2247503423&idx=1&sn=85507a5a417b769c0cefad75de99ad3e&chksm=9a04612b1ac91d48b47d1a4bfccb35ee9b0c6f0eb572ad9e2676ed1cbd5d311dbddb5cce3e88&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh