vlambda博客
学习文章列表

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

前言

文章首发于火线Zone云安全平台

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

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

一、漏洞原理

本次复现漏洞为 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

Admin固定为管理员用户名

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

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

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

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

图3 修改Cookie

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

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

图4 SAML方式登陆

进入Zabbix后台

图5 成功进入Zabbix后台

结束语

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

安利时间

0x6270网络空间安全学院  知识星球

知识星球简介

本星球为0x6270安全团队的知识分享渠道。现团队提供以下支持:漏洞挖掘,安全培训,技术分享,专栏作家培养等。

目前星球分享内容包括安全资料、原创技术文章、威胁情报等。

涉及安全方向包括Web安全、渗透测试、逆向工程、内网安全、应急响应、漏洞研究、云安全等方向

知识星球阵容

星主:0x6270

gq安全岗杀手,0x6270安全团队leader

APT攻击方向安全研究员,技术方向包括渗透测试、逆向工程等。

原创技术文章多次发布于先知社区、Freebuf、火线Zone等平台。


合伙人:小黑

别名黑总,某安全厂商渗透岗,技术骨干。丰富的漏洞挖掘经历。

著有黑总内网渗透系列文章数篇。原创技术文章多次发布于Freebuf、火线Zone等平台。


合伙人:永安寺

潜心学安全的永安寺师傅。原创技术文章发布于先知社区等平台。


合伙人:Colorado

COCO师傅,漏洞盒子排名前十


嘉宾:陈滑稽

安恒信息恒星计划前三,安全服务岗。活跃于各SRC平台


嘉宾:0r@nge

橘子师傅,腾讯某实验室成员

专注于内网渗透和免杀研究,原创技术文章多次发布于先知社区、奇安信攻防社区等平台

星球优惠活动

目前本星球为初运行阶段,师傅们可以使用新人优惠券加入星球,优惠达50%

下方为新人优惠码,有意向的师傅欢迎加入星球。