提权---数据库提权
字数 1190 2025-08-09 22:00:40

数据库提权技术详解

一、提权概述

提权(Privilege Escalation)是指在入侵过程中,通过各种方法和漏洞提高攻击者在服务器中的权限级别,从而实现对系统的完全控制。数据库提权是其中一种重要的提权方式,主要针对数据库服务进行权限提升。

二、数据库提权分类

1. MySQL提权

(1) UDF提权

  • 原理:利用MySQL自定义函数(UDF)功能执行系统命令
  • 条件
    • 拥有MySQL写权限(FILE权限)
    • 知道MySQL root密码或具有足够权限的账户
    • secure_file_priv参数允许导出文件
  • 步骤
    1. 上传恶意UDF动态链接库文件(如lib_mysqludf_sys.dll)
    2. 创建自定义函数:CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.dll'
    3. 执行系统命令:SELECT sys_eval('whoami')

(2) MOF提权

  • 原理:利用Windows Management Instrumentation (WMI)的MOF文件执行命令
  • 步骤
    1. 上传恶意MOF文件到C:/Windows/System32/wbem/mof/
    2. MOF文件会自动执行,添加管理员账户

(3) 启动项提权

  • 将恶意脚本写入启动目录,等待系统重启后执行

2. MSSQL提权

(1) xp_cmdshell提权

  • 启用xp_cmdshell
    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 1;
    RECONFIGURE;
    
  • 执行命令EXEC master..xp_cmdshell 'whoami'

(2) sp_oacreate提权

  • 启用OLE自动化
    EXEC sp_configure 'show advanced options', 1;
    RECONFIGURE;
    EXEC sp_configure 'Ole Automation Procedures', 1;
    RECONFIGURE;
    
  • 执行命令
    DECLARE @shell INT
    EXEC sp_oacreate 'wscript.shell',@shell OUTPUT
    EXEC sp_oamethod @shell,'run',null,'cmd /c whoami > c:\temp.txt'
    

(3) 沙盒提权

  • 利用Jet OLEDB沙盒模式执行命令

3. Oracle提权

(1) Java权限提权

  • 利用Oracle中的Java执行权限执行系统命令

(2) DBMS_EXPORT_EXTENSION提权

  • 利用DBMS_EXPORT_EXTENSION包中的漏洞

三、防御措施

1. MySQL防御

  • 限制FILE权限
  • 设置secure_file_priv为NULL或特定目录
  • 定期更新MySQL版本
  • 使用最小权限原则

2. MSSQL防御

  • 禁用xp_cmdshell
  • 禁用OLE自动化过程
  • 限制sa账户使用
  • 启用SQL Server审计

3. Oracle防御

  • 限制Java权限
  • 及时安装补丁
  • 限制DBA权限

四、检测与响应

  1. 日志监控:检查数据库日志中的可疑操作
  2. 文件监控:监控系统关键目录的文件变化
  3. 进程监控:检查异常进程执行
  4. 账户监控:检查新增的系统账户

五、总结

数据库提权是攻击者获取系统权限的重要手段,了解各种提权技术有助于更好地防御此类攻击。管理员应遵循最小权限原则,及时更新补丁,并实施严格的访问控制策略来降低提权风险。

数据库提权技术详解 一、提权概述 提权(Privilege Escalation)是指在入侵过程中,通过各种方法和漏洞提高攻击者在服务器中的权限级别,从而实现对系统的完全控制。数据库提权是其中一种重要的提权方式,主要针对数据库服务进行权限提升。 二、数据库提权分类 1. MySQL提权 (1) UDF提权 原理 :利用MySQL自定义函数(UDF)功能执行系统命令 条件 : 拥有MySQL写权限(FILE权限) 知道MySQL root密码或具有足够权限的账户 secure_ file_ priv参数允许导出文件 步骤 : 上传恶意UDF动态链接库文件(如lib_ mysqludf_ sys.dll) 创建自定义函数: CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.dll' 执行系统命令: SELECT sys_eval('whoami') (2) MOF提权 原理 :利用Windows Management Instrumentation (WMI)的MOF文件执行命令 步骤 : 上传恶意MOF文件到 C:/Windows/System32/wbem/mof/ MOF文件会自动执行,添加管理员账户 (3) 启动项提权 将恶意脚本写入启动目录,等待系统重启后执行 2. MSSQL提权 (1) xp_ cmdshell提权 启用xp_ cmdshell : 执行命令 : EXEC master..xp_cmdshell 'whoami' (2) sp_ oacreate提权 启用OLE自动化 : 执行命令 : (3) 沙盒提权 利用Jet OLEDB沙盒模式执行命令 3. Oracle提权 (1) Java权限提权 利用Oracle中的Java执行权限执行系统命令 (2) DBMS_ EXPORT_ EXTENSION提权 利用DBMS_ EXPORT_ EXTENSION包中的漏洞 三、防御措施 1. MySQL防御 限制FILE权限 设置secure_ file_ priv为NULL或特定目录 定期更新MySQL版本 使用最小权限原则 2. MSSQL防御 禁用xp_ cmdshell 禁用OLE自动化过程 限制sa账户使用 启用SQL Server审计 3. Oracle防御 限制Java权限 及时安装补丁 限制DBA权限 四、检测与响应 日志监控 :检查数据库日志中的可疑操作 文件监控 :监控系统关键目录的文件变化 进程监控 :检查异常进程执行 账户监控 :检查新增的系统账户 五、总结 数据库提权是攻击者获取系统权限的重要手段,了解各种提权技术有助于更好地防御此类攻击。管理员应遵循最小权限原则,及时更新补丁,并实施严格的访问控制策略来降低提权风险。