在web环境和本地环境,都可以得到数据库的账户密码,都可以尝试借助数据库提权,
再利用系统溢出漏洞无果的情况下,可以采用数据库进行提权,但需要知道数据库提权的前提条件:服务器开启数据库服务以及获取最高权限的密码。除了access数据库外,其他的数据库都存在提权的可能
数据库提权第一步是探针,第二步是收集,第三步是分类,
数据库在应用提权在权限提升的意义,
他不是属于溢出漏洞的提权,他不是漏洞的提权方式,数据库在服务器的上的搭建是很常见的,web和本地都可以用数据库提权,满足条件就是只需要获取数据库账号密码。
数据库提权流程:探针信息(端口扫描,sql命令,浏览文件或其他,判断对方有数据库的相关服务)。信息收集(目的获取最高权限密码,如查看配置文件,下载存储文件,暴力破解方式,)
前两步都完成之后进行分类,对每个数据库的提取方法都要了解其操作,
流程:服务探针-信息收集-提权利用-获取权限
服务探针
namp探测主机操作系统、端口服务,版本信息(nmap -sV -O ip)
这里看到了开发了3306端口,mysql数据库。
mysql在安装之后,自动继承系统权限,取得mysql最高权限的账户密码之后,引用最高权限,调用一个dll文件,去执行系统命令。
之后就开始信息收集
如查看配置文件,下载存储文件,暴力破解方式
,获取方法读取网站的配置文件(sqI data inc config conn database include common等这种命名比较可能是)
然后就去找找看也没有这个文件,打开inc文件夹,找到了
看一下config
这就是一个简单的演示。但是在实战中账户大概率不会是root,而是一个普通用户。
读取数据库的存储文件,数据库的用户免密保存到mysql文件下的user
复制去解密,解密网站,cmd5.com
就出来了。
这是个mysql的特性。
还有一种是暴力破解。不过这个要提前知道她是否支持外联,假如已经获取到了root,但是目标数据库只支持本地连接,也没有办法连接到他的数据库。root默认不支持外联。
这个就只需要把这个脚本文件上传到对面的服务器,然后访问这个php脚本文件,上传一个爆破字典,对面就会在以本机的方式去运行爆破,自身的服务器去链接,就是在本地进行链接,绕过了禁止外联的方法。
爆破工具是用自己的主机去链接对方数据库。
哎呀,这个真的烦死了,那个看老师用的那个脚本,网上搜不到了,自己搜的又用不了,然后找了python的,搭建的靶场又没有python环境。
也可以常识kali的远程本地爆破数据库
他妈的,啥都配置好了,提示我不支持这个版本
假如已经得到了密码了root
接下来开始提权利用
优先选用的就是udf提权
导出数据时根据MySQL版本选择不同的目录
mysql<5.1 导出目录c:/windows或system32
mysql=>5.1 导出安装目录/lib/plugin/
获取mysql1的版本信息
这里博主就是个菜狗,冰蝎不能执行数据库语句,也下不了草泥马4.0,就借用的沙漠里的鲸的文章
之后获取select @@basedir:查看MySQL的安装目录
然后直接来到安装目录里来,如果/lib/plugin/ 不存在,我们可以手工创建 plugin 目录或利用 NTFS 流创建,
记住这个目录,来到这里看了一下,
然后这个老师就翻车了。
换了一个工具吗,暗月mysqludf提权工具
连接上之后,复制好目录直接上传dll文件。
然后切换到cmdshell就可以
执行whoami吗,就返回的Windows管理员用户权限。
后续的操作就是,创建用户密码,然后开启远程端口,远程连接他电脑,继续操作。
他是基于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命令
直接写入成功
不过直接被我的杀软给杀了,不过也算是写到了启动项里面,别得就不测试了。
关于如何反弹shell
作者:沙漠里的鲸 https://www.bilibili.com/read/cv15641176/
我用的小迪hacker靶场自带的数据库,自己装的话对我这个菜鸡来说真的太麻烦了,
目录文件地址,真多啊
找到之后登陆进入数据库(这个数据库支持外联)
首先看一下他有没有xp_cmdshell,
xp_cmdshell默认在2000的时候是打开的,如何在2005用户就默认关闭,这里是2008所以需要我们自己手动打开,
如果我们要调用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 '命令'
这就可以直接执行系统命令
如果出现显示不全,就可以在命令后门加上> c:\\1.txt,这个c盘里面的文本里面方便查看。
---主要是用来调用 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;
调用cmd.exe执行ipconfig命令写入到c盘下1.txt文件。
这里文档里面就是回显结果。
---参考资料:https://blog.51cto.com/11797152/2411770
这个也没啥原理,对着参考的命令一条一条复制复制就行了,
md虚拟机出问题也是,反正原理很简单,对着输入命令就行。
Oracle提权分为三种方式:普通用户模式,dba用户模式,注入提权模式。
Oracle一般搭建的画家是java,jsp的环境,如果是jsp环境获取到了网站后门不需要提权,自带系统权限。注入提权模式,一般就是我们说的sql注入,发现一个sql注入点,他都享有系统权限,
有这个信息之后,就可以开始进行提权,
这还有一个网站的注入点。
直接用sqlmap跑,确定他是不是dba权限
结果是的。判断好权限,直接用Oracleshell工具,输入好在配置文件里面看到的信息,连接上
同时这个工具还支持三个模式,可以自由选择,是普通还是dba还是注入点,
fa
cai