linux mysql udf打包_Linux下的MySQL udf提权

From: http://blog.chinaunix.net/uid-29141629-id-4383424.html

写在前面:本文旨在通过透彻分析Linux下MySQL的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文件),为方便大家,我就直接作为附件上传。f5eb4426879d9c4b4b2deb15679e0746.pnglib_mysqludf_sys_0.rar下载之后,你可以选择通过源代码建构so文件,也可以直接复制so文件夹下的文件。

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

5e9f7d2aa06e94c612ffab1014721ba4.png

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

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

f5d9eed454e719373dc85f6d19f3143e.png

没有问题,启动成功

然后,打开终端,键入"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("命令")执行,如下图

b4c7a92ff0094ad6b6d99c44cade5e9e.png

执行ls命令后的结果

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值