MySQL数据库提权(一)

2021年10月1日 8点热度 0条评论 来源: 青青子衿01

一、获取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提权的所有步骤。

 

    原文作者:青青子衿01
    原文地址: https://www.cnblogs.com/zhaoyunxiang/p/15357057.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。