Day60权限提升-MY&MS&ORA等SQL数据库提权

基础内容

在web环境和本地环境,都可以得到数据库的账户密码,都可以尝试借助数据库提权,

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

Day60权限提升-MY&MS&ORA等SQL数据库提权_第1张图片Day60权限提升-MY&MS&ORA等SQL数据库提权_第2张图片

数据库提权第一步是探针,第二步是收集,第三步是分类,

数据库在应用提权在权限提升的意义,

他不是属于溢出漏洞的提权,他不是漏洞的提权方式,数据库在服务器的上的搭建是很常见的,web和本地都可以用数据库提权,满足条件就是只需要获取数据库账号密码。

数据库提权流程:探针信息(端口扫描,sql命令,浏览文件或其他,判断对方有数据库的相关服务)。信息收集(目的获取最高权限密码,如查看配置文件,下载存储文件,暴力破解方式,)

前两步都完成之后进行分类,对每个数据库的提取方法都要了解其操作,Day60权限提升-MY&MS&ORA等SQL数据库提权_第3张图片

案列,Mysql 数据库提权演示-脚本&MSF 

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

连接上靶机后门Day60权限提升-MY&MS&ORA等SQL数据库提权_第4张图片

服务探针

namp探测主机操作系统、端口服务,版本信息(nmap -sV -O ip)

Day60权限提升-MY&MS&ORA等SQL数据库提权_第5张图片

这里看到了开发了3306端口,mysql数据库。

提权利用—UDF提权 

mysql在安装之后,自动继承系统权限,取得mysql最高权限的账户密码之后,引用最高权限,调用一个dll文件,去执行系统命令。

之后就开始信息收集

如查看配置文件,下载存储文件,暴力破解方式

,获取方法读取网站的配置文件(sqI data inc config conn database include common等这种命名比较可能是)

比如我现在打开一个pikachu靶场的文件夹Day60权限提升-MY&MS&ORA等SQL数据库提权_第6张图片

Day60权限提升-MY&MS&ORA等SQL数据库提权_第7张图片

然后就去找找看也没有这个文件,打开inc文件夹,找到了

Day60权限提升-MY&MS&ORA等SQL数据库提权_第8张图片

看一下config

Day60权限提升-MY&MS&ORA等SQL数据库提权_第9张图片

这就是一个简单的演示。但是在实战中账户大概率不会是root,而是一个普通用户。

读取数据库的存储文件,数据库的用户免密保存到mysql文件下的userDay60权限提升-MY&MS&ORA等SQL数据库提权_第10张图片

Day60权限提升-MY&MS&ORA等SQL数据库提权_第11张图片

复制去解密,解密网站,cmd5.com

Day60权限提升-MY&MS&ORA等SQL数据库提权_第12张图片

就出来了。

这是个mysql的特性。

还有一种是暴力破解。不过这个要提前知道她是否支持外联,假如已经获取到了root,但是目标数据库只支持本地连接,也没有办法连接到他的数据库。root默认不支持外联。

这种情况我们可以找一些网上mysql爆破脚本,Day60权限提升-MY&MS&ORA等SQL数据库提权_第13张图片

这个就只需要把这个脚本文件上传到对面的服务器,然后访问这个php脚本文件,上传一个爆破字典,对面就会在以本机的方式去运行爆破,自身的服务器去链接,就是在本地进行链接,绕过了禁止外联的方法。

爆破工具是用自己的主机去链接对方数据库。

哎呀,这个真的烦死了,那个看老师用的那个脚本,网上搜不到了,自己搜的又用不了,然后找了python的,搭建的靶场又没有python环境。

也可以常识kali的远程本地爆破数据库

Day60权限提升-MY&MS&ORA等SQL数据库提权_第14张图片

他妈的,啥都配置好了,提示我不支持这个版本

假如已经得到了密码了root

接下来开始提权利用

优先选用的就是udf提权

导出数据时根据MySQL版本选择不同的目录

mysql<5.1      导出目录c:/windows或system32

mysql=>5.1    导出安装目录/lib/plugin/ 

获取mysql1的版本信息

namp探针版本信息Day60权限提升-MY&MS&ORA等SQL数据库提权_第15张图片

这里博主就是个菜狗,冰蝎不能执行数据库语句,也下不了草泥马4.0,就借用的沙漠里的鲸的文章

之后获取select @@basedir:查看MySQL的安装目录 

Day60权限提升-MY&MS&ORA等SQL数据库提权_第16张图片

然后直接来到安装目录里来,如果/lib/plugin/ 不存在,我们可以手工创建 plugin 目录或利用 NTFS 流创建,Day60权限提升-MY&MS&ORA等SQL数据库提权_第17张图片

记住这个目录,来到这里看了一下,

点msyql提权,复制好目录真题上去,Day60权限提升-MY&MS&ORA等SQL数据库提权_第18张图片

直接点安装,然后去看一下靶机Day60权限提升-MY&MS&ORA等SQL数据库提权_第19张图片

然后这个老师就翻车了。

换了一个工具吗,暗月mysqludf提权工具

连接上之后,复制好目录直接上传dll文件。

Day60权限提升-MY&MS&ORA等SQL数据库提权_第20张图片

然后切换到cmdshell就可以

Day60权限提升-MY&MS&ORA等SQL数据库提权_第21张图片

执行whoami吗,就返回的Windows管理员用户权限。

后续的操作就是,创建用户密码,然后开启远程端口,远程连接他电脑,继续操作。

提权利用-MOF提权(基于 MYSQL 特性的安全问题,成功率低)

他是基于mysql特性的一个问题,

参考链接:https://www.cnblogs.com/xishaonian/p/6384535.html)

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡。其就是用又了mysql的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。

将mof上传至任意可读可写目录下,这里我传到D:\wamp\下命名为:xishaonian.mof。也就是:D:\wamp\xishaonian.mof

然后使用sql语句将系统当中默认的nullevt.mof给替换掉。进而让系统执行我们这个恶意的mof文件。

替换的sql语句:select load_file('D:\wamp\xishaonian.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

这个没有复现成功,失败原因,关键目录不能写入,各种杀软防护,还有等待。

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

服务器重启就和电脑重启一样,会自动加载一些文件,比如一些开机自启动功能的软件,就是这个原理,电脑上有很多自启动的文件,这就可以配合mysql数据库的权限,导出一个自定义的可执行文件到自启动目录下,配合重起执行,重启之后就会加载可执行文件。

原理:将创造好的后门或者可执行文件,通过MySQL的权限导出对服务器启动进行写入,哦欸和重起执行。

首先,通过获取到root,开启数据库的外联,运用大马去执行开启外联的sql命令

Day60权限提升-MY&MS&ORA等SQL数据库提权_第22张图片

然后启动msfDay60权限提升-MY&MS&ORA等SQL数据库提权_第23张图片

选择这个攻击项目

直接写入成功

Day60权限提升-MY&MS&ORA等SQL数据库提权_第24张图片

不过直接被我的杀软给杀了,不过也算是写到了启动项里面,别得就不测试了。

关于如何反弹shell

Day60权限提升-MY&MS&ORA等SQL数据库提权_第25张图片

Day60权限提升-MY&MS&ORA等SQL数据库提权_第26张图片

Day60权限提升-MY&MS&ORA等SQL数据库提权_第27张图片

 作者:沙漠里的鲸 https://www.bilibili.com/read/cv15641176/ 

案列mssql(sqlserver)数据库提权演示

我用的小迪hacker靶场自带的数据库,自己装的话对我这个菜鸡来说真的太麻烦了,

先通过查看数据库的配置文件,找到sa的密码Day60权限提升-MY&MS&ORA等SQL数据库提权_第28张图片

目录文件地址,真多啊

Day60权限提升-MY&MS&ORA等SQL数据库提权_第29张图片

找到之后登陆进入数据库(这个数据库支持外联)

Day60权限提升-MY&MS&ORA等SQL数据库提权_第30张图片

首先看一下他有没有xp_cmdshell,

xp_cmdshell默认在2000的时候是打开的,如何在2005用户就默认关闭,这里是2008所以需要我们自己手动打开,

Day60权限提升-MY&MS&ORA等SQL数据库提权_第31张图片

如果我们要调用xp_cmdshell提权的时候,要确保他们是打开的,要把它启动起来,

---通过sp_configure开启xp_cmdshell(这里1就是开启,0是关闭)

#启用:

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 '命令'

这就可以直接执行系统命令

Day60权限提升-MY&MS&ORA等SQL数据库提权_第32张图片

如果出现显示不全,就可以在命令后门加上> c:\\1.txt,这个c盘里面的文本里面方便查看。

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;

Day60权限提升-MY&MS&ORA等SQL数据库提权_第33张图片

调用cmd.exe执行ipconfig命令写入到c盘下1.txt文件。

Day60权限提升-MY&MS&ORA等SQL数据库提权_第34张图片

这里文档里面就是回显结果。

3.  使用sqlserver沙盒提权

---参考资料:https://blog.51cto.com/11797152/2411770

这个也没啥原理,对着参考的命令一条一条复制复制就行了,

md虚拟机出问题也是,反正原理很简单,对着输入命令就行。

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

Oracle提权分为三种方式:普通用户模式,dba用户模式,注入提权模式。

Oracle一般搭建的画家是java,jsp的环境,如果是jsp环境获取到了网站后门不需要提权,自带系统权限。注入提权模式,一般就是我们说的sql注入,发现一个sql注入点,他都享有系统权限,

通过查看配置文件,获取账号密码Day60权限提升-MY&MS&ORA等SQL数据库提权_第35张图片

有这个信息之后,就可以开始进行提权,

Day60权限提升-MY&MS&ORA等SQL数据库提权_第36张图片

这还有一个网站的注入点。

直接用sqlmap跑,确定他是不是dba权限

Day60权限提升-MY&MS&ORA等SQL数据库提权_第37张图片

结果是的。判断好权限,直接用Oracleshell工具,输入好在配置文件里面看到的信息,连接上Day60权限提升-MY&MS&ORA等SQL数据库提权_第38张图片

同时这个工具还支持三个模式,可以自由选择,是普通还是dba还是注入点,

fa

cai

你可能感兴趣的:(web安全学习笔记,数据库)