CVE-2022-23131_Zabbix登录绕过漏洞分析及复现

前言

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

本文章中的漏洞均为公开的漏洞收集,如果文章中的漏洞出现敏感内容产生了部分影响,请及时联系作者,望谅解。

一、漏洞原理

本次复现漏洞为 CVE-2022-23131,该漏洞是由于Zabbix Web Frontend允许用户通过 SAML 进行身份验证, 其中ui/index_sso.php导致会话条目的值saml_data[username_attribute] 可以由客户端完全控制。

Zabbix相关组件分析监控平台

Zabbix通常部署在具有四个不同组件的基础架构上:

(1)Zabbix Agent:在所有受监控节点上运行的服务,在Zabbix Server发送请求时收集信息;

(2)Zabbix Server:它连接到Zabbix Agents以收集监控数据,并在达到配置阈值时发出警报;

(3)Zabbix Proxy:将单个Zabbix Server关联到数百个Zabbix Agents可能非常昂贵,并且很难部署在某些网络拓扑中。Zabbix Proxy实体旨在整合整个区域的数据,并将收集的数据报告给主Zabbix Server;

(4)Zabbix Web Frontend:**Zabbix Server的接口,通过TCP和共享数据库进行通信。系统管理员使用此网站主页来访问收集的监控数据并配置Zabbix服务器(例如,列出主机,在Zabbix Agents上运行脚本)。

CVE-2022-23131 – 绕过 SAML SSO 身份验证

Security Assertion Markup Language (SAML) 是最常见的单点登录 (SSO) 标准之一。它围绕 XML 实现,它允许身份提供程序(IdP,能够对用户进行身份验证的实体)告诉服务提供商(SP,此处为Zabbix)您是谁。您可以配置Zabbix Web Frontend允许用户通过 SAML 进行身份验证,但默认情况下不启用该前端,因为它需要了解身份提供程序的详细信息。这是企业级部署中最常见的设置。

与 SAML 身份验证机制相关的代码可以在index_sso.php中找到。简而言之,它的目标是:

  • 将用户重定向到 IdP;
  • 对用户进行身份验证后,验证传入 SAML 负载的格式和签名。创建名为 saml_data 的会话条目以记住用户的属性;
  • 如果会话中存在名为 saml_data 的条目,请提取其值并根据username_attribute的值对 Zabbix 上的用户进行身份验证。

如上一节所述,CEncryptedCookieSession::checkSign() 在此文件中从不调用,因此会话条目的值saml_data[username_attribute] 可以由客户端完全控制:

ui/index_sso.php

if (CSessionHelper::has('saml_data')) {

$saml_data = CSessionHelper::get('saml_data');

CWebUser::$data = API::getApiService('user')->loginByUsername($saml_data['username_attribute'],

(CAuthenticationHelper::get(CAuthenticationHelper::SAML_CASE_SENSITIVE) == ZBX_AUTH_CASE_SENSITIVE),

CAuthenticationHelper::get(CAuthenticationHelper::AUTHENTICATION_TYPE)

);

利用这一漏洞是简单明了的,特别是因为Zabbix Web Frontend自动配置了一个名为Admin的高权限用户。

一旦在网页主页上被认证为管理员,攻击者就可以在任何连接的Zabbix服务器上执行任意命令,如果在配置中明确允许使用AllowKey=system.run[*](非默认值),则可以在Zabbix Agents上执行任意命令。

二、漏洞复现实战

FOFA收集存在SAML登录方式的ZABBIX监控系统的站点

图1 FOFA信息收集

见上图,我们随机选择第二个站点作为本次复现的target。

利用CVE-2022-23131漏洞EXP进行利用

链接:GitHub – L0ading-x/cve-2022-23131: cve-2022-23131

执行命令构造所需的Cookie

python3 zabbix.py target Admin

如:python3 cve-2022-23131.py 127.0.0.1 Admin

target为目标地址

Admin固定为管理员用户名

图2 CVE-2022-23131漏洞EXP利用

将生成的zbx_signed_session替换到当前目标的cookie

图3 修改Cookie

点击登陆页面的sign in with Single Sign-On (SAML)方式登陆

图4 SAML方式登陆

进入Zabbix后台

图5 成功进入Zabbix后台

结束语

本文主要介绍了CVE-2022-23131漏洞 Zabbix登录绕过漏洞的原理分析及复现过程,漏洞主要源于前端会话存储。

文字来源于- 火线 Zone-云安全社区,安全小天地只做文章分享,如有侵权,请联系站长删除


「渗透云记」公众号里主要记录我每天的所思所想,我会坚持更新质量不错的文章,感兴趣的小伙伴可以扫描下方二维码,谢谢支持! 安全小天地 - 公众号 - 渗透云记
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容