OpenSSH的ssh-agent涉远程代码执行漏洞

admin 2023年7月31日01:34:20评论311 views字数 2298阅读7分39秒阅读模式

OpenSSH的ssh-agent涉远程代码执行漏洞

概述

CVE-2023-38408 是一个允许远程执行代码的漏洞,存在于 SSH 代理的转发功能中,特别是与 PKCS#11 提供商相关的漏洞。在特定条件下利用 SSH 代理对 PKCS#11 的支持,攻击者可以通过转发的代理套接字执行远程代码。  

OpenSSH 是 Secure Shell (SSH) 协议的开源实现,提供一套全面的服务,以促进客户端-服务器环境中不安全网络上的加密通信。作为安全网络交互的重要组成部分,OpenSSH 对于许多组织的网络安全策略至关重要。 

SSH 代理通过管理身份密钥和密码来简化用户身份验证,发挥着重要作用。将密钥存储在 SSH 代理中,用户无需在登录其他服务器时重新输入密码或密码,从而创建无缝的单点登录 (SSO) 体验。 


该漏洞存在于 SSH 代理的源代码中,使远程攻击者能够访问转发用户 SSH 代理的远程服务器,从而在用户工作站上的 /usr/lib* 中加载和卸载共享库。当使用 ENABLE_PKCS11(默认配置)编译 SSH-agent 时,存在此漏洞。  

尽管此操作最初看起来很安全,因为 /usr/lib* 中的共享库源自官方发行包,并且 SSH-agent 通常仅对它们执行 dlopen() 和 dlclose() 操作,但许多共享库在加载和卸载时会产生意想不到的副作用。安全敏感程序,例如 SSH-agent。例如,一些共享库分别通过 dlopen() 和 dlclose() 自动执行构造函数和析构函数。 


通过将官方发行包中的共享库的四个常见副作用链接在一起,攻击者可以将这种有限的原语(来自 /usr/lib* 的共享库的 dlopen() 和 dlclose())转换为可靠的一次性远程代码执行在 SSH 代理中。

 

远程利用 SSH 代理的概念验证 (PoC) 的最初想法遵循以下步骤: 

通过 dlopen()ing“execstack”库之一使 SSH 代理的堆栈可执行,并将 shellcode 存储在此可执行堆栈中。
为 SIGSEGV 注册一个信号处理程序,并立即通过 dlopen() 和 dlclose() 处理“令人惊讶的行为 3/”中的共享库之一来 munmap() 其代码,保留指向内核中未映射信号处理程序的悬空指针。
通过 dlopen()ing (mmap()ing) “nodelete” 库之一,将未映射的信号处理程序的代码替换为来自另一个共享库的代码(“令人惊讶的行为 2/”)。
通过 dlopen() 调用“令人惊讶的行为 4/”中的一个共享库来引发 SIGSEGV,导致内核调用未映射的信号处理程序,但改为执行“nodelete”库中的替换代码(释放后使用场景)。
希望映射到信号处理程序映射位置的替换代码能够充当有用的小工具,跳转到存储 shellcode 的可执行堆栈中。

OpenSSH的ssh-agent涉远程代码执行漏洞


影响

该漏洞主要影响使用 OpenSSH 的 SSH 代理并启用代理转发功能的系统。依赖 OpenSSH 的组织和个人应立即评估其配置以确定潜在的暴露情况。

POC/EXP

https://github.com/snowcra5h/CVE-2023-38408

解决方法


要有效解决和防范 CVE-2023-38408,请遵循以下综合步骤: 

升级到 OpenSSH 9.3p2 或更高版本:升级到最新版本的 OpenSSH 至关重要,因为它包含缓解漏洞的关键补丁。确保所有相关系统和服务器及时更新至推荐版本或更高版本。
限制 PKCS#11 提供程序:将 OpenSSH 配置为仅允许特定且受信任的 PKCS#11 提供程序。通过将 PKCS#11 提供程序的使用限制为已知且经过验证的来源,您可以减少潜在的攻击面并最大限度地降低利用风险。
转发 SSH 代理时请谨慎:在 SSH 中使用代理转发时要小心。避免将 SSH 代理转发到不受信任的服务器或环境。考虑与 CVE-2023-38408 相关的潜在风险,评估安全影响,仅在必要时启用代理转发。
进行系统扫描:使用信誉良好的防病毒和恶意软件检测工具(例如 ClamAV、Malwarebytes 或 Avast)定期扫描您的系统。这些扫描有助于识别和减轻潜在威胁或可能已经影响您的系统的任何恶意代码。

参考链接

https://www.qualys.com/2023/07/19/cve-2023-38408/rce-openssh-forwarded-ssh-agent.txthttps://mp.weixin.qq.com/s/O3JJAb4UWFAAjSuuWF8IOwhttps://github.com/snowcra5h/CVE-2023-38408


OpenSSH的ssh-agent涉远程代码执行漏洞


本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。


由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!


敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。


原文始发于微信公众号(巢安实验室):OpenSSH的ssh-agent涉远程代码执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月31日01:34:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   OpenSSH的ssh-agent涉远程代码执行漏洞https://cn-sec.com/archives/1915580.html

发表评论

匿名网友 填写信息