这次通过VulnHUB靶场的Raven2来演示Mysql UDF提权,靶机地址:
1 | https://www.vulnhub.com/entry/raven-2,269/ |
下载完靶机后直接安装并运行靶机
根据作者的描述,他一共放置了4个flag,全部找到即通过,废话不多说,直接开干!
信息收集
我这是通过virBox来启动镜像的,所有这里可以看见virbox用的192.168.56.1这个段
调用namp扫描56段,寻找靶机地址
发现56.101存活,并且开放80web端口服务,直接访问该站点
确定站点目标后,对该站点进行目录扫描
通过扫描发现比较有价值的点:’.DS_Store’敏感文件,vendor目录,wordpress站点后台。先通过脚本跑出.DS_Store
查看每一个文件并没有发现flag或其他有价值的信息。我们再转向vendor目录,直接访问,在PATH中发现flag:flag1{a2c1f66d2b8051bd3a5874b5b6e43e21}
同时在该目录下发现phpmailAutoLoad.php文件,phpmailer曾经在版本PHPMailer < 5.2.18存在安全漏洞,可使未经身份验证的远程攻击者在Web服务器用户上下文中执行任意代码,远程控制目标web应用。这里可以尝试利用看看能不能成功。根据互联网上描述的漏洞原理结合发现目标网站也存在邮件发送的界面,这里直接抓包发送payload
payload如下
1 | "aaa". -OQueueDirectory=/tmp/. -X/var/www/html/shell.php @test.com |
根据回包响应,可以看见上传成功,我们这里直接蚁剑连接
连接成功,在站点目录下发现flag2
通过蚁剑进入终端交互,反弹shell至攻击机
可以发现我们现在的用户是www-data,并不是root。同时发现存在mysql服务
然后就是一个一个的翻配置文件,寻找mysql密码,终于在目录:/var/www/html/wordpress下的wp-config.php中找到密码
ok,接下来登录数据库,查看版本,是否进行udf提权
尝试UDF提权之前,先获取plugin路径
1 | show variables like "%plugin%"; |
然后直接复制msf中udf提权脚本出来,安照脚本中的注释说明,按步骤生成’.so‘文件后上传至目标机plugin路径下
这是在线msf脚本地址:
1 | https://www.exploit-db.com/exploits/1518 |
进入数据库后,按照提权脚本中接下来的步骤继续操作,以下是我用到的命令
1 | use mysql; |
以下为mysql操作记录
1 | mysql> use mysql; |
完成上面所有步骤,退出mysql。接下来我们就可以使用find来执行任何命令了
可以看见,通过find命令来执行的所有命令权限都为root权限,提权成功。然后很顺利的就找到了flag,这里有个小知识点,’find . -name test.txt -exec ‘/bin/sh’ ;‘命令执行后,我们的bash环境更改为root权限的sh环境
到这里我们已经拿到了flag1,flag2,flag4,还差一个flag3,这里回过头来看一开始的目录扫描时发现的wordpress后台,这里直接上wpscan扫描一下,发现存在upload上传目录未授权访问
访问后,查找到最后一个flag