0x00 前言
目标:复现使用UDF提权和EXP提权
环境:phpstudy2018
PHP:5.4.45
MySQL:5.5.53
0x01 关于UDF
udf=’user defined function’,即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充,性质就像使用本地MySQL函数如abs()
或concat()
。
使用UDF提权原理大概就是通过引入udf.dll
,引入自定义函数(如sys_eval()函数),执行系统命令。
在MySQL5.1版本以上需要将其存在MySQL安装目录mysql/lib/plugin
下,文件后缀为.dll
。
0x02 UDF提权过程
1. UDF提权的利用条件
利用UDF提权,有几个的条件。
(1)MySQL数据库没有开启安全模式。
(2)已知的数据库账号具有对MySQL数据库insert和delete的权限,最好是root最高权限。
(3)shell有写入到数据库安装目录的权限。
2. 获取数据库root账号密码
在我们成功的将木马植入到对方服务器之后,应当如何知道对方数据库root账户密码呢。
通常情况下,我们打开某一个连接数据库的文件。例如,index.php
、edit.php
。
可以看到,其中给我们显示了一个连接数据库的文件地址。
按照这个地址,我们可以找到数据库的配置文件,在其中,是包含了数据库的某一个账户的密码的。
如果这个账户为root账户密码的话,是最好的。但还存在其他的情况,如果这个账户不是root账户,我们应该通过什么样的方式得到root账户的密码?
这里有一种方法。
在大马中找到mysql执行,执行代码如下:
select @@basedir //查询数据库的安装目录
利用非root账户,我们可以执行并得到数据库的运行目录。在这个目录下,我们找到data/mysql
目录下的user.MYD
文件,选择,并将其打包下载下来。
上图文本内容包含root账户的hash密码。将其中用加密过的乱码拼接之后用cmd5解密,即可得到root账户的密码。
到这里,准备工作的第一步我们就已经做好了。
3. 如何知道对方是否开启安全模式
在我们安装到服务器的木马中,有一个功能是mysql提权,也就是一键安装dll后门。
利用我们刚才得到的root账户密码,点击一键安装。
如果出现了以下画面,则证明对方服务器开启了安全模式。
因为如果对方开启了安全模式,我们是无法利用这个办法进行提权的,所以,为了完成今天的浮现,我们需要关闭安全模式。
利用代码:
secure_file_priv=""
将这个代码插入到mysql配置文件的最后,重启服务,便可以关闭安全模式。
流程如下:
现在,我们已经关闭了安全模式。
为了以防万一,再利用一键提权的功能测试一下。
可见,现在安全模式已经关闭了。但是虽然我们的木马安装成功了,但是却无法被执行,所以在这个时候,我们选用另外一款专门用来进行mysql提权的木马。
当然,在进行这个之前,我们还需要先在数据库中创建一个外联账户。
上图中用红框标注的地方,一个是我们外联需要的账户,另外一个则是密码。
将第二款mysql提权木马上传到服务器中,双击打开。
在登陆框中,输入我们得到的root账户的密码。
点击导入udf,即可成功的执行一些系统命令,而此时,我们的权限也提升到了system权限。
当然,出了这种方法之外,还有更加便捷的一种木马,也可以成为一键提权。
通过执行这个木马,可以直接在执行成功之后,给我们返回一个拥有系统权限的操作界面,在这个界面里面,我们可以执行一些命令,例如增加用户,查看用户,将用户权限提升到管理员组等操作。
到此,这一次udf提权的复现就结束了。
0x03 关于EXP提权
exp=’exploit’,在黑客看来就是漏洞利用,具体点就是漏洞的利用方法。通常在Windows操作系统下,这里的EXP提权指的是本地溢出漏洞提权,远程溢出漏洞已经很少了,多数都被修复了。
0x04 EXP提权过程
在Windows系统下,常用一个命令来查询当前操作系统打的补丁情况。
systeminfo # 显示关于当前系统的详细配置信息
如图所示的内容,我们主要关注修补程序列表可以看到有个序号。
通常补丁打的比较多的,不容易使用EXP提权。
但是可以对比下微软官方的补丁列表找出可以使用的EXP进行操作。
这里我用到了一个提权辅助网页来对比。
这里用的是Windows2012的服务器,所以尽量找12版本的漏洞。
要注意的事,EXP提权有失败的可能,有时候多提几次就能行,有些时候会造成蓝屏,
风险很大。
测试MS15-051在Windows2008R2成功提权system。
转载请注明:Adminxe's Blog » UDF提权(小马利用)和EXP提权(复现)