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
固定为管理员用户名
图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登录绕过漏洞的原理分析及复现过程,漏洞主要源于前端会话存储。
安利时间
0x6270网络空间安全学院 知识星球
知识星球简介
本星球为0x6270安全团队的知识分享渠道。现团队提供以下支持:漏洞挖掘,安全培训,技术分享,专栏作家培养等。
目前星球分享内容包括安全资料、原创技术文章、威胁情报等。
涉及安全方向包括Web安全、渗透测试、逆向工程、内网安全、应急响应、漏洞研究、云安全等方向
知识星球阵容
星主:0x6270
gq安全岗杀手,0x6270安全团队leader
APT攻击方向安全研究员,技术方向包括渗透测试、逆向工程等。
原创技术文章多次发布于先知社区、Freebuf、火线Zone等平台。
合伙人:小黑
别名黑总,某安全厂商渗透岗,技术骨干。丰富的漏洞挖掘经历。
著有黑总内网渗透系列文章数篇。原创技术文章多次发布于Freebuf、火线Zone等平台。
合伙人:永安寺
潜心学安全的永安寺师傅。原创技术文章发布于先知社区等平台。
合伙人:Colorado
COCO师傅,漏洞盒子排名前十
嘉宾:陈滑稽
安恒信息恒星计划前三,安全服务岗。活跃于各SRC平台
嘉宾:0r@nge
橘子师傅,腾讯某实验室成员
专注于内网渗透和免杀研究,原创技术文章多次发布于先知社区、奇安信攻防社区等平台
星球优惠活动
目前本星球为初运行阶段,师傅们可以使用新人优惠券加入星球,优惠达50%
下方为新人优惠码,有意向的师傅欢迎加入星球。