Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

admin 2022年3月30日20:07:19评论886 views字数 1445阅读4分49秒阅读模式

Zabbix是全球流行的企业级开源监控解决方案。


CVE-2022-23134 中,攻击者可构造 cookie,伪造身份访问 setup.php 中的 step 节点,从而通过重写数据库配置,重置管理员 Admin 账号,最终可登录 Zabbix 并 getshell。


影响版本

5.4.0 - 5.4.86.0.0 - 6.0.0 beta1


简析

先看到 setup.php,参考 CVE-2022-23131 的分析, 其中 $step 取自 Cookie 的 zbx_session 字段,因此可控。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

忽略中间设置默认语言、默认时区、默认主题等等,直接来到 class CSetupWizard 看初始化安装的过程

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

根据 step 可以定位到具体的 stage 中

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

当 step 为 6 时,看到 $this->dbConnect($db_user, $db_pass); 连接数据库

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

因此构造一个 poc 发起请求, 将  step 设置为 6

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

这就访问到了 stage6 中,由响应可见,由于默认参数配置最终进入了 stage2,提示数据库连不上。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

但是没关系,接着往下看,将数据库配置写文件

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

其中,const CONFIG_FILE_PATH 为 '/etc/zabbix/web/zabbix.conf.php',而 getConfig() 是 用一个三元表达式从 session 中获取或取默认,因此也认为可控。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

最后来到 $config 对象调用 CConfigFile 类的 save() 方法,利用 file_put_contents() 写文件

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

其中 $file 在 CConfigFile 初始化时赋值为 '/etc/zabbix/web/zabbix.conf.php',文件的内容在 getString() 方法中,可以看到都是可控的。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

因此,漏洞利用的思路就是创建一个 FakeMySQL,利用 session 从 Cookie 中获取并且最终写了配置,让 zabbix 去连接 FakeMySQL,重置管理员账户密码,进而登录后台 getshell。


创建 FakeMySQL

(这里建议使用和目标 zabbix 版本一致或相差不远的 zabbix 数据库)

查看 zabbix users 表,看到 Admin 的 passwd 字段,这是默认密码 'zabbix' 加密后的结果,也是我们漏洞利用需要的。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

导出 zabbix 数据库;

mysqldump zabbix > zabbix.sql

再在 VPS 创建 FakeMySQL Server

mysql> create database zabbix1;Query OK, 1 row affected (0.00 sec)
mysql> use zabbix1;Database changedmysql> source C:UsersAdministratorDesktopzabbix_users.sqlQuery OK, 0 rows affected (0.00 sec)
[...]

构造 exp 如下:

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

目标写数据库配置完成。


最后就是利用重置的密码登录 zabbix 后台,再 getshell,很简单不说了。


不得不提的坑点

若直接用 vmx 环境做复现的话,虚拟机启动以后,默认的数据库配置文件是酱紫的。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

显然,以 apache 权限运行的 zabbix 只有读权限,而无法修改 zabbix.conf.php。因此,使用 vmx 作为复现环境就需要注意先删除原本的 zabbix.conf.php 文件,才能复现成功,且后面的重复修改配置不再受影响。

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)


瑞斯拜!!

Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

原文始发于微信公众号(Craft Security Group):Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日20:07:19
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Zabbix setup.php 访问权限控制不当漏洞(CVE-2022-23134)http://cn-sec.com/archives/854192.html

发表评论

匿名网友 填写信息