0
点赞
收藏
分享

微信扫一扫

(提权)mysql提权--udf、mof

1、udf提权

当获取到mysql的root权限,需要进行权限提升,可以尝试使用udf提权

首先需要查看mysql是否有导入导出功能,如果secure_file_priv为null,则无法使用udf提权,如果value值为空,则可以继续尝试

show variables like 'secure_file_priv';

  • secure_file_priv的value为null ,不允许导入导出

  • secure_file_priv的value为/dir/ ,只允许dir目录下导入导出

  • secure_file_priv的value为,无限制

也可以查看mysql配置文件的 [mysqld]

查看数据库版本

1.mysql<5.1 导出目录 c:/windows system32

2.mysql=>5.1 导出mysql/lib/plugin/的绝对路径(如C:/phpstudy/mysql /lib/plugin/)

当版本大于5.1时,

看看是否有plugin目录,默认是没有plugin目录的,需要创建

show variables like "%plugin%";

可以先写入一句话木马进行连接,然后再创建plugin目录

查看mysql路径

select @@basedir;

查看系统,如果是win32,则对应udf_32.dll,linux是.so

show variables like "%compile%";

选择udf文件,可以去msf目录 /usr/share/metasploit-framework/data/exploits/mysql或者sqlmap的 /sqlmap/udf/mysql

也可以网上下载 https://github.com/rapid7/metasploit-framework/tree/master/data/exploits/mysql

我试了下sqlmap的udf文件根本没用,会报错,用msf的又可以

如果是连接上了后门,可以直接上传 lib_mysqludf_sys_32.dll文件到 plugin目录下

蚁剑连接后门直接上传

也可以通过sql语句进行写入,将lib_mysqludf_sys_32.dll文件导出16进制,这里采用010Editor工具

 用notepad打开导出的16进制文件,将所有空格和换行替换为空。使用快捷键Ctrl+F

分别将空格、\n、\r选择全部替换为空得到一行16进制的序列

利用下面的语句进行写入:

如:select 0x4D5A90000.... into dumpfile "C:/phpstudy-5.4/MySQL/lib/plugin/udf.dll"; 

udf.dll名字自定义

写入成功

然后创建sys_eval命令函数

报上图提示的错误,则有可能是导入的udf.dll有问题,我选择sqlmap自带的会报这个错,写入的时候不加0x或者不去空格也会报错

当创建sys_eval函数的时候不报错则说明提权成功,可以查看权限或者反弹shell

select sys_eval('net user'); 

 我这得到的是不完整的16进制,需要点击选项,然后选择完整内容,再重新执行,得到完整的16进制

复制到在线编码网站: https://www.sojson.com/hexadecimal.html

成功提权

也可以利用脚本直接提权,写入或上传脚本到网站目录,用浏览器访问即可

 选择对应版本的udf.dll进行导出,没有报错,导出成功,如果失败可能是plugin目录不存在或者版本udf文件版本选择不正确 

 

成功提权

 

2、mof提权

举报

相关推荐

0 条评论