mysql提权方式-UDF提权、MOF提权
一、UDF提权
1、提权条件:
(1)MySQL数据库没有开启安全模式(确认secure_file_priv = ''是否为空),一定要为空才可以


这样就是把安全模式关闭

(2)已知的数据库账号具有对MySQL数据库insert和delete的权限,最好是root最高权限。
(3)shell有写入到数据库安装目录的权限,如果是>=5.1版本,需要mysql安装目录%mysql%\\lib\\要有创建文件夹权限

2、利用工具设置导入目录

如果导入不成功上面的斜杠换成双斜杠,然后菜刀plugin文件夹刷新就有了

有了这个udf.dll就可以执行操作系统的命令
数据库的安装路径可以通过@@plugin_dir查询

3、执行函数
执行命令:
Create Function cmdshell returns string soname 'udf.dll';

4、使用cmd函数
select cmdshell('ver');
5、接下来执行系统命令

这样看到的就是管理员提权成功
6、开放3389端口
1、先关闭3389端口
我的电脑,右键属性,看图

回到工具执行命令

使用3389这个函数

再次查看,已经勾选上远程了

7、反弹shell

菜刀换一个工具,上传udf1.php,然后访问xxx/udf1.php



设置nc反弹监听,这个命令要先运行,开启监听状态

然后请看

这个mysql综合利用工具有个最大的特点,就是不能有防火墙,如果一旦有防火墙,就不能成功
如果对方开启了防火墙怎么办?好解决,这里有两个脚本,一个是针对低版本,一个是高版本

mysql5.1以前属于低版本,5.1之后属于高版本数据库
8、解决有防火墙的udf提权
这里以高版本举例子,高版本用udf1.php,通过上面文档已经看出文件已经通过菜刀上传,并且访问,输入账号密码后打开

添加管理员账号,然后点提交


新账号darkmoon就添加成功

查看端口

创建反弹函数

创建监听

执行反弹函数

二、MOF提权
前提:
1、win版本低于2008
2、数据库版本小于5.7
正式步骤
1、moon.mof文件准备
把文件通过菜刀扔进去,仍进去的这个目录要有写权限

2、执行加载命令

3、连接数据库

4、创建新账号

5、验证
可以看到admin1已经出来了,说明创建成功

6、mof清除方法
由于这个账号即使删了,每隔一段时间又会出现,所以
1、目标主机先停止winmgmt服务

2、删除这个文件夹

3、手动删除mof文件,注意,和上面2比较,2,3只需要执行一个命令即可,3只是为验证已经删除干净

4、删除admin1

5、再次启动winmgmt服务服务





