测试环境

windows 2003

mysql 5.1

iis 6.0

 

mysql默认是以system权限启动的,但是为了安全很多管理员都会给mysql降权到 guest 权限去启动。 目前百度搜索的文章大部分的方法是这样的

 

1.新建立一个用户 并删除users 组 让它不属于任何组。

2.给mysql 安装目录该用户的完全控制权限。

3.将服务启动方式改为该用户。

 

其实这样降权后就算拿到了root帐号也无法利用常规的思路进行提权,但是可以注意下第二步是给的完全控制权限,那么以我们使用root权限自然是可以写入文件的。

刚开始我测试的思路是导出到udf 到plugin 目录 的,但是换个思维来说 既然可以导出udf 而且是完全控制权限那么直接导出一个lpk 到 bin 目录也是完全可以的。

 

测试:

lpk创建一个文件夹

//创建lib/plugin 插件目录
_mkdir("test");

重启mysql服务

MySql 被降权提权思路,反弹低权限CmdShell,鸡肋文章……


相关回帖:

sec, 2012-7-24 23:44:

 

这个有点意思了...

你mysqld-nt.exe或者是mysqld.exe是普通权限启动的,

比如lpk.dll里写的是添加用户的代码并且如你所示已经被成功加载,

但是楼主觉得lpk里面的提权命令能被执行么.

简单举个例子 在电脑上新建一个普通用户登录进去

找一个添加用户的lpk.dll放一个exe的目录

然后去运行那个exe  用户肯定添加不上..

或者是在5.1.x版本的mysql利用lpk去创建一个plugin 方便导出udf

已经是普通权限启动的mysql 导出udf来又有什么用呢

我没测试过 但是我也觉得不可行 或者是我理解错了楼主的意思

 

deleter:

回复 4# sec

其实我觉得楼主的思路是反弹一个低权限的shell来执行命令,然后进行下一步的提权

个人觉得这种方法的思路和楼主写的那个Zend_DLL_Hijacking的思路类似

小菜之见

 

落叶:

回复 4# sec

没表达清除,这只是获取一个cmdshell权限 而已

 

0xcodede:

MYSQL被降权了,普通权限下你把LPK放进MYSQL目录里,低权限执行了LPK有用么.

 

落叶:

回复 7# 0xcodede

在webshell无法执行命令的时候就有用了

 

摘自:http://forum.90sec.org/viewthread.php?tid=3170&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000