MySQL数据库提权(一)
阅读原文时间:2021年10月01日阅读:1

一、获取Mysql登录账号和密码

1.数据库提权需要知道数据库的账号密码、以及它的配置文件,一般配置文件都在网站的根目录下,这些配置文件命名有鲜明的特征,如:conn、config、data、sql、common、inc等等

以上这些文件都有包含连接数据库的信息,包括连接账号,密码,数据库名等等,

2.如果在这些文件里找不到需要连接数据库的信息,可以到数据库的安装目录下找,默认目录为:C:\phpStudy2016\MySQL\data\mysql,在此目录下找到user.myd文件,里面记录了登录账号和密码

3.通过暴力破解得到账号和密码,这个步骤比较麻烦一些,再有一个,Mysql默认不允许远程连接,所以要暴力破解,只能通过脚本来进行破解,获取账号密码,运行一个脚本文件,用弱口令加字典扫描,来破解数据库用户和密码

在顶端显示已经将用户名和密码爆破出来,另外暴力破解还可以使用工具,如:hscan、Bruter、hydra(九头蛇)等,但是这些工具的使用前提是数据库开启对外远程连接,

登录到mysql中,为root远程访问授予权限,执行语句:

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

mysql>flush privileges;

通过远程机访问MySQL数据库:

telnet远程连接已经可以看得到数据库的版本信息,

除了语句开启远程连接之外,还可以用大马(php)脚本来开启:

开启成功之后,再利用专业的数据库连接工具,来远程连接

比如Navicat for MySQL可视化工具

另外用脚本的方式连接:

可以选定某一个数据库,在左上角导出,可以导出到本地,此过程也称为托库,

另外再使用Bruter工具,挂载字典来破解

二、数据库提权

1.UDF提权

需要注意的是,MySQL版本小于5.1,udf文件放在:C:\\WINDOWS\\udf.dll或者C:\\WINDOWS\\system32\\udf.dll,

MySQL等于5.1版本的时候,udf文件在:%mysql%\\plugin\\udf.dll ,用select @@plugin dir 查询plugin文件路径,默认的在C:/Program File/MySQL/MySQl Server5.1/lib/plugin/udf.dll,如果安装了phpstudy,目录可能就在C:\php\MySQL-5.1.50\lib\plugin\udf.dll,在以上的步骤中,已经将远程连接打开,直接使用提权工具来连接

看到目前的版本是5.5.53,大于5.1版本,提示将udf文件导入到lib\plugin目录

使用菜刀工具连接到目标主机,

在phpstudy/MySQL/lib下创建plugin目录,再回到MySQl提权工具导入udf.dll文件

新建号好之后,回到MySQL提权工具

发现导入失败,原因之一可能是数据库的配置文件中:secure_file_priv="";

设置为空后,退出重启MySQL服务,再来工具导入

发现可以导入成功,并且在真实目录下也能看到udf.dll文件

现在就可以在工具中执行数据库命令:Create Function cmdshell returns string soname 'udf.dll';语句的意思是通过udf文件来创建一个cmdshell函数,执行创建后,就可以用它(cmdshell)来操作数据库其他命令,

2.执行"ver"命令:

3.执行"net user"命令:

4.远程开启3389端口,因为执行3389是一个函数,所以要先创建类似于cmdshell的3389()函数,

此时目标机是没有开启3389远程端口,

执行3389()函数命令,

再来看远程桌面状态

已经开启了3389端口,我们可以远程连接到它的服务器,进行后续操作,

以上UDF是在允许远程连接的情况下进行,如果不允许远程连接的情况下,可以运行脚本(kill.php)来辅助udf提权,之所以叫它kill,通杀所有的udf提权

先将moonudf.dll文件导出

成功导出,

5.如同提权工具类似,执行命令之前首先要创建执行该命令的命令执行函数

执行后

语句无报错,说明创建成功,执行查看用户命令:

执行成功,也可以手工创建用户(普通):

此脚本最大的优点在于,如果对方的3306端口完全没有开放,我们可以用菜刀将此脚本传入对方主机,通过的方式web访问脚本,创建函数,来做命令执行,远程开放对方的某些端口,

综上就是数据库UDF提权的所有步骤。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器