本文记录利用mysql数据库,在拿到shell之后进行提权的两种方法。
一、UDF提权
原理:UDF是mysql的一个拓展接口,UDF(Userdefined function)让用户通过该接口可以自定义mysql函数。UDF 定义需要DLL动态链接库文件支持。
基本步骤:
1、导出udf.dll文件到指定目录(有些webshell集成,直接导 出即可,没有,则需要上传)
2、基于udf.dll创建自定义函数cmdshell
3、利用自定义函数,执行高权限cmd命令
以下按照步骤进行记录
第一步:首先我们上传UDF提权的马到服务器,然后输入对应用户名密码,表名选用mysql,
第二步:导出udf
这里已经导出成功。
需要注意,针对mysql不同的版本,导出的路径也不相同:
这里在lib下需要创建对应的目录,即可导出成功。
第三步:创建cmdshell:
第四步:通过创建的cmdshell来进行创建用户并且添加到管理员组的操作:
再通过马集成的命令可以查看用户已经添加:
二、mof文件提权
mof提权原理就是把一个mof文件上传到c:/windows/system32/wbem/mof/下,然后系统会特定的时间就去执行一次,进而创建用户。
Mof文件源码:
创建账户
添加到管理员组。
注意这是分成两个mof文件执行了
第一步:借助webshell把mof文件上传到服务器上
第二步:通过SQL语句把文件改名放到指定目录下
select load_file('C:/PhpStudy/PHPTutorial/WWW/pikachu/test创建账号.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
第三步:等待一会,用户就会创建
第四步:用相同的操作把第二个mof文件也就是加到管理员组上传上去就可以
三、利用远程管理工具