Microsoft Azure Linux 环境中强加的 OMI 代理中的远程利用漏洞

在虚拟机中使用 Linux 的 Microsoft Azure 云平台客户遇到了一个严重漏洞 (CVE-2021-38647),该漏洞允许以 root 身份执行远程代码。 该漏洞代号为 OMIGOD,值得注意的是该问题存在于 OMI 代理应用程序中,该应用程序悄悄安装在 Linux 环境中。

使用 Azure 自动化、Azure 自动更新、Azure 操作管理套件、Azure 日志分析、Azure 配置管理、Azure 诊断和 Azure 容器洞察等服务时,OMI 代理会自动安装和激活。 例如,Azure 中启用了监视的 Linux 环境会受到攻击。 该代理是开放式软件包 OMI(开放式管理基础设施代理)的一部分,其中实施了用于 IT 基础设施管理的 DMTF CIM/WBEM 堆栈。

OMI 代理安装在 omsagent 用户下的系统上,并在 /etc/sudoers 中创建设置以 root 身份运行一系列脚本。 在某些服务运行过程中,在5985、5986和1270网络端口上创建了监听网络套接字。在Shodan服务中扫描发现网络上存在超过15万个易受攻击的Linux环境。 目前,该漏洞利用的工作原型已被放置在公共领域,允许您在此类系统上以 root 身份执行您的代码。

Azure 没有明确记录 OMI 的使用,并且在没有警告的情况下安装了 OMI 代理,这一事实加剧了这个问题——在设置环境时同意所选服务的条款就足够了,OMI 代理将自动激活, IE。 大多数用户甚至不知道它的存在。

利用方法很简单 - 向代理发送 XML 请求就足够了,删除负责身份验证的标头。 OMI 在接收控制消息时使用身份验证,验证客户端是否有权发送特定命令。 该漏洞的本质是,当消息中负责认证的“Authentication”头被移除时,服务器认为验证成功,接受控制消息并允许执行具有root权限的命令。 要在系统中执行任意命令,在消息中使用标准的 ExecuteShellCommand_INPUT 命令就足够了。 例如,要运行“id”实用程序,发送请求就足够了:curl -H "Content-Type: application/soap+xml;charset=UTF-8" -k --data-binary "@http_body. txt" https://10.0.0.5:5986/wsman …… ID 3

微软已经发布了修复该漏洞的OMI 1.6.8.1更新,但还没有带给Microsoft Azure用户(在新环境中,旧版本的OMI仍在安装中)。 不支持代理自动更新,因此用户需要在 Debian/Ubuntu 上使用“dpkg -l omi”或在 Fedora/RHEL 上使用“rpm -qa omi”手动更新软件包。 作为一种安全解决方法,建议阻止对网络端口 5985、5986 和 1270 的访问。

除了 CVE-2021-38647 之外,OMI 1.6.8.1 还修复了三个漏洞(CVE-2021-38648、CVE-2021-38645 和 CVE-2021-38649),这些漏洞可能允许非特权本地用户以 root 身份执行代码.

来源: opennet.ru

添加评论