CVE-2023-51385 OpenSSH ProxyCommand命令注入漏洞

一、背景介绍

ProxyCommand 是 OpenSSH ssh_config 文件中的一个配置选项,它允许通过代理服务器建立 SSH 连接,从而在没有直接网络访问权限的情况下访问目标服务器。这对于需要经过跳板机、堡垒机或代理服务器才能访问的目标主机非常有用。

二、漏洞简介

ssh_config文件中的ProxyCommand、LocalCommand指令或"match exec"谓词通过%u、%h或类似的扩展标记引用用户或主机名时,可能会导致命令注入的风险。

在Git中,用户或主机名中的shell元字符未被禁止(如在主机名中进行命令拼接),这可能导致存储库包含一个带有shell元字符的子模块用户或主机名。这种情况可能引发命令注入漏洞。

三、影响版本

OpenSSH < 9.6

四、漏洞复现

1、复现版本

2、配置SSH规则

在~/.ssh/config中配置如下规则

shell 复制代码
host *.example.com
  ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p

这条配置意为:对于所有以.example.com结尾的主机,通过地址为192.0.2.0、端口为8080的代理服务器连接到目标主机。

3、命令执行

使用命令

shell 复制代码
git clone https://github.com/zls1793/CVE-2023-51385_test --recurse-submodules


https://github.com/zls1793/CVE-2023-51385_test?tab=readme-ov-file

项目结构为:

其中.gitmodules如下:

git的submodule是一个被仓库包含的子仓库,图中的url本应指向该子仓库的地址

git clone执行后效果如图

五、漏洞修复

升级至OpenSSH 9.6p1

水平有限,分析开摆

相关推荐
plmm烟酒僧18 分钟前
使用 Tmux 在断开SSH连接后,保持会话的生命周期
运维·ssh·tmux·分离会话
Doris Liu.3 小时前
如何检测代码注入(Part 2)
windows·python·安全·网络安全·网络攻击模型
秋说5 小时前
【区块链安全 | 第八篇】多签机制及恶意多签
安全·区块链
68岁扶墙肾透5 小时前
Java安全-FastJson反序列化分析
java·安全·web安全·网络安全·网络攻击模型·安全架构·fastjson
nington018 小时前
为Splunk登录开启OTP二次验证,增强访问安全
安全
Vacancy空白9 小时前
【Ubuntu常用命令】
linux·运维·ubuntu·ssh
智联视频超融合平台10 小时前
视频联网平台智慧运维系统:智能时代的城市视觉中枢
运维·网络协议·安全·音视频·智慧城市·视频编解码
漫天转悠11 小时前
本地Git仓库SSH同步到Gitee(码云)仓库的完整指南(附:SourceTree同步仓库)
git·gitee·ssh
cainiao08060511 小时前
脑机交互安全:如何防止恶意脑电波指令注入
安全
XMYX-012 小时前
如何加强 SSH 安全:内网和专用网络环境下的防护策略
网络·安全·ssh